- Home
- People
- Syllabus
- Handouts
- Key Dates
- Papers
- Statistics
- Streaming Video
- Grades (via Canvas)
- Forum (via Canvas)
- CS&E Dept.

index.php

Main navigation | Main content

In this course, we will discuss a variety of techniques for the design
and analysis of efficient computer algorithms and data structures.
Topics that we plan to cover include divide-and-conquer, dynamic
programming, the greedy method, matroid theory, balanced search trees,
augmented data structures, techniques for amortized analysis, design of
amortized-efficient data structures, geometric problems, graph problems,
approximation algorithms, and some randomized algorithms. We will
explore the theoretical
underpinnings of these methods and will illustrate their uses with
examples drawn from a variety of problem domains.

To succeed in this course, you must be familiar with elementary data structures (lists, stacks, queues, heaps, trees, etc.), basic algorithms (sorting, binary search, etc.), standard analysis techniques (summations, recurrences, big-O notation, etc.), some basic probability theory (random variables, expected value, etc.), and standard proof methods (contradiction, induction, etc.). Such background can generally be obtained by taking, for instance, CSci 4041 and CSci 2011 and by reviewing Ch. 1-3, 5.1-5.3, and Appendices A, B, C.1-C.4 of the text. Additionally, you should read ahead for class, attend the lectures regularly and participate actively in them, work out as many problems as possible from the text, and avail of the assistance offered by the Instructor and TA.

Here's a detailed syllabus which includes information on the schedule, coursework, evaluation, class policies, and much more. Please read through it carefully.

To succeed in this course, you must be familiar with elementary data structures (lists, stacks, queues, heaps, trees, etc.), basic algorithms (sorting, binary search, etc.), standard analysis techniques (summations, recurrences, big-O notation, etc.), some basic probability theory (random variables, expected value, etc.), and standard proof methods (contradiction, induction, etc.). Such background can generally be obtained by taking, for instance, CSci 4041 and CSci 2011 and by reviewing Ch. 1-3, 5.1-5.3, and Appendices A, B, C.1-C.4 of the text. Additionally, you should read ahead for class, attend the lectures regularly and participate actively in them, work out as many problems as possible from the text, and avail of the assistance offered by the Instructor and TA.

Here's a detailed syllabus which includes information on the schedule, coursework, evaluation, class policies, and much more. Please read through it carefully.