Mock Interview Guide
Overview
Mock interviews are worth 10% of your course grade and provide an opportunity to practice technical problem-solving and communication skills in a supportive environment. You will complete one 20-minute mock interview with a TA or ULA during Weeks 3-10. You must book your slot by end of Week 2.
Timeline:
- By end of Week 2: Submit booking preferences form (link will be posted on course website)
- Weeks 5-10: Complete your scheduled 20-minute mock interview
Important: Book early! Slots fill up quickly with 200+ students. No make-ups without prior arrangement. Missing your scheduled interview = 0%.
What to Expect
Your mock interview will consist of:
- Introduction & Behavioral Warm-Up (2 minutes) - Brief introduction and discussion of a technical challenge you’ve solved
- Whiteboard Problem (5 minutes) - Plan your approach to a LeetCode problem on a whiteboard or document
- Coding Implementation (13 minutes) - Implement your solution in C++ on LeetCode
- Structured Feedback (5 minutes) - Receive feedback on your performance and ask questions
How to Prepare
- Practice LeetCode problems - Complete the assigned problem sets (lp01-lp05)
- Think out loud - Get comfortable explaining your thought process while solving problems
- Review data structures - Know key concepts: linked lists, trees, hash tables, stacks, queues, graphs
- Prepare your introduction - Have a brief introduction ready and think of a technical challenge you’ve solved
- Practice whiteboarding - Draw out your approach before coding
What is Expected During the Interview
1. Introduction & Behavioral (2 minutes)
- Introduce yourself professionally
- Discuss a recent technical challenge you solved and your approach
- Be clear, concise, and connect your experience to computer science
2. Whiteboard Problem (5 minutes)
You will be asked to:
- Restate the problem in your own words
- Ask clarifying questions about inputs, outputs, constraints, and edge cases
- Draw diagrams to visualize your approach
- Create a test case and walk through how it would work
- Discuss your approach before coding (consider trade-offs, time/space complexity)
- Think out loud - keep the interviewer informed of your reasoning
Key Points:
- Don’t jump straight to coding
- Consider multiple approaches
- Identify edge cases
- Use diagrams or pseudocode to organize your thoughts
3. Coding Implementation (13 minutes)
- Translate your whiteboard approach into working C++ code on LeetCode
- Continue thinking out loud - narrate what you’re doing and why
- Use the test case you created to verify your solution
- Write clean, readable code with meaningful variable names
- Handle edge cases you identified during whiteboarding
- Be open to hints and feedback from the interviewer
4. Feedback & Discussion (5 minutes)
- Receive constructive feedback on your performance
- Discuss strengths and areas for improvement
- Ask questions about the problem or your approach
- Consider how you might optimize or improve your solution
Grading Rubric (10% of course grade)
Your performance will be evaluated across three sections. The focus is on process and communication, not just correctness.
Section 1: Behavioral/Introduction
| Criteria | Exceeds Expectations (3) | Meets Expectations (2) | Needs Improvement (1) |
|---|---|---|---|
| Clarity & Relevance | Clear, concise, and relevant; connects experience to CS | Mostly clear and relevant; some connection to CS | Unclear, off-topic, or rambling |
| Confidence & Professionalism | Speaks confidently, maintains eye contact, positive tone | Some hesitancy, but generally professional | Hesitant, unprofessional, or negative tone |
| Reflection & Growth | Shares a specific challenge or learning moment | Shares general experience | No reflection or learning discussed |
Section 2: Whiteboarding (Problem Understanding & Approach)
| Criteria | Exceeds Expectations (3) | Meets Expectations (2) | Needs Improvement (1) |
|---|---|---|---|
| Problem Clarification | Restates problem, asks clarifying questions, identifies edge cases, works through examples | Restates problem, some clarifications, some edge cases | Misses clarifications, ignores edge cases |
| Approach & Planning | Explains and justifies logical, efficient approach; considers alternatives; clear progression | Explains reasonable approach; some jumps in reasoning | Jumps to code, unclear or inefficient plan |
| Communication | Clearly explains thought process throughout; states goals and subgoals | Explains most steps; addresses some reasoning | Silent or unclear explanations |
| Use of Diagrams/Pseudocode | Uses diagrams or pseudocode effectively | Some use of diagrams/pseudocode | No diagrams or pseudocode |
Section 3: Coding (Implementation & Testing)
| Criteria | Exceeds Expectations (3) | Meets Expectations (2) | Needs Improvement (1) |
|---|---|---|---|
| Code Correctness | Code is correct, handles all edge cases | Mostly correct, minor issues | Major errors, incomplete |
| Code Structure & Style | Clean, readable code; good variable names; proper indentation | Some indentation/readability issues; acceptable variable names | Messy, hard to read, poor conventions |
| Adaptability | Responds well to hints, adapts approach if needed | Accepts some feedback | Resists feedback, stuck on errors |
| Communication | Narrates coding process clearly | Explains some steps | Silent or unclear during coding |
| Comfort with C++ | Familiar with lecture concepts; minimal syntax help needed | Needed some syntax/error assistance | Unfamiliar with C++; relied heavily on external help |
Grade Calculation
Your final grade out of 10% will be based on your overall performance across all criteria:
- 9-10%: Excellent performance - exceeds expectations in most criteria; strong problem-solving and communication
- 7-8%: Good performance - meets or exceeds expectations in most criteria; solid effort and communication
- 5-6%: Satisfactory performance - meets expectations in some criteria; shows understanding and effort
- 3-4%: Minimal performance - needs improvement in most areas; shows up and tries but struggles
- 0-2%: Unsatisfactory - no-show, refuses to participate, or extreme lack of engagement
Tips for Success
Do:
- ✓ Think out loud - explain your reasoning as you work
- ✓ Ask clarifying questions about the problem
- ✓ Start with a plan before coding
- ✓ Use diagrams and examples to visualize your approach
- ✓ Test your solution with the examples you created
- ✓ Be open to hints and feedback
- ✓ Stay positive and engaged even if you get stuck
Don’t:
- ✗ Jump straight to coding without planning
- ✗ Stay silent while working
- ✗ Ignore hints or feedback from the interviewer
- ✗ Give up when you encounter difficulties
- ✗ Write messy or unreadable code
- ✗ Forget to consider edge cases
Frequently Asked Questions
Q: What if I can’t solve the problem completely? A: That’s okay! You’re evaluated on your approach and communication, not just correctness. Partial solutions with good reasoning can still earn a high grade.
Q: Can I use notes or references during the interview? A: No, the interview simulates a real technical interview where you won’t have access to external resources. You should rely on what you’ve learned in class.
Q: What difficulty level will the problem be? A: The problem will be a medium-difficulty LeetCode problem aligned with recent lecture topics. Your interviewer will select an unsolved problem from your LeetCode profile.
Q: Can I reschedule my interview? A: You may reschedule at least 48 hours before your interview time if an open slot is available. Last-minute cancellations may not be accommodated.
Q: Will I know the problem beforehand? A: No, you’ll receive the problem during the interview via Canvas message. This simulates a real interview experience.
Q: What if I get very nervous? A: That’s normal! Remember this is a learning experience in a supportive environment. Take deep breaths, think out loud, and do your best. Your interviewer wants you to succeed.