Course Topics
This course aims to develop problem-solving skills that are required for programming interviews at most of major IT companies. The course is for discussing the fundamental algorithms and communication skills, rather than focusing on specific companies or job positions. Course topics include the overview of programming interviews, complexity analysis, data structures, algorithms, which are followed by 1-3 example problems week.
Class Sessions
1 Credit Hour
Hybrid-mode (subject to change after Phase 2)
Full support on remote learning
11:00 am - 11:50 am Friday (Location TBD)
Textbook
The textbook is optional, but the lecture will loosely follow the materials of the following book:
Cracking the Coding Interview: 189 Programming Questions and Solutions 6th Edition
by Gayle Laakmann McDowell
Grading
Homework: 50%
Mock interview: 40%
Class participation: 10%
Homework
Each student will complete 1 to 3 interview questions every week. The students can submit the report in high-level pseudocode, not full scripts that are copy-and-pasted. The students can freely choose any programming language (e.g., Pencil-and-paper, C/C++, Python, Ruby, Java, Go...). Each report will be evaluated based on in-depth thinking on the problem, not based on the optimality of the solution. The students are not recommended to discuss the problem with other students, which will not be beneficial at real programming interviews.
Mock Interviews
Around the mid-term and final exam periods, the class will hold mock interview sessions between students. Each student will participate in two mock interviews: one session as an interviewer and another session as an interviewee. Each session will be evaluated based on the shared solution document and self-evaluations.