The Coding Interview
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

CMSC389O: The Coding Interview

Prerequisites: C- or better in CMSC250 and CMSC216

Credits: 1

Course Description

This course provides a comprehensive, practical introduction to technical interviews. The course will start with basic topics such as Big O and String Manipulation. We will then move into more complex topics such as Bit Manipulation and Dynamic Programming.

Most of the classes will be "In-Class Interviews".


Required: None

Recommended: Cracking the Coding Interview by Gayle Laakmann McDowell

Topics Covered

  • Big O
  • String Manipulation
  • Sorting and Searching
  • Linked Lists
  • Stacks and Queues
  • Trees and Graphs
  • Bit Manipulation
  • Dynamic Programming
  • Testing


Grades will be maintained on the CS Department grades server.

You are responsible for all material discussed in lecture and posted on the class repository, including announcements, deadlines, policies, etc.

Your final course grade will be determined according to the following percentages:

Percentage Title Description
30% Class Participation Each class will require active participation from the students.
20% Homework Weekly individual homework that require video submission of solution.
20% Midterm Two problems will be handed out (just like the homeworks). These problems will be more difficult than normal HW problems, but are the same format.
30% Final One problem will be handed out (just like the homeworks). This problems will be more difficult than normal HW problems, but is the same format. You must also complete an "essay" in which you detail how to complete a coding interveiw to someone who's never been in a coding interview before.

Any request for reconsideration of any grading on coursework must be submitted within one week of when it is returned. No requests will be considered afterwards.


ICI = In-Class Interviews

Week Topic Assignment
1 (9/1) Big O + Sample Interview HW1 OUT
2 (9/8) ICI (String Manipulation) HW1 DUE, HW2 OUT
3 (9/15) ICI (Sorting + Searching) HW2 DUE, HW3 OUT
4 (9/22) ICI (Linked Lists) HW3 DUE, HW4 OUT
5 (9/29) ICI (Stacks + Queues) HW4 DUE, HW5 OUT
6 (10/6) ICI (Trees) HW5 DUE, MIDTERM OUT
7 (10/13) Graphs (DFS + BFS) + Sample Interview
8 (10/20) ICI (Graphs) MIDTERM DUE, HW6 OUT
9 (10/27) Dynamic Programming + Sample Interview HW6 DUE
10 (11/3) ICI (Dynamic Programming) HW7 OUT
11 (11/10) Bit Manipulation + Sample Interview HW7 DUE, HW8 OUT
12 (11/17) ICI (Misc.) HW8 DUE, FINAL OUT
13 (12/1) ICI (Misc.)


Homework must be submitted in video format electronically via ELMS and must be no more than 30 minutes long. Homework may not be submitted by any other means (e.g., please do not email your homework to us). It is your responsibility to verify that your video plays back properly before submitting. All homework is due at 11:59 PM on the day indicated on the homework assignment.

Homework may be submitted up to 24 hours late for a 10% penalty. You may submit multiple times, but we will only view the latest submission.

HW # Topic Reading
1 Big O Chapter VI
2 String Manipulation Chapter 1
3 Sorting + Searching Chapter 10
4 Linked List Chapter 2
5 Stacks + Queues Chapter 3
6 Trees + Graphs Chapter 4
7 Dynamic Programming Chapter 8
8 Bit Manipulation Chapter 5

Outside-of-class communication with course staff

We will interact with students outside of class in primarily two ways: in-person during office hours and piazza. Email should only be used for emergencies and not class related questions (e.g., homework).


Dr. Dave Levin -


Cameron Payton -

Ishaan Parikh -

Excused Absence and Academic Accommodations

See the section titled "Attendance, Absences, or Missed Assignments" available at Course Related Policies.

Disability Support Accommodations

See the section titled "Accessibility" available at Course Related Policies.

Academic Integrity

Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.

It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit

Course Evaluations

If you have a suggestion for improving this class, don't hesitate to tell the instructor or TAs during the semester. At the end of the semester, please don't forget to provide your feedback using the campus-wide CourseEvalUM system. Your comments will help make this class better.

Thanks to the writers of this syllabus for the wording of much of this document.