1.1 - Describe the complexity analysis of algorithms including randomized analysis
1.2 - Describe different design techniques of advanced algorithms, including dynamic programming, randomized algorithm, graph algorithms, linear programming
1.3 - Describe advanced data structure, including skip list, interval trees
1.4 - Describe NP-completeness and approximation algorithms for them
2.1 - Apply conceptual understanding for analysis of algorithms complexity
2.2 - Apply procedures to design advanced algorithms and data structures
2.3 - Demonstrate understanding of NP-completeness proofs and designing approximation algorithms
3.1 - Work effectively in groups and exercise leadership when appropriate
4.1 - Use basic mathematical and statistical techniques