Welcome to CS 161! (backlink to home page)

Why are you here?

Welcome to CS 161: Design and Analysis of Algorithms! Have you ever wondered why Google Maps, Apple Maps, and Waze all have different routes between places? How the Google search button works so quickly? In this class, we will look at the fundamental building blocks behind the above questions and how to solve them efficiently. Our goal is for you to come out of here a better problem solver: we’ve seen first hand that algorithmic problem solving skills can translate to real life.

Although this course is all about the theoretical design of algorithms, there will be plenty of practice problems (for all of you technical interview aficionados)! On the note of technical interviews, it seems that recent interviews have been venturing further into the “competitive programming data structures” realm. We will be exploring a little bit into this area in the course, which we hope will be a fun experience for all of you!

Who are we?

Instructor

I’m not (much) older than most of you, so please call me Misha instead of Mr. Ivkov or anything else 🙂 (but I’ve been told that using that emoji makes me old so make of that what you will). I just completed my second year of PhD here in the Computer Science department (with a focus on Algorithms). Before that, I did my undergraduate at Carnegie Mellon where I spent almost all my free time being a teaching assistant for algorithmic CS courses.

We also have 4 wonderful CAs:

Course Assistants

Rishu is also our student liaison: he will generally be the one responding to any extension requests, OAE accommodations (please fill out the form linked below and on the main page for these, though). He’s also generally the contact person to reach out to if you feel like you are falling behind or struggling.

When is class?

We will have both lectures and sections this summer.

What are the prerequisites?

Officially, the prerequisites are CS103, 106B, and 109. These are not hard prerequisites: for example, if you have a strong mathematical and programming background, you should be fine. There are some prerequisite review sheets from last year’s course if you’re feeling a bit rusty (thanks Ian for the docs!). If you’re not sure about your background or have requests for other docs, feel free to email Misha (mishai@).

How will the course work?

There are four parts to the course: lectures, sections, homeworks, and quizzes.