Prerequisite: Minimum grade of C- in CMSC216 and CMSC250; and permission of CMNS-Computer Science department. Covers most of the basic techniques and algorithms that are used in competitive programming. Topics include C++ STL, greedy, dynamic programming,divide and conquer, graph algorithms, and data structures. Students will learn different algorithmic techniques and apply these concepts to solve interesting programming problems in practice.