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.
C++ is the programming language used this quarter.
Pre-requisite
Computer Science 16 with a grade of C or better; and
Mathematics 3B with a grade of C or better (may be taken concurrently).
Course Goals
Students learn object-based programming techniques: abstraction and encapsulation.
Students learn to specify, implement and apply lists, trees and other data structures.
Students are exposed to complexity analysis, and learn to
distinguish algorithms and data structures on the basis of efficiency.
Students learn (and practice) to produce better programs more quickly and with less stress.
as enrolled at 8-8:50 or 9-9:50 or 10-10:50 or 11-11:50
Required Text
Michael Main and Walter Savitch. Data Structures and Other Objects Using C++ (4th edition),
Addison-Wesley, 2011.
Course Outline
Abstract data types generally
Program correctness/testing, and exception handling
Algorithm analysis
Lists
Stacks and queues
Recursion
Heaps, and binary search trees
Searching and sorting
Graphs (if time permits)
Grading Policy
Overall course scores will be calculated according to the following distribution of
credit:
40 percent - assignments (including labs).
60 percent - 3 exams: best counts 28 percent, worst counts 12 percent,
and middle score counts 20 percent. The schedule is as follows
(unless announced otherwise):
Wednesday, October 19.
Wednesday, November 9.
Wednesday, November 30.
(No final exam this quarter.)
If the class average overall course score is less than 80 percent, then a curve
may be applied to establish letter grades. Otherwise, letter grades will be assigned
as follows:
Overall score
Grade
Notes
≥ 93%
A
Exceptional scores may earn A+
90-92.9%
A-
Scores will be rounded to
the nearest 0.1 percent
87-89.9%
B+
83-86.9%
B
80-82.9%
B-
77-79.9%
C+
73-76.9%
C
70-72.9%
C-
67-69.9%
D+
63-66.9%
D
< 63%
D-
Very poor scores may earn F
Notices
The course's web pages
(http://www.cs.ucsb.edu/~mikec/cs24)
are mandatory reading. Students are responsible for monitoring them
throughout the quarter.
Make-up exams can only be arranged at least 48 hours prior to the
exam, and only in extraordinary circumstances (which do not include having
other exams that day).
Assignments must be completed, and correctly turned in on time for
full credit - no exceptions, no extensions, no excuses.
IMPORTANT: All of the work you turn in for CS 24 must be your own,
personal work, or a sanctioned collaboration with your assigned lab partner.
The university's honor code
will be strictly enforced, and we may use an automated system to detect
plagiarism and collusion.