COMP 150B: Topics on Algorithms, Graphs and Data Structures



When is this course offered?

Summer 2021, second session: July 6 - August 13. The course will be online, so students can interact with me and get started as early as they like.

Instructor and contact info

Greg Aloupis

Who should take this course? What are the topics?

This course covers various topics involving algorithms, graphs, and data structures. See the topics page and/or ask me for more details.
It is meant for students who have already enjoyed an introductory algorithms course and who want to explore further: we will expand upon certain introductory topics, and will cover several new topics as well. In particular there is an emphasis on data structures and graphs, that will significantly contribute towards obtaining a well-rounded background in theoretical computer science.

Prerequisites

To take this course, the student will need to feel comfortable with topics such as heaps, dynamic balanced binary search trees, single-source shortest paths, amortization, dynamic programming, expected value, basic probability and analysis of randomized algorithms, and of course recurrences, induction and big-O. It is possible to work around some of this because COMP150 is designed so that students can focus on topics that they like.
Officially, the prerequisite is COMP-160 (Algorithms), or my permission.
This course covers several topics that are not covered in COMP-260, so enrolment in both isn't prohibited. Please contact me though.

If you want to do a fancy visual project, it would help to be comfortable with JavaScript / Processing / d3, or equivalent. Note that this course will offer no help in learning these tools. It is also not mandatory to use them; there are alternative options for the project.

Accessing course content

There are videos for almost every topic that we cover. Most are edited recordings of live COMP150 lectures in Spring'17.
All videos, course notes, and other resources, are contained in a private link that is available by permission.

Assessment

Most of the items below involve subjective, qualitative assessment of your performance. Ultimately I am evaluating the effort that you put in. I will give you feedback for everything you submit, usually within a day or two. The most important thing is to get started on the project early and communicate with me frequently about what needs to be done. There is no a priori point system for the above. I will let you know how you're doing and whether you're on track, via frequent communication. You should always feel free to ask as well.



For more information, please email any time.