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: A guided learning experience on Python using Jupyter notebooks as the interface. The focus is on data processin, but it covers many of the topics from DSC20.

  2. Codecademy: A guided course using their in-house UI for interaction. Lessons come with explanations as well as practice. The best part is that it features breakpoints in the course where mini-projects are introduced. Covers most of the major topics from DSC20.

  3. CodingBat: A (short) set of practice questions used to introduce python ideas. For beginners who have already seen a bit of code before, this is a good primer for the beginning of DSC20.

  4. Coursera: A guided course using their in-house UI for interaction, taught by University of Michigan. Lessons come with explanations as well as practice. Covers most of the major topics from DSC20.

  5. FreeCodeCamp: A guided course using their in-house UI for interaction. Lessons come with explanations as well as practice. It features mini-projects throughout the lessons. Covers most of the major topics from DSC20.

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.

Here are some 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 TypeSolutionWalkthrough
Winter 2018FinalSolution 
Spring 2018Midterm 1Solution 
Spring 2018FinalSolution 
Fall 2019Midterm 2Solution 
Fall 2021Midterm 2SolutionWalkthrough
Fall 2019FinalSolution You can edit it and add a few missing solutions. 
Fall 2020Midterm 1 (Online)Solution 
Winter 2021Midterm 1 (Online)Solution 
Fall 2021Midterm 1SolutionWalkthrough
Fall 2023Midterm 1SolutionWalkthrough
-Practice Final- 
Fall 2023Practice FinalSolutionWalkthrough

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!