Course Syllabus

CMPSC 24: Problem Solving with Computers II

Spring 2012

Lectures: MW 9:30 - 10:45

Location: North Hall 1006

Class Website: http://www.cs.ucsb.edu/~agrawal/spring2012/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); and Matematics 3B (MATH 3B).

Course Textbook:

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

Class Attendance

Class attendance in Lectures and Laboratories 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 course material from 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: MW 11:00 - 12:00, 3117 Engineering I, and by appointment.

Teaching Assistants:

Readers/Graders:

Discussion Sections: CMPSC24 Course Outline (approximate):
Date Topic Related Reading Assignment
M: 04/02/2012 Abstract Data Types & Classes; Software Development Process Chapter 1 & Chapter 2  
W: 04/04/2012 C to C++: Programming Language Transition Chapters 2 & Online C++ resources  
M: 04/09/2012 Pointer Review and Linked Lists Introduction Online C++ resources & Chapter 6  
W: 04/11/2012 Linked Lists Implementation Online C++ resources & Chapter 6  
M: 04/16/2012 The LIST Abstract Data Type Chapters 3 & 4  
W: 04/18/2012 LIST ADT Implementations Chapter 3 & 4  
M: 04/23/2012 The STACK ADT and its Application Chapter 5
W: 04/25/2012 Midterm Examination #1  
M: 04/30/2012 The STACK implementation Chapter 5  
W: 05/02/2012 Analysis of Algorithms Notes  
M: 05/07/2012 Recursion Basics & Stacks Chapter 5 & Chapter 7
W: 05/09/2012 Recursion Basics & Stacks Chapter 7
M: 05/14/2012 The Queue ADT and its Applications Chapter 5  
W: 05/16/2012 The Queue ADT Implementation Chapter 5  
M: 05/21/2012 The Binary Tree  Chapter 8  
W: 05/23/2012 Midterm Exam #2  
W: 05/30/2012 Binary Tree Applications: SEARCH Chapter 8  
M: 06/04/2012 Advanced Data Types: Priority Queues and Heaps Chapter 9
W: 06/06/2012 Advanced Data Types: Priority Queues and Heaps Chapter 9  
M: 06/11/2012 (NEEDS TO BE VERIFIED) FINAL EXAM Time: 8-11AM; Location: North Hall 1006