Course Syllabus

CMPSC 24: Problem Solving with Computers II

Winter 2011

Lectures: TR 9:30 - 10:45 (Enrollment Code: 08060)

Location: PHELPS 3515

Class Website: http://www.cs.ucsb.edu/~agrawal/winter2011/cmpsc24.html

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. 4 units.

Course Prerequisites

Computer Science 16 (CMPSC 16) or Engineering 3 (ENGR 3); Matematics 3B (MATH 3B). Course counts as legal repeat of Computer Science 12 (CMPSC 12). Not open for credit to students who have completed Computer Science 12 (CMPSC 12) or Computer Science 20 (CMPSC 20).

Course Textbook:

C++ Plus Data Structures (4th edition) by Nell Dale, Jones & Bartlett

Class Attendance

Class attendance in Lectures and Discussions is mandatory: you are responsible for everything that goes on in the class. Prepare in advance for each lecture by reading and studying the assigned text, and by making sure you understand the previous lectures.
Weekly one-hour discussion sections, led by the TA, will focus on small programming exercises that reinforce the material presented during lectures. It is required that students attend these sessions; you are responsible for the material presented in these sessions.

Computing Facilities

You may use the CSIL (Computer Science Instructional Lab) computers, or any other machine you prefer. All programming will be in C++.

Assignments and Grading

Grades will be based on Laboratory Assignments, Homeworks, Midterm Exam(s), Programming Assignments, and the Final Exam.
Unless otherwise instructed, all programming assignments must be submitted by 11:59pm on the due date. Late assignments will not be accepted. Turn in what you have done by the due date and time.
You are encouraged to discuss homework assignments with classmates at a general level. However, you may not share answers/code or collaborate on solutions unless otherwise directed to do so. All work turned in must be completely your own, including programming assignments. (See the Policy on Academic Integrity, below.)
There will be no makeup exams.

Policy on Academic Integrity

Please read this section carefully. The university, the department, and this instructor all take the issue of academic integrity very seriously. A university requires an atmosphere of mutual trust and respect. While collaboration is an integral part of many scholarly activities, it is not always appropriate in a course, and it is never appropriate unless due credit is given to all participants in the collaboration. This goes for both ideas and programming or other work.
Here are some examples:
For some views on academic integrity at UCSB see:
Summary: Academic integrity is absolutely required - dishonesty (cheating, plagiarism, etc.) benefits no one and hurts everyone. If you are not sure whether or not something is appropriate, please ask the instructor or TA.

Students with Disabilities

If you are a student with a disability and would like to discuss special academic accommodations, please contact the instructor. In addition, students with temporary or permanent disabilities are referred to the Disabled Students Program (DSP) at UCSB. DSP will arrange for special services when appropriate (e.g., facilitation of access, note takers, readers, sign language interpreters). Please note that it is the student's responsibility to communicate his or her special needs to the instructor, along with a letter of verification from DSP.

Instructor: Divy Agrawal, agrawal AT cs.ucsb.edu

Office hours: TR 11:00 - 12:00, 3117 Engineering I, and by appointment.

Teaching Assistants:

Reader/Grader:

Discussion Sections: CMPSC24 Course Outline (approximate):
Date Topic Related Reading Assignment
Tu: 01/04/2011 Abstract Data Types & Classes; Software Development Process Chapter 1 & Chapter 2  
Th: 01/06/2011 C to C++: Programming Language Transition Chapters 2 & Online C++ resources  
Tu: 01/11/2011 Pointer Review and Linked Lists Introduction Online C++ resources & Chapter 6  
Th: 01/13/2011 Linked Lists Implementation Online C++ resources & Chapter 6  
Tu: 01/18/2011 The LIST Abstract Data Type Chapters 3 & 4  
Th: 01/20/2011 LIST ADT Implementations Chapter 3 & 4  
Tu: 01/25/2011 The STACK ADT and its Application Chapter 5
Th: 01/27/2011 Midterm Examination #1  
Tu: 02/01/2011 The STACK implementation Chapter 5  
Th: 02/03/2011 Analysis of Algorithms Notes  
Tu: 02/08/2011 Recursion Basics & Stacks Chapter 5 & Chapter 7
Th: 02/10/2011 Recursion Basics & Stacks Chapter 7
Tu: 02/15/2011 The Queue ADT and its Applications Chapter 5  
Th: 02/17/2011 The Queue ADT Implementation Chapter 5  
Tu: 02/22/2011 The Binary Tree  Chapter 8  
Th: 02/24/2011 Midterm Exam #2  
Tu: 03/01/2011 Binary Tree Applications: SEARCH Chapter 8  
Th: 03/03/2011 Advanced Data Types: Priority Queues and Heaps Chapter 9
Tu: 03/08/2011 Chapter 9  
Th: 03/10/2011 Sorting & Searching Chapter 10  
W: 03/16/2011 FINAL EXAM Time: 8-11AM; Location: Phelps 3515