Colorado
State University
Computer Science Department

CS 620: Advanced Topics in Algorithms, Ross McConnell


Stay tuned to this section of the web page for assignments and announcements. Check it before coming to class for notices, such as class cancellations, homework extensions, etc.


Instructor: Ross McConnell

Textbooks:

Prerequisites:


Overview

Many people think of data structures as an undergraduate topic. However, there are many beautiful data structures that are skipped in undergraduate courses, because few undergraduate students have the background to understand them.

Some of these data structures consist of a large number of nodes that perform an elaborate ballet, constantly establishing and dropping connections between each other as the structure is queried. The behavior of some of them more closely resembles that of a living brain than that of a traditional data structure, and they give rise to the fastest algorithms known for many fundamental problems in computer science.

The course covers a variety of examples, and gives case studies in their application to real-world problems. Of greatest significance is not so much the particular data structures that we study, but the very general principles of algorithm design that they illustrate.

An official prerequisite is a graduate algorithms course, such as our CS 520. However, of greater interest is reasonable comfort with the assumed background and skills. This includes the math background, which is outlined in Chapters 1 through 4 of the Cormen book, and experience at how to apply it to algorithm design, which is illustrated in many subsequent chapters. In recent weeks, I have also given waivers to students who have have picked this up in non-traditional ways. Make an appointment with me during the first week if you have questions about your background or waivers.

Of equal importance is an esthetic appreciation of the subject, which generates many problems and puzzles that look hard at first, but that are astonishingly easy once you hit on the right insight. Much of the course is about tricks for coming up with these insights.


Outline of topics (under development; to be determined after I get your input)


Coursework

There will be written homework assignments, two midterms, and a final. Their weights in computing your final grade are as follows:

Homeworks 25 %.
Midterm 1 25 %
Midterm 2 25 %
Final 25 %

Homeworks are not accepted late, since I often hand out or discuss solutions when they are due. To compensate for this, I will drop your lowest homework grade as a "freebie" for when you have an unexpected conflict, illness, or emergency.

Much of the class is built around discussion. Please attend class regularly and to be prepared to discuss the readings. I will hand out written exercises to bolster your skills and enhance your understanding of the readings. Start on them early so that we can discuss them in class.