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 ] [ blog post ] Structures, function pointers, our first C++ class: a Lexer, map
- Source files for all examples, including the
Makefile
are in
this directory.
- [ slides ] [ blog post ] Client use of basic data structures: vector, stack, exceptions
- Source files for all examples, including the
Makefile
are in this directory.
Asymptotic analysis, recursion, and basic algorithms
- [ slides ] [ blog
post ] Simple example of asymptotic analysis,
Fibonacci sequence
- [ slides ] Growth of functions and
asymptotic notations, getting used to comparing functions
- [ slides ] Binary search,
solving recurrences by guess and induct
- [ slides ] Sorting algorithms,
function template, callback function
Vectors, lists, stack, and queue
- [ blog post ] Vectors and amortized analysis
- [ blog post ] Lists and C++ iterators
Trees
- [ slides ] [ blog
post> ] Binary trees
and binary search trees: tree traversals, Huffman trees, counting trees,
random BST
- [ slides ] [ blog
post ] AVL Trees, Red-Black Trees, (2,4)-Trees, Splay trees, Amortized
analysis again
- [ slides ] Heaps and Priority Queues (will skip this unless time allows in
the end)
Sets, Maps, Hash Tables
- [ slides ] Hash tables, applications
Graphs (take 331, 431, 531)
- [ slides ] Graphs, graph traversal, applications
- [ slides ] Implementing the Graph ADT
- [ slides ] Weighted graphs
Epilogue