Professor: Robert Duvall
- Office: LSRC Room D228
- Email:
- Phone: 660-6567
- Office Hours: immediately after class, or anytime for a quick question
Graduate TA: Sam Slee
- Office: North Building, Room 006
- Email:
- Phone: 660-4006
- Office Hours: Wednesday 4:20-6pm, or by appointment
Undergraduate TA: Robert DeMason
- Email:
- Helper Hours: Sunday, 7-9pm
- Location: Soc Science 229 (the ICC lab)
Undergraduate TA: Sandeep Kagzi
- Email:
- Helper Hours: Tuesday, 7-9pm, and Thursday, 9-11pm
- Location: Soc Science 229 (the ICC lab)
Undergraduate TA: Jinghui Lim
- Email:
- Helper Hours: Wednesday, 9-11pm
- Location: Soc Science 229 (the ICC lab)
Undergraduate TA: Rick Lindquist
- Email:
- Helper Hours: Sunday, 9-11pm
- Location: Soc Science 229 (the ICC lab)
Undergraduate TA: Zach Marshall
- Email:
- Helper Hours: Monday, 8-10pm and Thursday, 7-9pm
- Location: Soc Science 229 (the ICC lab)
Undergraduate TA: Dan Rosenberg
- Email:
- Helper Hours: Wednesday, 7-9pm
- Location: Soc Science 229 (the ICC lab)
Undergraduate TA: Charlie Suwankosai
- Email:
- Helper Hours: Monday, 10-midnight, and Tuesday, 9-11pm
- Location: Soc Science 229 (the ICC lab)
Textbooks are available in the Duke textbook store. You can also find them online, e.g., at Amazon.
Java Concepts by Cay Horstmann
If you already have the third edition of the book, there is a chart online to convert reading assignments into its page numbers.
Grading is done on an absolute, but adjustable scale. This means that there is no curve. Anyone earning 90% or more of the total number of points available will receive a grade in the A range; 80% or more guarantees a grade in the B range, 70% or more guarantees a grade in the C range, 60% or more guarantees a grade in the D range. This scale may slide down, but it will not go up.
There will be several types of assignments during the term, each contributing to your final grade by approximately the following percentages:
large programming/written assignments | 25% |
labs | 20% |
in-class quizzes | 10% |
midterm exams | 25% |
final exam | 20% |
Points on assignments will vary. Harder assignments will be worth more than previous assignments, and most assignments will get harder as the semester progresses (harder means takes more time, requires more thought).
The programming projects will be open-ended, providing a lot of room for you to express some creativity and go beyond the basic specification. For each assignment, you will be expected to complete all of the assignment's basic functionality as well as use good style so your program "looks" nice. To earn an A grade on these projects, you must do more than merely meet the requirements, you must go beyond them. However, any extra credit features that you add will not be counted unless you get the basics working first.
The classwork grade involves your participation in group activities during class. These activities may involve some preparation work before class.
There may be several optional assignments that can earn points towards raising your grade.
All projects must be submitted electronically by midnight the day they are due according to the directions given here.
Assignments turned in on time receive no penalty. Assignments turned in up to two days late incur a 10% penalty, more than two days late incurs a 25% penalty. A weekend represents one-day for the purposes of measuring lateness. Assignments turned in early may receive bonus points, we will announce this for each assignment.
You cannot make up a missed quiz or an in-class assignment. We will provide several opportunities to earn extra points on quizzes and in-class work so that if you miss a small number of these your grade will not be affected. However, frequent absences from class will affect the portion of your grade based on quizzes and in-class work.
Individual extensions will be granted only for medical reasons (see the Short-term Illness Notification policy) or other circumstances beyond your control that must be presented with an official Dean's excuse. We do not grant extensions after an assignment is due, you must request an extension before an assignment is due.
Due to the pace of the course, assignments will not be accepted after one week has passed from the due date. If this happens to you, you should talk to one of the course staff immediately. It is important that you do not get behind in this class, its pace is too fast to allow you fall behind. The secret to successfully surviving this course is to start early and work steadily; it is not possible to cram or skim in Computer Science classes. If you are having trouble, be sure to the professor as far before the due date as possible. Do not give up, ask for help.
During class and lab you will work on problems with another student. For other assignments, you are to work on them individually. On such programming assignments, you may consult with the course staff and up to two other students in any section of the course, but should limit collaboration otherwise. Consult means you can discuss the programs before writing code, and get help with debugging your program, but you should write your own code. Writing one program and making multiple copies of it for several people is not acceptable! For each such assignment you are expected to include a list of the people with whom you have consulted (including students, TA's, tutors, professors) in a README file submitted with each assignment.
Quizzes and Exams must be your own work.
Quizzes, Midterm, and Final exams will be held during the lecture time. The quizzes and midterm exams will be closed book and closed notes. The final exam will be open book and open notes. This is not because we expect you to memorize material for the midterm exams, but because we do not want you to spend time looking up answers when a test is roughly one hour long. Instead, for the midterm exams, a handout will be given with material that does not need to be memorized. You may request specific material to appear on the handout.