Class Meetings: MW 12:30pm–1:45pm, Reiss, Room 264
Office Hours by Sam and Sidhant: Tu 11:00am–12:00pm, St. Mary's Hall, Room 342C
Office Hours by Sasha: Th 2:00pm–3:00pm, St. Mary's Hall, Room 354
Description:
This course explores various techniques used in the design and analysis of computer algorithms. Starting with the divide-and-conquer technique, the course covers various general approaches such as the greedy method and dynamic programming. The course will also cover online algorithms and fundamental algorithms on graphs. Finally, the course will introduce algorithmic techniques used in other areas including cryptography and computational complexity.
Prerequisites:
COSC-2010 or COSC-160 (Data Structures).
Familiarity with mathematical proofs and discrete mathematics.
Canvas page:
https://georgetown.instructure.com/courses/193304.
Textbooks:
Primary textbook: [CLRS] Cormen, Leiserson, Rivest, Stein. Introduction to algorithms, 4th Edition. 2022.
Additional textbooks:[DPV] Dasgupta, Papadimitriou, Vazirani. Algorithms. 2008.
[KP] Kulikov, Pevzner. Ace Your Next Coding Interview by Learning Algorithms through Programming and Puzzle Solving. 2022.
[KT] Kleinberg, Tardos. Algorithm Design. 2006.
[Eri] Erickson. Algorithms.
Online Draft.
Grading:
Grading will be based on five or six homework problem sets (50%), midterm (25%) and final (25%) exams, with extra credit for in-class participation.