Update: The syllabus is ready!
Please read it first and only refer to this webpage if you have additional questions not covered in the syllabus.
Email me at sotoudeh@stanford.edu with any additional questions or clarifications!
If none of those exceptions are sufficient for your situation, you're welcome to email me to discuss privately, but chances are it means you'll have to wait to take 161 another quarter.
Note: In prior years I've been quite flexible with in-person attendance, but I truly believe the class will better serve the learning objectives with a collaborative, in-person atmosphere rather than as a "resource dump + exams" for people to study asynchronously.
Plus, regular in-person attendance means we can have more frequent low-stakes evaluations rather than a small number of high-stakes exams.
For those reasons, this summer there will be an expectation that in-person letter-graded students attend the lectures in-person.
You should have a 109 understanding of probability (you should be able to determine the probabilities of certain outcomes given a description of an experiment, and feel comfortable manipulating probabilities and expected values), 103 understanding of proofwriting and logical reasoning (be able to write proofs about numbers that follow the 'proofwriting checklist'), and 106B understanding of imperative programming (what is a pointer, what is a while loop, be able to answer 'what does this code do,' etc.).
Generally speaking, no: the class will have no actual programming component (though in a few cases you may be expected to write short snippets of pseudocode).
You are expected to know how to read Python-like pseudocode and understand fundamental data structures from 106B (e.g., pointer manipulations and linked lists in C/C++).
The summer offering is not "the Fall/Winter/Spring quarter minus lectures X, Y, Z," nor is it "the Fall/Winter/Spring quarter plus lectures X, Y, Z."
Rather, it is based on complete different lecture notes, problem sets, etc.
Even the temporal structure of the class is quite different (three 1h45m lectures per week rather than two-to-three 1h20m ones, but over 8 weeks rather than 10).
Obviously, having designed the summer offering, I think summer 161 is the best intro to algorithms class you can take! But that's a biased take.
I think summer 161 tends to have a slightly heavier focus on analyzing algorithms (especially applying topics you've learned in 109 and 103) rather than designing them, and a heavier focus on algorithms for sorting and searching compared to graphs.