Course Notes, Practice Problems, and Solutions
     
C++ notes
     
Explaining end-of-file I/O using C++
     
Google's C++ Style Guide
     
Java Coding Style Conventions
     
Basic Unix commands
     
How to transfer files and compile under linux
     
Recording by me about software needed to use our linux machines
I tried to edit this video and appeared to have messed it up. I cannot figure
out how to undo whatever I did. Maybe I will someday. Stay tuned.
Reviewing pointers and dynamic memory
     
When an object has dynamic memory
     
Pointers and memory diagram
     
Valgrind example
(Correct, except g++ bug always give unreachable memory)
     
Valgrind example showing how it works
Week 11:   Final exam
     
Final exam information
     
Final practice problems
...........
solutions
Week 9 and Week 10:  
Formal Languages and Automata Theory
Week 8:  
Hashing and Polymorphism under the hood
Week 7:  
Object-oriented design and programming,
Factory design pattern
Week 6:   Midterm exam
     
Midterm exam information
     
Old exam from CSS 343 . . . . . . .
solutions
All the problems are relevant except the Poly coding problem.
You would likely have an IntSet question in its place, e.g., is one set
a subset of another: bool sub = A.isSubset(B);
Week 5:  
AVL Trees, 2-3 trees, B-trees
Week 3 and Week 4:  
Graphs, Depth/Breadth-first, Dijkstra's shortest
path algorithm
Week 2:  
Binary search trees, Priority queues and Heaps
Week 1:  
General and binary trees, Huffman encoding