Coding Interviews
Passing the course
Check the rubrics page to make sure you understand how the grades are computed.
There are several requirements and assessment instruments, so remember to always check your grades and tasks in the dashboard.
Instructor: Maciel Calebe Vidal [macielcv@insper.edu.br]
Classes:
- Monday: 15:45-17:45
- Wednesday: 15:45-17:45
Office Hours:
- Wednesday: 09:45-11:15 (Remote - Teams)
Definitions
We will use the following definitions throughout the course:
- Interviewee: We chose not to refer to them as the candidate because in our case the person is not applying to anything, except for passing the course.
- Interviewer: errrr... the person who knows (or at least should know) the answer to the question and that will take notes during the interview.
- Shadow interviewer: the person who doesn't necessarily knows the answer and will only observe the interview. This person takes notes and doesn't interact with the interviewee.
Learning goals
This course has 3 main learning goals and 1 secondary learning goal.
- I. Design and implement an efficient technical solution for typical coding interview problems;
- II. Describe the problem-solving process;
- III. Identify the computational complexity of the solution;
- Extra. Code quality.
Assessment instruments
We will use the following assessment instruments:
- Coding practice (CP): new problem sets (~4 problems) will be available monthly. The solutions must be submitted in this system to be considered valid. The grade of late submissions is limited to 5.0. After the deadline, the system only accepts a single submission.
- Pre-interview (PI): each student studies the problem assigned to them before the class and uses it to interview one colleague during the class. The pre-interview material consists of the implementation of the solution and identification of its time and space complexities.
- Mock interviews (MI): the MI will occur mostly in class using the problem studied in the pre-interview. After every interview, both students must fill a feedback form for their colleague (either the interviewer or the interviewee). The form answers will be used as the official count of interviews performed by the student.
- Final interviews (FI): in the last part of the semester, students will pick a problem to study and interview their colleagues.
- Algorithm analysis tests (AT): in the ATs, the student will be required to identify the computational complexity of a set of algorithms.
- Mandatory assignments (MA): in the mandatory assignments the student will practice important concepts related to coding interviews.
Conditions to pass the course
The following conditions must be fulfilled to pass the course:
- Submit at least 80% of the coding practices (CPs);
- Achieve FI greater than or equal to 5 (final interviews - FIs);
- Achieve AT greater than or equal to 5 (algorithm analysis tests - ATs);
- Achieve Essential Average (EA) greater than o equal to 5;
- Achieve mean greater than or equal to 4.5 in MA and learning goals I, II, and III.
Weights
The following partial grades will be considered for the final grade:
- CP - Coding practice: mean of all CP grades. Each CP grade is computed as $\frac{\text{# passing tests}}{\text{# total tests}} \cdot 10$. The lowest grade is ignored.
- PI1 - Pre-interview 1: mean of all PI code grades. Each PI code grade is computed as $\frac{\text{# passing tests}}{\text{# total tests}} \cdot 10$. The lowest grade is ignored.
-
PI2 - Pre-interview 2: mean of the PI complexity grades. Each complexity submission (time and space) receives one of the following grades:
- 0: wrong complexity;
- 3: wrong complexity, but the answer is close;
- 5: correct complexity;
The complexity grade of a PI is computed as the sum of its time and space complexity grades. The lowest grade is ignored.
-
MI1 - Mock interview 1: mean of the problem-solving grades of both the MIs and FIs in which the student was the interviewee. The problem-solving grade of an interview is given by the mean of the problem-solving grades from all interviewers (in case of multiple interviewers). Instructors may change the grades from a MI if they consider it unfair. The lowest grade is ignored.
- MI2 - Mock interview 2: mean of the communication grades of both the MIs and FIs in which the student was the interviewee. The communication grade of an interview is given by the mean of the communication grades from all interviewers (in case of multiple interviewers). Instructors may change the grades from a MI if they consider it unfair. The lowest grade is ignored.
- MI3 - Mock interview 3: mean of the code quality grades of both the MIs and FIs in which the student was the interviewee. The code quality grade of an interview is given by the mean of the communication grades from all interviewers (in case of multiple interviewers). Instructors may change the grades from a MI if they consider it unfair. The lowest grade is ignored.
- FI - Final interviews: minimum between the grades for the number of interviews and the average between the pre-interview material and the quality of the report.
- AT - Algorithm analysis test: maximum between all AT grades.
- MA - Mandatory assignment: mean of all MA grades.
The following weights will be used to compute the grades for each learning goal:
| Goal | CP | PI1 | PI2 | MI1 | MI2 | MI3 | FI | AT |
|---|---|---|---|---|---|---|---|---|
| I | 0.7 | 0.2 | 0.1 | |||||
| II | 0.7 | 0.3 | ||||||
| III | 0.2 | 0.1 | 0.7 | |||||
| EXTRA | 1 |
The following weights will be used to compute the Essential Average (EA):
$$EA = 0.3 \cdot I + 0.3 \cdot II + 0.2 \cdot III + 0.2 \cdot MA$$
To encourage students to practice solving more coding interview problems, there is an extra grade based on the amount of problems solved at LeetCode (LC):
$$LC = \min\left(10.0, \frac{\text{# problems solved}}{4}\right)$$
The Bonus Average (BA) is given by:
$$BA = 0.2 \cdot EXTRA + 0.8 \cdot LC$$
The Final Grade (FG) depends on the fulfillment of all conditions for passing the course. If any requirement is not satisfied, the FG is given by:
$$FG = \min(4.0, EA)$$
If all conditions are satisfied, the FG is given by:
$$FG = \min(10.0, EA + 0.1 \cdot BA)$$
I know, this may be a little overwhelming. That's why I created the course dashboard. With it, you can follow your progress, check deadlines, and make sure you are not forgetting anything related to this course. As always, it may contain bugs. Please, let me know if you find any.