REFERENCE - SESSION - IN-DEPTH EXERCISE - PROJECT GUIDANCE

P vs. NP Stuff

Discuss reductions/ intractability, good examples:

http://www.cs.princeton.edu/courses/archive/spring15/cos226/lectures/65Reductions-2x2.pdf

Data Structures

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

Dynamics Programming

Go over some sample problems: https://projecteuler.net/problem=81

Sorting

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

Graph Problems

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

Regexp

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

Parallelization

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

Randomization

http://en.wikipedia.org/wiki/Fermat_primality_test