Lectures, Readings, and Assignments

The following schedule will be updated as we progress. The lecture slides and assigned readings will be posted after each lecture. The assignments will be posted as they are assigned and sample homework solutions will be posted after they are graded. All the programs from the book are available at the share directory.

Week # Date Lecture Slides Programs Readings Hw/Quiz
Week 1 8/29 Introduction
8/31 Pretest CS170 notes
Week 2 9/3 Labor day!
9/5 Java review: types, variables, expressions 1.1
9/7 Java review: control flow statements, methods Lab guide
Week 3 9/10 Arrays Hw1
solution
9/12 Arrays: Hw1 discussion BinarySearch
9/14 OO, Libraries, Inheritance 1.2
Week 4 9/17 Inheritance BankAccount
9/19 Stacks: Operations, implementation FixedCapacityStackOfStrings 1.3
9/21 Stacks: Implementation, Generics FixedCapacityStack
ResizingArrayStack
Reverse
Hw2
solution
Week 5 9/24 Stacks: Applications, Hw2 discussion Bracket
Parentheses Evaluate
EvaluatePostfix
9/26 Queues: Implementations, Applicatinos ResizingArrayQueue
Josephus
9/28 Queues: Deque, Priority Queue UnorderedArrayMaxPQ
OrderedArrayMaxPQ
Quiz1
Quiz1 sol
Week 6 10/1 Linked List LinkedList
DoublyLinkedList
10/3 Stacks and queues: linked list implementations, iterators LinkedStackOfStrings
Stack
Queue
Hw3
solution
10/5 Stacks and queues: iterators, java collections, Hw3 discussion
Week 7 10/8 Algorithm Analysis Stopwatch.java 1.4
10/10 Algorithm Analysis
10/12 Simple sorting: Comparable, bubble sort Comparable
Date
2.1
Week 8 10/15 Fall break!
10/17 Simple sorting: selection sort, insertion sort Selection
Insertion
10/19 Mergesort: Recursive algorithm Merge
Merging demo
2.2 Quiz2
Quiz2 sol
Hw4
Week 9 10/22 Mergesort: Improvements, Non-recursive algorithm, Analysis of Recursive algorithms MergeX
10/24 Analysis of Recrusive algorithms, Quicksort Algorithm Quick 2.3
10/26 Quicksort: Analysis, Improvements Quick
Week 10 10/29 Midterm 1 Review,
Practice Exam,
Solution,
Midterm1 sol
10/31 Binary Search Trees: definition, search (Prof. Cheung) SequentialSearchST
BinarySearchST
BST
BST_Iterative
BST_Recursive
3.1
3.2
11/2 BST: search, insert
Week 11 11/5 BST: traversal
11/7 BST: ordered operations, delete Hw5
11/9 BST: delete, Hw5 discussion
Hash table
Transaction
SeparateChainingHashST
LinearProbingHashST
3.4
Week 12 11/12 Hash table
11/14 Priority Queue and Heap TopM
UnorderedArrayMaxPQ
OrderedArrayMaxPQ
MaxPQ
MinPQ
2.4
11/16 Graphs: Definition, representations (Luca Bonomi) AdjList Graph
AdjMatrixGraph
4.1
Week 13 11/19 Graphs: Depth first search, path finding DepthFirstSearch
DepthFirstPaths
11/21 Self study
11/23 Thanksgiving Break!
Week 14 11/26 Graphs: Breadth first search, connected components BreadthFirstPaths
ConnectedComponents
4.1 Quiz 3
Quiz3 sol
11/28 Midterm 2 Review,
Practice Exam,
Solution
11/30 Graphs: Directed and Weighted Graphs Digraph
DirectedDFS
DFSDirectedPaths
BFSDirectedPath
EdgeWeightedGraphs
Edge
4.2 MapQuest
FaceSpace
Week 15 12/3 Graphs: Shortest Paths, Dijkstra's demo DijkstraSP
EdgeWeightedDigraph
DirectedEdge
4.4
12/5 Graphs: shortest paths, symbol graphs, project discussion SymbolGraph
12/7 Graphs: Minimum Spanning Trees LazyPrimMST 4.3 Quiz 4
Quiz4 sol
Week 16 12/10 project workshop and review
12/13 4:30-7pm: Final exam Review,
Practice Exam,
Solution