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.
Computer Science 16 (CMPSC 16) or Engineering 3 (ENGR 3); and Matematics 3B (MATH 3B).
C++ Plus Data Structures (5th edition) by Nell Dale, Jones & Bartlett
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.
You may use the CSIL (Computer Science Instructional Lab) computers, or any other machine you prefer. All programming will be in C++.
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.
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.
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:
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 |