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- comp150.ALG@gmail (please do not use my Tufts email)
- Piazza
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.- Course project, involving implementation and/or visualization and/or research report for a topic that you will come up with and I will approve.
See the link above for examples. The project will be the main factor in determining your final grade, but you will also need to perform reasonably well in the following. - Two tests. For each test, you provide a list of 7 approved topics, and I will ask you about 3 of them. (Details are available in Piazza). In the absence of any kind of available proctoring, the tests will be done by chatting in Zoom. The objective is to show me that you have understood a reasonable number of course topics (not necessarily all). This also allows students with certain weaknesses (e.g., probability) to focus on other topics instead.
- About six of seven homework exercises that will be available when the course officially begins, in Piazza. I will announce deadlines in Piazza. You will receive feedback within a day or two, and will have multiple opportunities to revise. The objective here is simply to complete the homework by the end of the term, but also to make some steady progress.
For more information, please email any time.