Administrivia
Course meetings will be on Monday, Wednesday, Friday from 2:20-3:35pm in room 229
of the Social Sciences Building.
Staff
- Instructor
- Dietolf Ramm
- Office: D226 LSRC
- Office Hours: Tue 2:30, Thu 10:30, or any time for quick questions or by appointment
- Email: dr@cs.duke.edu
- Phone: 660-6532
- Graduate TA
- Allister Bernard
- Office: 01 North Building
- Office Hours: TBA, or any time for quick questions or by appointment
- Email: allister@cs.duke.edu
- Phone: 660-4001
- Undergraduate TAs
Text Books
You will use one primary book as well as online readings in the course.
Copies are available at the Duke book store, but you can find also find it
and other useful resources at the Gothic bookstore, Barnes and Noble
(also at New Hope Commons), or Amazon books.
Computing Concepts with JAVA 2 Essential, 2nd ed., by
Cay Horstmann, Wiley & Sons, 2000.
In general you should read the text in order to be prepared to ask and answer questions in
class. If you have looked at material before it is discussed in class you will get much more
out of the class work. Although time will be given at the beginning of lecture for you to
ask questions about the reading, the majority of the lecture will be an extension of the
reading, not a summary.
Computing
This course will be taught in a workshop format in an Interactive Computer Classroom,
ICC, that contains twenty HP workstations running Windows. If some of the software
and descriptions do not include other computing platforms, like Macintosh or Linux, it is
not meant to show a bias, simply the reality of the working environment.
In general, students will be expected to be active participants in group exercises involving
the computers available during class time. This makes it vital that you prepare before
coming to class. In fact, most of the graded work for the course will be done during the
class meeting time and why we feel that three 75 minute periods each week are needed.
You should expect to work with another student during class. This process is often
referred to as pair programming, which is defined as follows:
Two programmers working side-by-side, collaborating on the same design,
algorithm, code or test. One programmer, the driver, has control of the
keyboard/mouse and actively implements the program. The other
programmer, the navigator, continuously observes the work of the driver to
identify tactical (syntactic, spelling, etc.) defects and also thinks strategically
about the direction of the work. On demand, the two programmers can
brainstorm any challenging problem. Because the two programmers
periodically switch roles, they work together as equals to develop software.
-- Laurie Williams, North Carolina State University
In other words, it is essential that all students in the group are active participants. Done
right, this can be a very positive experience for all involved. Here are some students
enthusiastic responses to pair programming.
Policies
Information Online
- All of the materials for this course (including this page) are available on the web at
http://www.cs.duke.edu/courses/cps004/current.