Announcements
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.
Syllabus
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.
Policies
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 receive99%
of its assigned score. The same is true for a submission received at00:04:59
. - A submission recorded at
00:45:00
will receive90%
of its assigned score. - A submission recorded at
04:05:00
will receive50%
of its assigned score. - A submission recorded at
08:15:00
or later following or a23: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.
Labs
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.