Number CS210, Section: 01Q
Semester: Summer 2014
Pre-requisites: CS110 or CS115L
Start-End Dates: 5/27 – 7/24
Instructor: Joseph Paul Cohen ( joecohen -at- )
Teaching Assistant: Carla Aravena ( caravena -at- )
Office Location: KDLab S-3-159 Map
Office Hours: Tuesday 4-5pm
Course Room: M-2-417 ( NOT ROOM M-3-201 )
Meeting Time: MoTuTh 6:00PM – 7:30PM
Lab/Recitation Location: Web Lab S-3-28
Lab/Recitation Hours: Thursday 5-6pm


The design and implementation of computer programs in a high-level language, with emphasis on proper design principles and advanced programming concepts, including dynamic data structures and recursion. Efficient design, implementation and debugging techniques are stressed. The assignments are designed to introduce the student to a variety of topics in computing: data structures and ADTs, Lists, Stacks, Queues, Ordered Lists, Binary Trees, and searching and sorting techniques. The language of instruction is Java.


Students successfully completing this course will:
Be able to use data structures in conjunction with the algorithms required for an efficient program;
Be able to use both recursion and iteration in solutions for problems involving repetition;


Algorithms (4th Edition) by Robert Sedgewick and Kevin Wayne
ISBN-13: 978-0321573513 ISBN-10: 032157351X

Exams (3 total lowest grade is dropped): 40%
Homeworks/Projects: 50%
Class participation/attendance/contribution: 10%

Turn in work by ssh-ing into and entering your cs210 directory. You can scp your work as well. Any issues email operator -at- from your account. For an account go to the UNIX/Linux lab (S-3-159) and ask for the operator.


I will only accept text (.txt,.java,.html, …) files or pdf files.


I will only allow one late homework. This homework can be turned in one class late.


You are encouraged to discuss homeworks with other students.
Please only assist other students in finding the answer. Do not give answers to anyone.
If you discussed a homework with someone document this on your homework.


The penalty for cheating is extremely severe. It can result in an F in this course. Cheating consists of, but not limited to:
– Using or copying a person’s work (outside class or class member) on an exam or assignment in any fashion.
– Allowing your own work to be copied or used by another person.
– Submitting as your own work something that has been written by another person.
– Using any unauthorized reference on an exam or assignment.
– Not acknowledging in writing on an assignment any help you have received.

SCHEDULE (Subject to change)
5/261.1,1.2,1.3Review, Recursion, Programming Model, Data Abstraction, Stacks And QueuesHW1 (Due 6/2 @5pm)
6/21.4, 2.1Analysis of Algorithms (Runtime)HW2 (Due 6/9 @5:30pm)
Project1 (Due 6/16 @5:30pm)
6/92.2, 2.3, 2.4Elementary Sorts, MergesortEXAM 1 (6/12)
6/163.1, 3.2 QuickSort, QuickSelectHW3 (Due 6/23/14 @6pm)
6/233.3, 3.4 Heaps, Priority Queues, Binary Search TreesHW4 (Due 6/26/14 @5:30pm),
HW5 (Due 7/1/14 @5:30pm)
6/303.5Balanced Search Trees, Hash TablesHW6 (Due 7/7/14 @5:30pm)
7/74.1, 4.2(Un)directed Graphs, DFS, BFS, Connected components, Topological sortHW7 (Due 7/14/14 @5:30pm),
HW8 (Due 7/15/14 @5:30pm)
7/144.3, 4.4, 1.5Shortest Paths, Minimum Spanning TreesEXAM 2 (7/14)
7/215.3UnionFind, Substring SearchHW9 (Due 7/24/14 @6:00pm),

UNIX Tutorial for Beginners

Basic Linux and Package Management