Prerequisites: CMSC 150 and CMSC 350 (or CMSC 230). A presentation of fundamental techniques for designing and analyzing computer algorithms. The aim is to apply Big-O estimates of algorithms and proof-of-correctness techniques and to design algorithms. Basic methods include divide-and-conquer techniques, search and traversal techniques, dynamic programming, greedy methods, and induction. Programming projects are included. Enrollment Requirements: Prerequisites - CMSC 150 and CMSC 350 (or CMSC 230).
Spring 2020, Fall 2019, Spring 2019, Fall 2018, Spring 2018