Discuss reductions/ intractability, good examples:
http://www.cs.princeton.edu/courses/archive/spring15/cos226/lectures/65Reductions-2x2.pdf
Will take some examples from
http://www.careerride.com/Data-Structure-Interview-Questions.aspx
http://dtkachenko.blogspot.com/2011/11/data-structures-and-algorithms-when-to.html
Go over some sample problems: https://projecteuler.net/problem=81
Will review sorts, instances when to use different sorting (ex. if swaps are super expensive instead of comparisons, use insertion sort)
http://stackoverflow.com/questions/1933759/when-is-each-sorting-algorithm-used
Introduces BFS, DFS, Dijkstra, Prim, etc., mostly talk about CS problems as graph theory problems.
http://cstheory.stackexchange.com/questions/4907/application-of-graph-theory-in-computer-science
Only cover some graph/NFA/DFA representation, properties, mention theorems, etc.
http://infolab.stanford.edu/~ullman/focs/ch10.pdf
Good overview of theory, last bit about NFA: https://courses.engr.illinois.edu/cs373/fa2010/lectures/lect06.pdf
optimizing: http://blog.codinghorror.com/regex-performance/
https://docs.python.org/2/howto/regex.html#regex-howto
https://docs.python.org/2/library/re.html
https://projecteuler.net/problem=89
Consider problems which can be parallelized, go through problems in:
http://scottsievert.github.io/blog/2014/07/30/simple-python-parallelism/
https://www.binpress.com/tutorial/simple-python-parallelism/121
http://en.wikipedia.org/wiki/Fermat_primality_test