Resources 📚
Resources will be added here as the quarter progresses.
Table of contents
Extra Python Practices
If you are new to programming, it is highly encouraged to practice as much as you can. Here are some recourses that you will be able to get additional practices from:
Text Editor
Unlike DSC 10 where you use Jupyter Notebook doing all of the coding, we highly discouraged using a Notebook to code problems in this course. You are expected to use your local terminal to run all doctests. Therefore, a text editor is a needed tool for you to code. The list of some is given below. We have seen some students using other text editors such as VS Code or PyCharm. Those text editors sometimes imported unneccesary packages when students are unawared of them, which failed the Gradescope Autograder and resulted in a 0 on some assignments.
However, we cannot force you to use atom. So here are some other text editor/IDE choices:
Sublime: A favorite text editor of hackers, famous for its multiple cursors. A good, general-purpose choice. Marina's text editor of choice. Highly recommended for this class!
VSCode: Microsoft Visual Studio Code. Currently very popular, and can also be used to edit both notebooks and .py files. Suraj's text editor of choice.
PyCharm (IntelliJ): Those who feel at home coding Java. Can only work locally.
Nano: available on most unix commandlines (e.g. DataHub Terminal). If you use this for more than changing a word or two, you'll hate your life.
(neo)vim: lightweight, productive text-editor that might be the most efficient way to edit text, if you can ever learn how to use it. Beware opening vim, as you may never figure out how to quit (literally). Justin Eldridge's text editor of choice.
Emacs: A text editor for those who prefer a life of endless toil. Endlessly customizable, it promises everything, but you’re never good enough to deliver. Its keyboard shortcuts are guaranteed to give you carpal tunnel. Aaron Fraenkel's text editor of choice.
Practice Exams
Disclaimer: This course keeps changing. Therefore, if you see some of the topics on the practice exams that we did not cover, please just simply skip them. You will be provided a document on Piazza that lists out all topics will be covered on your exam. You may find more recent exams to be more representative of what we cover now.
If you have noticed, we did not provide solutions to some of the practice exams because we expect you to be able to master the materials after lectures and discussions. If you ever want to check your answer, please post them on Piazza and your classmates should be able to answer. If not, we will answer!
Quarter | Exam Type | Solution |
---|---|---|
Winter 2018 | Final | Solution |
Spring 2018 | Midterm 1 | Solution |
Spring 2018 | Final | Solution |
Fall 2019 | Midterm 2 | Solution |
Fall 2019 | Final | Solution You can edit it and add a few missing solutions. |
Fall 2020 | Midterm 1 (Online) | Solution |
Winter 2021 | Midterm 1 (Online) | Solution |
Fall 2021 | Midterm 1 | Solution |
- | Practice Final | - |
Some of the exams above have been categorized by topics and assignments, see this Google Document.
There are also exams from UC Berkeley that serve as additional resources if you are interested in. Visit CS 61A Spring 2023 and scroll down to the Past Exams section for a handful of practice problems.
If you find another helpful resource, let us know and we can link it here!