One section will be hosted on Zoom. All lectures will be in person with Zoom livestream. You will find the Zoom links for the lecture and sections on the course Canvas page. Please make sure that you sign into Zoom with your Stanford credentials. Please keep in mind that the lectures and the online section will be recorded and the recordings will be available on Canvas.
Ed will be used for Q&A. You may ask questions about the class material, homework/section clarifications, logistics, etc., but you may not post details about your own solutions publicly on Ed (public posting of your solution or code will be considered an honor code violation). If you have a specific question that might reveal aspects of your solution, please make a private post instead. We also encourage you to answer your peers’ questions as well. You may also use Ed to privately contact the course staff regarding personal concerns.
Students who may need academic accommodations based on the impact of a disability must initiate the request with the Office of Accessible Education (OAE) and notify us at least 7 days (ONE week) prior to the exams. It is the student’s responsibility to reach out to the course staff regarding their accommodations on exams and assignments in advance. Please email OAE forms to firstname.lastname@example.org or post privately on Ed.
We strongly recommend typesetting solutions to homework sets in LaTeX. LaTeX is the standard for typesetting CS/math/etc papers, and will likely come in handy outside CS161.
- Guides to using LaTeX: An introduction to LaTeX can be found here. Other guides can be found at Wikibooks and NYU.
- Online Environments: If you don’t want to install LaTeX, Overleaf is an online environment which compiles previews of your LaTeX documents as you type. Stanford students get a free OverLeaf Pro account.
- LaTeX Editors: There are many LaTeX editors which allow you to use GUI to edit your LaTeX. LyX is a free one.
- Finding symbols: Detexify lets you draw the symbol that you are looking for and get LaTeX code. A static guide is here.
Guidelines: One of the big skills you’ll be developing in CS161 is how to communicate technical material clearly. To that end, we expect homework sets in CS161 to be clear, and easily human-readable. Think of them like memos you might write to a colleague. Better still, think of them as memos that you might write for a team of colleagues, who may be working quickly and also who have control over your grade.
Your homeworks should be typed and clearly written with complete sentences and well-organized logic, and should definitely not be your first draft.
When we ask for pseudocode, we are expecting pseudocode that is clear enough that a CS106B student (and certainly the grader) can understand what your algorithm is doing, and could implement it in a language of their choice, without thinking too hard. It is good practice to include an English description of what your pseudocode is doing, to help out the reader. See the example homework before for good and bad examples of pseudocode.
Example HW and LaTeX solution set: Here is an example of a LaTeX’d solution set for a fake “Homework 0” (authored by Mary Wootters). These solutions include examples of pseudocode in a few different environments, as well as an example of how to include images and figures. Note: although this example problem set has code-based exercises, we will not be using iPython notebooks this quarter.
- Look at the example above for style advice.
- Try to put yourself in the position of the reader. If you hadn’t just been thinking about this problem for two hours, would your answer make sense to you?
- The homework questions will always end with a text block explaining what sort of answer we expect. Read this text block carefully.
- Start the homework early.
- Try to “finish” the homework early, step away from it for a day, and then come back to it and read it over again. Chances are, you’ll find some way to write what you’ve written more clearly.
- If you get stuck, then ask for help from the course staff: come to office hours prepared to explain what you have tried, and why you are stuck.
All the following textbooks are optional. They are all excellent for supplementing lectures with details.
- Introduction to Algorithms (3rd Ed), Cormen, Leiserson, Rivest, & Stein (available online!)
- Algorithms, Dasgupta, Papadimitriou, & Vazirani
- Algorithm Design, Kleinberg & Tardos
- Algorithms Illuminated, Roughgarden (with great videos!)
All students should retain receipts for books and other course-related expenses, as these may be qualified educational expenses for tax purposes. If you are an undergraduate receiving financial aid, you may be eligible for additional financial aid for required books and course materials if these expenses exceed the aid amount in your award letter. For more information, review your award letter or visit the Student Budget website.
The teaching staff is here for you. Please do not hesitate to reach out to the teaching team with any concerns you may have. If you are experiencing personal, academic, or relationship problems and would like to talk to someone with training and experience, reach out to the Counseling and Psychological Services (CAPS) on campus. CAPS is the university’s counseling center dedicated to student mental health and wellbeing. Phone assessment appointments can be made at CAPS by calling 650-723-3785, or by accessing the VadenPatient portal through the Vaden website.