Welcome to the CS 11 interview preparation track! To pass this course, you must do the following: \begincenter | Week | Topic | Link | |:----:|----------------------------------|:--------------:| | 1 | Sorting, Ordering, and Searching | HW 1 | | 2 | Resume Review Week | HW 2 | | 3 | Maps | HW 3 | | 4 | Recursion | HW 4 | | 5 | Recursive Backtracking | HW 5 | | 6 | Dynamic Programming | HW 6 | | 7 | Trees | HW 7 | | 8 | Graphs | HW 8 | | 9 | Data Structures | HW 9 | | 10 | TBD | HW 10 | \endcenter # Weekly Options Every week, we will offer a variety of options (listed below) for you to attempt. These will range from "normal" (do a set) to "really weird" (come up with your own idea). To pass the course, you must do at least one activity in at least __seven__ out of the ten weeks of the term. If you decide to do multiple activities in one week, that's great(!), but it will not earn you extra credit toward future weeks. ## (a) The Weekly Set We will release a weekly set with some "technical" and some "behavioral" questions. If you choose this option, you __may not spend more than 1.5 hours__ solving the questions. They are designed to mirror how much time you'd have to complete them in a real interview. If you attempt this option, but you cannot solve the problems, we recommend you do option (b) instead, as there is likely something you could learn by watching someone else solve the problem. \begincenter | Week | Topic | Link | |:----:|----------------------------------|:--------------:| | 1 | Sorting, Ordering, and Searching | [HW 1](https://grinch.caltech.edu/quiz/cs11#cs11-interviews-19fa-hw1) | | 2 | Maps | HW 2 | | 3 | Recursion | HW 3 | | 4 | Recursive Backtracking | HW 4 | | 5 | Dynamic Programming | HW 5 | | 6 | Trees | HW 6 | | 7 | Graphs | HW 7 | | 8 | Data Structures | HW 8 | | 9 | TBD | HW 9 | | 10 | TBD | HW 10 | \endcenter ## (b) Problem Review Session Every week, we will hold an hour long "problem review session" which goes over at least one solution to the technical problems on the set. __You must attempt the set for at least 30 minutes before attending! No exceptions!__ These sessions will involve actual active learning; you will not just be watching someone. \begincenter | Week | Topic | Location | |:----:|----------------------------------|:--------------:| | 1 | Sorting, Ordering, and Searching | TBD | | 2 | Maps | TBD | | 3 | Recursion | TBD | | 4 | Recursive Backtracking | TBD | | 5 | Dynamic Programming | TBD | | 6 | Trees | TBD | | 7 | Graphs | TBD | | 8 | Data Structures | TBD | | 9 | TBD | TBD | | 10 | TBD | TBD | \endcenter ## (c) Write a Tutorial One way to learn a new topic is to try to explain it to other please. For this option, you would write a blog post or tutorial about an algorithm or data structure __you do not already know__. You may not choose something like an `ArrayList`. Your tutorial must have some kind of code in it. It should be targeted at your fellow classmates, and we will link to it in the resources section of this website. ## (d) Career Counseling _You may only choose this option once._ The Caltech Career center offers counseling appointments which further discuss behavioral questions and you specifically. You can [Sign Up Here](http://career.caltech.edu/about/requestappointment) and attend your appointment in this option. ## (e) Research Companies _You may only choose this option once._ When you're first trying to figure out where to interview, creating a list of companies to attempt to interview at can be a large undertaking. In this option, you can research companies and find a list of at least __ten__ companies you are interested in. You must also provide reasons why you are interested in each company. ## (f) Interview The whole point of this course is to get practice interviewing. There is no better way to do that than...actually interviewing. If you have a real interview some week of the quarter, you are excused from the homework. Each student may request a mock interview with me **once** during the term; I make no guarantees that I will be able to accommodate all requests, but I'll do my best. ## (g) Choose Your Own If you have another idea of something you would like to do to prepare for interviews that is __active__, go ahead and ask me to approve it. The key thing for this option is that it must be __active__; you may not, for example, read a chapter of Cracking the Coding Interview. The reason for this policy is that passive practice rarely leads to increased performance. # Resources We do not yet have many extra resources. If you would like us to add something, please contact Adam. We will be using [a course piazza](https://piazza.com/caltech/fall2019/cs11) for all contact and questions. # Grading This course is intended to give you experience dealing with "interview-like" conditions. As a result, all sets will have strict time limits and every option will be __nocollab__. That said, we intend for anyone who puts in effort to pass the course. As mentioned above, you may choose up to three weeks in which you do not choose any of the activities.