CPS 100, Fall 2000

Announcements

announcements

Program Design and Methodology II, aka Data Structures in C++

This is a course that explores theoretical and practical issues in data structures, algorithms, and object-oriented programming in C++. Students should have experience in programming at a level of CPS 006. This includes programming in C++ using classes, vectors, and streams. If you have questions about whether you're prepared appropriately, please ask on the first day of class.

  • Read the CPS 100 Newsgroup


    * Professor Owen Astrachan
    * TA Nicoleta (Nicole) Popoviciu
    • Office: D343 LSRC
    • email: nicole@cs.duke.edu
    • phone: 660.6564
    • Office Hours: Tuesday 4:00-5:30, Thursday 2:30-4:00 and review session 6:00-7:00 (D106)
    * UTAs

    Books, Grading, Details

    Texts

    These books are reasonably priced at the Duke bookstore. If you do buy books from amazon click through from here and contribute to undergraduate computer science research at Duke.

    Coding

    Information about compilers and coding conventions is available.

    We're using C++ as implemented using g++ 2.95. It's possible to install this on windows machines as well as on Linux machines.

    You should use xemacs/emacs to edit files. This editor has built in support for color-coding, supports multiple buffers, and is great at editing HTML files too! You might want to use the .emacs file in ~ola/newuser/.emacs which will ensure that your code is indented according to CPS coding conventions.

    Sparc clusters are found in Teer 106, 139 Hudson Hall, Soc/Psych 133, Bio-Sci 002CC, and Carr 125. All programs/projects will be submitted electronically. You are responsible for ensuring that all files are submitted on time .

    Grading

    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 (A- to A+); 80% = B, 70% = C, 60% = D. This scale may go down, but it will not go up.

    To receive a grade in the A range on programs 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 several of the optional assignments. These points count even if you don't earn an A+.

    major programming assignments 35%
    written/homework assignments 15%
    quizzes/groupwork 5%
    tests (2) 24%
    final exam 21%

    Late Programming Assignments

    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.

    You will be given four free late days. A free late day can waive or reduce the penalty if an assignment is turned in late. These free late days will automatically be counted starting with the first assignment turned in late until the free late days are used up. At that point, late days will begin to incur penalties.

    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.

    Points on assignments will vary. Later assignments may be worth more or less than previous assignments.

    Course Policies:

    Quizzes and Exams taken in class must be your own work.

    You can work with others on quiz questions given out at the beginning of the week on which actual quiz questions are based.

    On programming assignments, you may consult with professors, and TAs/UTAs about any aspect of the assignment. You may consult with other students only in a general way, e.g., about debugging or C++ issues, or questions about wording on the assignment. You cannot actively work with someone unless the assignment specifically grants permission to work together with another student.

    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 is NOT acceptable! For each assignment you are expected to include a list of the people with whom you have consulted (including students, TA's, tutors, professors).

    Exam Dates

    Exams will be held during the lecture time and in the same room as the class. The final will also be in the same room as class.

    The tests will be closed book. For the final you'll be allowed to use your books/notes.


    Owen L. Astrachan
    Last modified: Mon Oct 16 12:09:21 EDT 2000