Duke CS Logo CompSci 100e: Program Design & Analysis II
(Spring 2011)
Home (Forbes)
Home (Rodger)
Course Information
APT problems
Discussion Forum
Help Sessions
Java Help


Course Description

For students who have taken CompSci 6, Engineering 53, or have other programming experience. Object-oriented design and programming using Java emphasizing abstract data types and their lower-level implementations. Advanced data structures including balanced trees, hash tables, graphs. Intuitive and rigorous analysis of algorithms.

Prerequisite: Programming experience with variables, loops, conditionals, and collections (e.g., arrays, vectors, lists, etc.).

Time and Place

2:50pm-4:05pm on Wednesdays and Fridays; Sociology-Psychology 126

Labs 2:50-4:05 Mondays in Soc-Psy 126.



CS Department
Jeff Forbes
Email: forbes at cs.duke.edu
Office: D235 LSRC
Office Phone: (919) 660-6550
Office hours: Mondays 4:15-5:15, Fridays 1:00-2:00, any time my door is open (which is most of the time), or by appointment

Teaching Assistants

CS Department
Bala Chandrasekaran
Email: balac at cs.duke.edu
Office Hours: Wednesdays, 4-6pm
Office Hours Location: D344 LSRC
Office Phone: (919) 660-4007
CS Department
Jannie Tan
Email: jytan at cs.duke.edu
Office Hours: Thursdays, 3-5pm
Office: N005 North Building
Office Phone: (919) 660-4005

Undergraduate Teaching Assistants

UTA Group Picture The CompSci 100e UTAs will hold Helper Hours Sunday through Thursday, 6-10pm in the Link.

Contact the staff at cps100e AT cs.duke.edu.

Texts and Software

Introduction to Programming in Java: An Interdisciplinary Approach, Required, by Robert Sedgwick and Kevin Wayne

Textbooks are available in the Duke textbook store. If you want to buy books online, please click on the book images above to buy from Amazon and contribute to undergraduate computer science research at Duke. We will use the Sedgewick & Wayne book quite a bit in the beginning of the semester and assign from exercises from there. You may need that book to complete some of the assignments, so that book is required.

Software for the course will be provided via this website or in lab.

Topics covered

See calendar for a tentative list of topics.

Web, Discussion Forum, and Blackboard

Most of the course materials, including the syllabus, lecture notes, reading assignments, homework, programming FAQs, etc., will be available through the course Web page (http://www.cs.duke.edu/courses/spring11/cps100e/).

The discussion forum is useful for posting questions that are likely to be of interest to the rest of the class. We very much encourage students in the class to post responses to questions. We will monitor the the forum regularly, and post responses to questions that have not previously been asked or answered. Before posting a question, please do make sure that you have read all previous messages and that your question has not yet been discussed.

We will use the Blackboard course management system for posting official grades and some course materials, and for turning in some assignments. (https://courses.duke.edu/)

Finally, please check your email regularly, as important course announcements will be sent via email.


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.

This class involves reading, assignments, and tests. The different types of work each contribute to your final grade by approximately the following percentages:

major programming assignments  30%
APT programs 12%
Labs/classwork/community 10%
tests (2)  26%
final exam  22%

To receive a grade of A or A+ you must exceed expectations. This means you must do everything required extraordinarily well or you must do more than is required and do this well. In other words, to earn an A you must do more than merely meet the requirements, you must go beyond them.

In order to earn an A+ you must do some of the optional assignments and exceed expectations in general.

Course Policies


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.

If you have personal reasons to ask for an extension, and you can do so at least a week in advance, please ask.


Tests will be held during the lecture time and in the same room. The final will also be in the same room.

You can bring a limited number of sheets of notes to the midterm exams. The final exam will be open book/open-note.

Late Policies

Programming Projects
Assignments turned in on time receive no penalty. Assignments turned in up to two days late incur a 10% penalty. Assignments turned in more than two days late incur a 25% penalty. Assignments will not be accepted after one week has passed from the due date.

In general, the weekend counts as one day.

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).

APTs are Algorithmic Problem-solving/Programming Testing problems and programs. You'll be given a description of a problem and asked to write code to solve it -- testing the code online and when you're happy with the code submitting it for grading. We do not review your the source code for style or design when grading. We simply run it on test cases. However, you should strive to make your code small and beautiful. APTs will typically be due on Tuesdays or Thursdays. We will not accept late APT programs this semester. Keeping up with APTs ensures you understand the topics we're discussing in class. You will have many chances to do extra APTs, thus being able to make up for missed submissions.
Labs and Classwork

You cannot make up an in-class or lab assignment. We will provide opportunities to earn "extra" points on in-class work or labs so that if you miss a small number of these your grade won't be affected. However, frequent absences from class and lab will affect the portion of your grade based on lab and in-class work.

If you're having trouble, be sure to see a UTA/TA and preferably the professor in charge of the course as far before the due date as possible. Don't give up, ask for help.

Collaboration Policy

Collaboration in CompSci Courses

Every assignment submitted for credit (i.e., programming project and APTs) must include a README.txt file that includes the following information:

  • Your name and NetID
  • Hours Spent: Give the date you started the assignment, the date you completed the assignment, and an estimate of the number of hours you worked on it
  • Consulted with: A list of the students, TAs, and professors with whom you consulted on the assignment. Since assignments are to be your own work, you should keep track of anyone with whom you have had a significant conversation about a program. You are welcome to talk with the course staff about the assignment, and to other students about broad ideas and concepts. If you did not consult with anyone, you must explicitly state that fact.
  • Resources used: Note any books, papers, or online resources that you used in developing your solution. If you did not use any outside resources, you must explicitly state that fact.
  • Answers to questions: There may also be specific questions given in the assignment whose answers you will be asked include in this file.
  • Impressions: You may include your impressions of the assignment to help the course staff improve it in the future.

Failure to provide this file with this information will result in rejection of the assignment as complete. You may be able to resubmit. .


We appreciate any feedback you might have about the course and encourage you to talk to or email the Prof. Forbes, the TA, or UTAs with any questions or concerns you may have. If you have concerns that you do not feel comfortable expressing directly to the course staff, please use the department's anonymous course feedback form.
Last updated Wed Apr 13 14:46:04 EDT 2011