CS211 Lecture Notes

Lecture Date Topics Examples/notes Reading
Introduction June 27 Course Info,
Course Goals,
Quick Java Overview
Lecture 1 Notes Weiss Ch. 1-3
Induction June 28 Induction,
Strong Induction
Lecture 2 Notes Weiss Ch. 7
Recursion June 29 Recursive Functions,
Recursive Algorithms,
Stacks
Lecture 3 Notes
Power.java
Hanoi-Iterative.java
Hanoi-Recursive.java
Weiss Ch. 7
Grammars and Parsing June 30 Grammars,
Parsing,
Expressions,
Application of Stacks,
Application of Recursion
Lecture 4 Notes
AddParser.java
AddParserWithScanner.java
CS211In.java
CS211InInterface.java
CS211Out.java
CS211OutInterface.java
Weiss Ch. 11 Quiz 1 Solutions
Object-Oriented Programming July 5 Objects,
Classes,
References,
Why OOP?
Lecture 5 Notes
Weiss Ch. 3
Inheritance July 6 Subclasses/Superclasses
Overriding 
Using "this" and "super"
Subtypes
Abstract Classes
Lecture 6 Notes
Test.java
Test0.java
Test1.java
Test2.java
Weiss Ch. 4
Object-Oriented Programming July 7 Types
Interface Rules
Implementing an Interface
Type Checking
interface Comparable
Lecture 7 Notes
Weiss Ch. 4 Quiz 2 Solutions
Lists July 11 First dynamic data structure
linked lists
ListCell class
constructing lists
searching through lists
insertion and deletion
doubly linked lists
Lecture 8 Notes
ListCell.java
List.java
Weiss 2.4.2, 2.4.3, and 6.1-6.5
Trees July 13 Tree Definition
General Structure
Binary Trees
Abstract Syntax Trees
Traversal
Lecture 9 Notes
TreeCell.java
More on Lists: Weiss Ch. 17

Trees: Weiss Ch. 18

 

Introduction to Searching and Complexity July 13 Linear Search
Binary Search
Running Time
Big-Oh
Lecture 10 Notes
SearchIntArray.java
SearchComparableArray.java
Weiss Ch. 5.1-5.3
Sorting July 14 SelectionSort
MergeSort
QuickSort
Lecture 11 Notes
Binary Search Trees: Weiss Ch. 19.1-19.2

Weiss Ch. 8

Quiz 3 Solutions
Asymptotic Running Time July 18 Big-Oh notation
Analysis Techniques
Lecture 12 Notes
Weiss Ch. 5
Generic Programming July 19 Iterators
Inner Classes
Generic Algorithms
Lecture 13 Notes
Weiss Ch. 6.1-6.4
Abstract Data Types July 20 Operations and Structures
Vectors
Hashtables
  -Implementation
  -hashing functions
Dictionaries
Lecture 14 Notes
Weiss Ch. 20
Priority Queues and Heaps July 21 Stacks and Queues Tradeoffs
Priority Queues
Heaps
The Heap Invariant
Heapsort
Lecture 15 Notes
PriorityQueue.java
Weiss Ch. 21.1-21.5
Generics in Java 5 July 22 The for-each loop
Generic classes
Wildcards
Generic methods
Generics Notes Quiz 4 Solutions
Graphs and Algorithms July 25 Graphs
DFS, BFS, topological sort
coloring, planarity
Dijkstra's algorithm
Lecture 16 Notes Weiss Ch. 14.1-14.3
Spanning Trees and Exceptions July 26 Minimum Spanning Trees
Greedy Algorithms
Tree Properties
Exceptions in Java
Lecture 17 Notes Weiss Ch. 14.4-14.5
Search Trees July 27 Search structures
Binary Search Trees
Balancing and Big-Oh
Rotations
AVL Trees
2-3 Trees
Lecture 18 Notes Weiss Ch. 19.1, 19.3, 19.4