## Additional Resources

Below are some resources that you may find useful for CS88. Some of the resources are from CS 61A, as the two courses have quite a bit of overlap. However, keep in mind that there is some CS61A material that will not be covered in CS88.

## Past Finals

For your reference, here is a table of past finals to study! Also, check out this extra Reverse-Environment-Diagram practice courtesy of CS61A!

Additionally, here is the Fall 2021 Final reference sheet.

Name Blank Exam Solutions Professor(s) Walkthrough Video Notes
Spring 2024 Link Link Michael Ball
Fall 2023 Link Link Michael Ball Link Thanks CSM for the walkthroughs!
Spring 2023 Link Link Michael Ball Link Thanks CSM for the walkthroughs! Note there are some typos:
• For Q2 (c), none of the answer options are correct. The correct answer is -1.
• For Q12 (c), it should say `return 4 * squared_experience(n // 2)`.
Fall 2022 Link Link Michael Ball Because of the strike this semester, this final is not representative of most final exams.
Spring 2022 Link Link Michael Ball Link Thanks CSM for the walkthroughs!
Fall 2021 Link Link Michael Ball Link Thanks CSM for the walkthroughs!
Spring 2021 Link Link Michael Ball & Gerald Friedland
Fall 2020 Link Link Michael Ball
Spring 2020 Link Link Michael Ball Formatting may be off since the PDF was generated by examtool
Fall 2019 Link Link Michael Ball Link Note there are some typos:
• Q1 video walkthrough: `they(cant(stop, all(of, us)))` should error, not print `SASUKEEE` twice.
• Q5 solutions: last line, `helper(n // 10, n % 10)` should be `helper(num // 10, num % 10)`.
• Q5 video walkthrough: At 5:10, the correct answer is not `elif num % 10 <= prev`, it should be `if prev > n % 10` (which matches the solution PDF).
• Q7: The doctests at the beginning of the question should say "Yum, I ate 3 pieces of chocolate" instead of "Yum, I ate 3 pieces of milk chocolate", and "Oh no! There is no more chocolate" instead of "Oh no! There is no more milk chocolate".
Spring 2019 Link Link Gerald Friedland Link
Fall 2018 Link Link David Culler Link
Spring 2018 Link Link Gerald Friedland
Spring 2018 Mock Link Link Gerald Friedland
Spring 2016 Link David Culler

## Past Midterms

For your reference, here is a table of past midterms to study! Additionally, here is the Fall 2021 Midterm reference sheet.

Name Blank Exam Solutions Professor(s) Walkthrough Video Notes
Spring 2024 Link Link Michael Ball
Fall 2023 Link Link Michael Ball Link Thanks CSM for the Walkthroughs! Please note some typos in the exam and walkthroughs below.
• This exam had many clarifications during the exam, which you can view here.
• 1(a): In the video walkthrough, the narrator writes the indices of the outermost list as 0, 1, 2, 4 in purple. However, it should be 0, 1, 2, 3.
• 2(e): In the video walkthrough around 14:10, the narrator says the return value of the `huh` frame is a list like this: `[lambda, lambda, [lambda]]`. However, it should be: `[lambda, lambda, lambda]`.
• 2(f): Similar to 2(e), in the video walkthrough around 20:00, the narrator says the return value of the `huh` frame is a list like this: `[lambda, lambda, [lambda, lambda]]`. However, it should be: `[lambda, lambda, lambda, lambda]`.
• 4(d): The solution is distorted on the PDF. Here is the full solution: The code errors and does not run. The call to the `dot_prod` on line 6 passes arguments improperly; the arguments must be curried. In other words, they must be passed in like this: `dot_prod([2, 3, 2, 1, 4])([10, 20, 30, 40, 50])`.
• 5(e): The solution should say `chars.items()` not `chars.keys()`
Spring 2023 Link Link Michael Ball Link Thanks CSM for the Walkthroughs! Please note some typos in the exam below.
• Q10(a): `curr_field` and `bool(curr_field)` are both acceptable answers
• Q10(c): The correct answers are `curr_field[0] == 'cobble'` and `'cobble' in curr_field`
• Q11(c): In the problem description, it should say `self.seal_compliments` instead of `self.compliments`
Fall 2022 Link Link Michael Ball Link Thanks CSM for the Walkthroughs!
Spring 2022 Link Link Michael Ball Link Q7a is part of the Closet ADT, so you do not need to worry about abstraction barrier violations
Fall 2021 Link Link Michael Ball Link Thanks CSM for the Walkthroughs!
Spring 2021 Link Link Michael Ball & Gerald Friedland Link Thanks CSM for the Walkthroughs!
Fall 2020 Link Link Michael Ball
Spring 2020 Link Link Michael Ball
Fall 2019 Link Link Michael Ball Link Q1: fun(max, 61, 88) evaluates to 61. The correct calls to alt_fib(6) is 25 not 26.
Fall 2019 CSM Mock Midterm Link Link CSM
Spring 2019 Link Link Gerald Friedland Link
Fall 2018 Link Link David Culler Link
Spring 2018 Link Link Gerald Friedland Link
Spring 2016 Retake Link Link David Culler Link

## Setting up your computer for CS88

• Windows:

• Setting Up and Using Python (video)
• Connecting from home (video)
• Connecting from home (pdf)
• Mac OSX:

• Part 1: Setting up Python (video)
• Part 2: Setting up Emacs (video)
• Part 3: SSH and the Terminal (video)
• Connecting from home (pdf)

## Learning in CS88

Enrolled/Waitlisted students have access to the screencasts through CalCentral (CalCentral.berkeley.edu -> My Classes -> CS88 (Right hand side) or through bCourses via a tab called Course Captures.