CIS 212 Spring 2006
Introduction to Computer Science III
CRN 34168
[
Details |
Objectives |
Honesty |
Do's & Don'ts |
Syllabus |
Assignments |
Announcements |
Resources
]
Last updated 2006/04/03 23:15:38
- Class Times
- Lecture: MWF 1:00 - 1:50, 106 Deady
- Lab: Lab is in B26 Klamath Computer Lab (basement of Klamath Hall),
- Tuesday 11:00 - 11:50
- Friday 10:00 - 10:50
-
Instructor: David Atkins
- Office: Deschutes 358, phone 346-4413
- Office Hours: MWF 11:00 - 12:00 and by appointment
- Email:
datkins@uoregon.edu
-
Graduate Assistant:
Zebin Chen
- Office: Deschutes 139, Phone: 346-0489
- Office Hours: Tuesday 2-3, Friday 11-12
- email: zbchen@cs.uoregon.edu
- Reference Material
- Required Text:
Data Abstraction & Problem Solving with Java, 2nd edition,
by Frank Carrano and Janet Prichard, Addison Wesley, 2005.
-
This is the required book for the course and we will refer to it as Walls
and Mirrors or just W&M.
Source code for the examples in the book is available through the publisher's
ftp site.
-
Two reading packets will also be required.
- Grading and Policy
- Approximate grade weighting: Assignments 35%, Quizzes and class/lab participation 15%, Exams 50%
- CIS pre-majors must take CIS 212 graded; others may take it graded or P/NP.
-
In this course you will continue your development as a
computer scientist and programmer.
In CIS 212 we will explore more aspects of problem solving.
We will learn how to analyze the complexity of an algorithm and compare
complexity measures. We will explore recursion as a problem solving technique,
both in algorithms and data structures.
We will look at several abstract data types, and see different implementation
approaches.
We will also gain a basic understanding of fundamental computational
architecture.
The emphasis in the course is on the concepts, but the assignments
will provide an opportunity to implement example programs in Java that
illustrate or use the conceptual material.
-
CIS 212 is a required core course to become a
CIS major.
-
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 if you store your assignment solutions on gladstone, the
file permissions must be set to keep others from accessing your files.
If you are working on assignments in the lab, you must remove any of
your files on the lab machine before you leave.
-
Here are some suggestions for a strategy to pass this class:
DO'S (hints for success in this course:)
-
Read the textbook and readings. Relevant chapters are listed in
the course syllabus. The text provides good core information - if you read
the material before class, you will get more out of the lectures and
be able to ask questions. Come to lecture with questions.
-
Read through the entire homework 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 are worth over 50% of your grade and you will be on your
own in the exams, so learn to work on your own.
(Also remember our strict rules about cheating.)
-
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. We will try to give you a thumbs-up or thumbs-down on your strategy.
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 will not be as sympathetic.
-
Document your code with comments. Pay attention to coding style
and strive to make your code neat and easy to read.
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.
-
Experiment. If you wonder whether or not
some code is legal or does what you want, try it out.
Learn from the compiler by trying small chunks of code
to see whether it compiles and works the way you think it should.
-
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 (except when the assignment asks
you to implement your own version - e.g., a stack or linked list).
-
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.
DON'T (Each of these, alone or in combination, usually leads to failing
this course.)
- Do not wait to start homework
- Do not spin your wheels for hours before you ask for help
- Do not work in groups
datkins@uoregon.edu
Last updated 2006/04/03 23:15:38