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 to give real interview practice.

Textbooks

Required: None

Recommended: Cracking the Coding Interview by Gayle Laakmann McDowell

Topics Covered

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

Grading

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 assignments must be completed online. Homework will also include reading prep materials for the following class.
20% Midterm Class facilitators will conduct technical phone interviews. These problems will be of the same format and difficulty as the HW problems.
30% Final Class facilitators will conduct technical phone interviews. These problems will be of the same format and difficulty as the HW problems.

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.

Timeline

ICI = In-Class Interviews

Week Topic Assignment
1 (1/26) Introduction HW0 OUT (Resumes)
2 (2/2) ICI (Behavioral) + Big O + Bit Manipulaition HW1 OUT
3 (2/9) ICI (String Manipulation) HW1 DUE, HW2 OUT
4 (2/16) ICI (Arrays) HW2 DUE, HW3 OUT
5 (2/23) ICI (Sorting + Searching) HW3 DUE, HW4 OUT
6 (3/2) ICI (Linked Lists) HW4 DUE, HW5 OUT
7 (3/9) ICI (Graphs 1) HW5 DUE
8 (3/16) NO CLASS Midterm Week
9 (3/23) SPRING BREAK
10 (3/30) ICI (Trees) HW6 OUT
11 (4/6) Recursion HW6 DUE, HW7 OUT
12 (4/13) Dynamic Programming + Sample Interview HW7 DUE
13 (4/20) ICI (Dynamic Programming) + Finals Info Finals Sign-Up
14 (4/27) ICI (Misc.) / Prepare for Final Finals Week
15 (5/4) Office Hours Finals Week

Homework

Homeworks will consist of solving a given coding problem online on HankerRank / LeetCode. Each student should take a screen recording of him/her solving the problem with https://screencast-o-matic.com/, or similar recording software. Each student should upload his/her recording to Google Drive and share a link to the video with their designated TA. Homework is due at 10:55AM every Friday (immediately prior to class). There will be a 20% penalty per day for late submissions. Grading information is below.

Effort

  • 30 points

Test Cases

  • 30 points for passing test cases

Timing

  • 30 points for solving it in the allotted amount of time
  • Incrementally decreasing credit for solving in up to twice the allotted amount of time
  • 0 credit for academic dishonesty or not solving in up to twice the allotted amount of time

Time and Space Complexity

  • 10 points for optimal solution
  • Incrementally decreasing credit for worse time and space complexities. Points vary per problem

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 Slack. Email should be used sparingly and not for class related questions (e.g., homework). Office hours are by appointment. Email or Slack message one of the TAs to set up a time to meet.

Instructor:

Dr. Tom Goldstein - tomg@cs.umd.edu

TA(s):

Maria McCulley - mmccull2@umd.edu

Sandra Sandeep - sandrasandeep01@gmail.com

Andi Hopkins - andihop@terpmail.umd.edu

Excused Absence and Academic Accommodations

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

As an addition to the regular University policy, everyone is entitled to one free unexcused absence.

Late Policy

Students should arrive no more than ten minutes after 11AM in order to receive full credit for class participation.

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 http://www.shc.umd.edu.

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.