CIS 211 Computer Science II - Winter 2003
- Teaching Staff
Hornof, Assistant Professor, 356 Deschutes, firstname.lastname@example.org
Amit Goswami, GTF, 237 Deschutes, email@example.com,
Ziming Huang, GTF, firstname.lastname@example.org
Email all three at email@example.com
- Class Times
- Lecture: MWF 1:00 - 1:50 PM, 240C McKenzie.
Labs: See DuckWeb,
- Course Objectives
- The objective of this course is to build on the basic
programming concepts and practices that you learned in CIS 210,
for you to continue your development as programmers and computer
scientists. The course is structured around a number of important
programming concepts, as follows: Problem decomposition,
structured programming, files and streams, exceptions,
inheritance, object-oriented programming, testing and debugging,
event-driven programming, graphical-user interface programming,
threads, and pointers and memory. Though the topics will be
examined, discussed, and exercised primarily in the context of the
Java programming language, students in this class should develop a
general, abstract appreciation for these different concepts
independent of Java.
- CIS 210 with a grade of C- or better, Discrete Math 231 (for
CIS majors). Corequisite: Discrete Math 232 (for CIS majors). If
you have not completed CIS 210 in a previous term with a grade of
a C- or better, you will not receive credit for this course. If
you have questions, please see the instructor or your CIS advisor
for help in planning your schedule.
- Required: Java
Software Solutions, 3rd edition, by John Lewis and William
Loftus, Addison Wesley, 2002. This is the required book for the
course and we will refer to it as Lewis and Loftus or just L&L.
Previous courses used the second edition of this book. The basic
layout and material in the third edition is similar, but the third
edition contains more examples, more reference material, uses the
latest Java 2 Version 1.4 SDK, and uses color.
Additional: Thinking in Java, 3rd Edition, by Bruce
Eckel. This is an electronic book that can be downloaded for free
from Bruceeckel.com, or
directly from http://220.127.116.11/TIJ-3rd-edition4.0.zip.
A print version is also available from Prentice Hall, 2003. You
will be required to read a few chapters from this textbook.
Some reading may be assigned from the online Sun
Java Tutorial, which you can also use as a reference if topics
discussed in the other readings or in class are not clear to
A small coursepack of required reading will probably be made
available during the term.
- Approximate grade weighting: Assignments 40%, Midterm 25%,
- Email and Communication
- Email is an excellent means of communication when used
properly. This class will give you the opportunity to improve your
email skills. Email the professor with your questions, concerns,
and input regarding the course, but always practice good
"netiquette". The UofO Computing Center (UOCC) provides netiquette
guidelines. (On this web page, skip past the "Glossary of
Network Terms" to get to the section entitled "Practicing Good
'Netiquette'".) Read and follow the guidelines, with one addition:
If you must have a signature file at all, keep it to a bare
All course-related emails sent to teaching staff should contain
"211" somewhere in the subject line. Whenever possible, please use
your "uoregon.edu" email address in course-related emails.
Please turn off all cell phones and beepers before coming to
class. Interruptions caused by these devices are discourteous and
distracting and represent poor class participation. Please do not
engage in distracting laptop activities such as surfing the
- Diversity Welcome
- The modern technology workplace is diverse, international, and
intercultural. This is good. Different backgrounds and different
perspectives help people working in groups to be more innovative.
To the extent that this class reflects such a modern-day
workplace, we will welcome and value these differences as an
opportunity to increase our awareness of how to work better in
groups, and how to build more useful computer systems.
- Students with Disabilities
- If you have a documented disability and anticipate needing
accommodations in this course, please make arrangements to meet
with me soon. Please request that the counselor for students with
disabilities send a letter verifying your disability.
CIS 211 Academic Honesty Policy
- 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.
CIS 211 Do's & Don'ts
- Here are some suggestions for a strategy to pass this class:
DO'S (a recipe for success in this course:)
- Read the textbook. The chapters we will cover
are listed in the course syllabus. The text provides good core
information - if you read over the material before class, you
will get more out of the lectures and be able to ask questions.
Come to lecture with questions.
- Read the entire homework assignment as soon as it is
assigned, even if it's confusing. Do not wait
until the topic is covered in lecture to start working.
Lectures will give you a deeper understanding of concepts and
go through examples. However, if you attempt to use lectures as
your sole source of information, you will be sunk on the
- 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 70% of your grade. 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.
- Ask for help 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 GTFs. 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.
- 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.
- 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.
- Aim for elegant solutions. Don't be satisfied
with a "quick and dirty" program to produce the correct
results, but refine your work to the best solution
- Debugging skills we introduce can save you
vast amounts of time and frustration. Watch for them.
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 get help from
- Do not work in groups
- The course policies, web page design, and web content are
derived from Prof. David Atkins' CIS 210.