CIS 212 Spring 2009
Introduction to Computer Science III
[
Details |
Objectives |
Honesty |
Do's & Don'ts |
Syllabus |
Assignments |
Resources
]
- Class Times
- Lecture: MWF 13:00 - 13:50, 112 Lillis Hall
- Lab: Lab is in B26 Klamath Computer Lab (basement of Klamath Hall),
- Wednesday 14:00 - 14:50
- Friday 9:00 - 9:50
- Friday 11:00 - 11:50
-
Instructor: Dejing Dou
- Office: Deschutes 303, phone 346-4572
- Office Hours: F: 15:00-16:00 (or by appointment by emails to dou AT cs.uoregon.edu)
-
Co-Instructor: Michal Young
- Office: Deschutes 243, phone 346-4140
- Office Hours: 11:00-12:00 MW
-
Graduate Assistant: Dan Keith
- Office: 237 Deschutes Hall, phone 346-1386
- Office Hours: 11:00-12:00 TTH
- Reference Material
- Required Text: Invitation to Computer Science: Java, 3rd edition,
by G. Michael Schneider and Judith L. Gersting, Course Technology, 2006.
-
-
One reading packet is also required and is available at the bookstore.
- Grading and Policy
- Approximate grade weighting: Assignments 25%, Quizzes and class/lab participation 20%, Midterm 25%, Final 30%
- CIS pre-majors must take CIS 212 graded; others may take it graded or P/NP.
-
CIS 212 will continue to explore aspects of problem solving and programming.
We will learn about
the complexity of an algorithm and compare
complexity measures.
We will also gain an
understanding of the fundamentals of computer
architecture and programming languages,
including language processors.
The emphasis in the course is on concepts, but the assignments
will provide
an opportunity to implement programs in Java that
illustrate or use the conceptual material.
-
All assignments turned in for the course must be your own work.
Copying from other
class members or other sources is not acceptable. If you collaborate with someone else on any
assignment, you must indicate such on the work you turn in,
and partial credit may be given.
-
Academic honesty is expected and cases of suspected dishonesty will be handled
according to university
policy. In particular, copying someone else's work (including material
found on the web) will not be tolerated.
If solutions to assignments are
obtained from outside sources, the source must be cited.
-
You are also responsible for protecting your work. That is, you must
take reasonable precautions
to prevent your work from being copied.
This means that file permissions must be set to keep others
from accessing your files.
After working on assignments in the lab, you must remove any of
your files from the lab machine.
DOs:
-
Read the textbook and readings. Relevant chapters are listed in
the course syllabus.
The text provides the core information - if you read
the material before class, you will get more out of the lectures.
-
Read through the entire homework/lab assignment as soon as it is assigned
so you know what to be
looking for in lectures and the readings.
Do not wait until the topic is covered in lecture to start thinking and
working on the assignment.
Lectures will give you a deeper understanding of concepts and go through
examples. Lectures are not your sole source of
information, the discussion/lab sessions are geared toward the assignments.
-
Do your own work. You can discuss the problems with classmates, but then
start over and work them out yourself.
Otherwise it is very easy to fool
yourself into thinking that you understand the material well enough to do it
yourself. The exams and quizs are worth over 50% of your grade and you will be on your
own in the exams, so learn to work on your own.
-
Go to labs. They give you a head start on your homework
and can save you many hours.
Lab attendance is required and contributes to a portion of your grade.
-
Ask for help if you are still stumped after you have
made a sincere effort to figure something out.
When you have an idea for solving a homework problem feel free to run it by
the professor
or GTF.
This can save you enormous amounts of wasted time. Again, you want to do this
early, not the night before the
due date when we may not be available.
-
Document your code with comments.
Write all software as if it will be seen by
experts and be around for a long time.
Comment your code as you are writing it or even before you write the
actual code. If you can't write meaningful comments,
then you probably don't
have a clear understanding of your design.
-
Use the Java API documentation. Become familiar with how to read
the API. The holy grail of software development is re-use,
so learn how to
find and use existing classes and methods.
-
Aim for elegant solutions. Don't be satisfied with a "quick and dirty"
program to just produce the correct results,
but refine your work to the best
solution possible. After you think you are done, go back over your code
and double check and polish it.