Piazza: Join the class discussion on Piazza. All CS24 related questions must be asked through Piazza when not asked in-person; emailed questions will not be answered. Snail-mailed questions require a stamped and addressed return envelope. However, such questions will likely not receive a timely response.


Dates and Times

Lectures: Tuesday and Thursday 12:30 - 13:50 in Phelps 2510
Labs: Wednesday 12:30 - 13:50 in Phelps 3525
Final: Thursday August 29 12:30 - 13:50 in Phelps 2510

Course Description

Intermediate building blocks for solving problems using computers. Topics include data structures, object-oriented design and development, algorithms for manipulating these data structures and their runtime analyses. Data structures introduced include stacks, queues, lists, trees, and sets.

Required Texts

  • C++ Plus Data Structures, 5th edition
    Author: Nell Dale
    ISBN: 978-1449646752
    Links: Amazon Note: Previous editions of the textbook are suitable for the class. However, you will need to be aware of any discrepancies.

Course Objectives

  • “Become a programmer” – make programming a tool, not a challenge in itself
  • Learn how to design and implement programs using object-oriented design principles
  • Learn basic data structures and how to choose between them.
  • Apply new concepts to design efficient code.

Assignments and Grading

  • 36% Projects (3 or 4 split evenly)
  • 24% Final
  • 16% Labs (8, split evenly)
  • 16% Midterm
  • 04% Homeworks (2, split evenly)
  • 04% Participation

You are expected to work individually on all assignments save for the labs.

Participation points can be gained both through participation in class and online, via Piazza. Additionally, participation points can be earned by being the first student to notify me of any errors (grammar, spelling, code, etc.) on any of the course material.


Late Submissions

All submissions are considered late when the submission log date later than the deadline. Late submissions will be penalized one percentage point for every five-minute interval late. The following are a few examples for clarity assuming a deadline of 23:59:59 on the previous day:

  • A submission recorded at 00:00:00 will receive 99% of its assigned score. The same is true for a submission received at 00:04:59.
  • A submission recorded at 00:45:00 will receive 90% of its assigned score.
  • A submission recorded at 04:05:00 will receive 50% of its assigned score.
  • A submission recorded at 08:15:00 or later following or a 23:59:59 deadline will receive a zero.

Grading Petitions

Grading petitions apply only to handwritten work (includes exams). If you feel such work was incorrectly graded, you may ask for it to be re-graded only after the following conditions are met:

  • 24 hours have passed since the work has been returned to you.
  • You have written a clear, detailed argument in favor of your answer. In your argument, you need to demonstrate a clear understanding of the expected answer and compare the two.

When both these conditions are met, please deliver both your written work and written argument to the instructor.

Note that you needn’t follow this procedure if your answer matches the expected answer and it was marked incorrect. In that case, you may indicate the mistake to the instructor during office hours.

Lecture Attendance

Neither lecture, nor lab attendance is mandatory. Lecture attendance is always strongly encouraged.


Attendance at the first lab is mandatory so that you can be paired up with another student. This pairing will persist throughout the class, and may only be changed with instructor approval. Subsequent lab attendance is not required, but strongly encouraged. Each lab is due by 23:59:59 on the day of the lab. Only one student in the pair needs to submit the project.

Academic Integrity

Students of this course are expected to support the ideal of academic integrity as described on UCSB’s Office of Judicial Affairs website. Students discovered to be cheating, plagiarizing or colluding will at the very least receive a zero on the assignment and may be suspended from UCSB pending severity.

Below are some examples of violations of academic integrity. Note that this list isn’t exhaustive:

  • Showing any portion of your code to another student
  • Viewing any portion of another student’s code
  • Copying another student’s work
  • Modifying another student’s work to make it “your own”
  • Copying or modifying anyone else’s work without attribution

The following are some examples of acceptable forms of help:

  • Discussing your assignment with the Professor and TA
  • Discussing the general details of the assignment with others

Online Interaction

All announcements and online discussion will occur via Piazza. CS24 related questions asked via email will not be answered. Personal questions or questions that contain too much information specific to your implementation should be sent as a private question via Piazza (see “Post privately to instructors or students”).

You are encouraged and will be rewarded with participation points for non-anonymously asking and responding to questions via Piazza. While you may currently post questions or provide feedback anonymously, this feature will be removed if it becomes abused. Finally, as a hopefully unnecessary reminder, please be respectful to your peers when responding to questions.


Template design by Andreas Viklund