Brief introduction to (the procedural part of) C++
-
[ slides ]
Administrative aspects, "Hello World," Makefile
-
[ slides ]
[ blog post ]
Types, declarations and definitions, control structures,
references, pass-by-value and pass-by-reference.
-
[ blog post ]
Terminal control, enumerations, source files, programs, Makefile
-
[ slides ] [ blog post ]
Pointers and arrays
-
[ slides ]
Structures, function pointers, our first C++ class: a Lexer, client use of
map
- Source files for all examples, including the
Makefile
are in
this directory.
-
[ slides ]
Client use of basic data structures:
vector
, stack
, exceptions
- Source files for all examples, including the
Makefile
are in this directory.
Asymptotic analysis, basic algorithms on arrays, introductory iteration vs. recursion
-
[ slides ] [ blog post ]
Simple example of asymptotic analysis, Fibonacci sequence
-
[ no slides, I'll use the white board ]
Binary search, Merge Sort,
solving recurrences by guess and induct and by recurrence tree
-
[ no slides, I'll use the white board ]
Growth of functions and
asymptotic notations, getting used to comparing growth rates of functions
-
[ slides ]
[ blog post ]
Search and Sorting, Heaps and Priority Queues,
function template, callback function
Vectors, lists, stack, and queue, more recursion vs. iteration
-
[ slides ] [ blog post ]
Vectors and amortized analysis
-
[ slides ]
Lists and C++ iterators
Trees
- [ slides ]
Binary trees and binary search trees: tree traversals, Huffman trees, counting trees, random BST
-
[ slides ]
AVL Trees, Red-Black Trees, (2,4)-Trees, Splay trees, Amortized analysis again
Sets, Maps, Hash Tables
-
slides ]
Hash tables, applications
-
Maps, sets, multi-maps
Graphs (take 331, 431, 531)
- [ slides ] Graphs, graph traversal, applications
- [ slides ] Implementing the Graph ADT
- [ slides ] Weighted graphs
Epilogue
-
Final exam review