The schedule for the sessions:
- 11 September: Introduction to whiteboarding: philosophy, examples and rubrics. Seven steps for acing a tech interview.
- 18 September: Step 1: Listen. Identify inputs and outputs for technical questions.
- 25 September: Step 2: Clarify the question. Ask questions to figure out what type of input and design examples that demonstrate representative (and hard) cases (clarify, repeat, example).
- 2 October: No meeting-- research travel.
- 8 October: No meeting-- no classes scheduled.
- 16 October: No meeting-- classes follow Monday schedule.
- 23 October: No meeting-- outreach to middle school (piloting science meets computing curriculum.
- 30 October: No meeting-- research travel.
- 6 November: Step 3: Functional Signature. Translating inputs & outputs into functional notation. Choosing names. Top-down design. Writing pseudocode.
- 13 November: Step 4: Brute Force Solution & Performance. How long does it take? Running-time overview.
- 20 November: Step 5: Refining answers: Bottlenecks, Unused Information, Duplicate Work. What are the hard cases? What information was given in the problem but not used? Are you repeating code?
- 27 November: Step 6: Implement Solution. Translating your pseudocode into code.
- 4 December: Step 7: Test. What inputs would test your code? How do you choose?
- 11 December: Putting It Altogether: whiteboarding practice problems.