Link Search Menu Expand Document

Resources 📚

Resources will be added here as the quarter progresses.

Table of contents

  1. Extra Python Practices
  2. Text Editor
  3. Practice Exams

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:

  1. Software Carpentry
  2. Codecademy
  3. CodingBat

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!

QuarterExam TypeSolution
Winter 2018FinalSolution
Spring 2018Midterm 1Solution
Spring 2018FinalSolution
Fall 2019Midterm 2Solution
Fall 2019FinalSolution You can edit it and add a few missing solutions.
Fall 2020Midterm 1 (Online)Solution
Winter 2021Midterm 1 (Online)Solution
Fall 2021Midterm 1Solution
-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!