Course Syllabus
Computer Science 24
Fall 2016

Problem Solving with Computers II

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.

C++ is the programming language used this quarter.

Pre-requisite

Course Goals

  1. Students learn object-based programming techniques: abstraction and encapsulation.
  2. Students learn to specify, implement and apply lists, trees and other data structures.
  3. Students are exposed to complexity analysis, and learn to distinguish algorithms and data structures on the basis of efficiency.
  4. Students learn (and practice) to produce better programs more quickly and with less stress.

Instructor

Dr. C. Michael Costanzo, mikec@cs.ucsb.edu
Office hours - Monday and Wednesday 11:00-11:50am, in Trailer 936 room 103

Teaching Assistants

TA Email Office hours (in Trailer 936)
Honglie Liu honglei@cs.ucsb.edu Wednesday 2-4pm
Jinjin Shao jinjin_shao@umail.ucsb.edu Tuesday 2-4pm
Da Zhang zhangda.sjtu@gmail.com Thursday 1-3pm
Angad Gill (Reader) agill@umail.ucsb.edu not applicable

Instruction Schedule

Required Text

Michael Main and Walter Savitch. Data Structures and Other Objects Using C++ (4th edition), Addison-Wesley, 2011.

Course Outline

  1. Abstract data types generally
  2. Program correctness/testing, and exception handling
  3. Algorithm analysis
  4. Lists
  5. Stacks and queues
  6. Recursion
  7. Heaps, and binary search trees
  8. Searching and sorting
  9. Graphs (if time permits)

Grading Policy

Overall course scores will be calculated according to the following distribution of credit:

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 scoreGradeNotes
≥ 93%    AExceptional 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