Jump to: Software • Hardware • Python Self-Study • Jupyter Self-Study • Math Self-Study • Related Courses • Machine Learning at Tufts
Software
For this course, we require programming assignments to be implemented in Python 3.12 using a custom environment we call cs135_26s_env. Students are responsible for maintaining their own Python software environment on their personal computer.
You can see the spec for the packages required by our official class environment here: cs135_26s_env
Using a consistent language and set of packages allows us to talk about implementation details in class and makes grading solutions more consistent and time-efficient.
For detailed instructions, see the [Python Setup Instructions page]
For students running Windows, we recommend setting up Windows Subsystem for Linux
- Follow instructions for Installing WSL
- VSCode also has deep integration with WSL.
IDEs
Students may wish to install an IDE (integrated development environment) like PyCharm or VSCode. You are welcome to, but there is no strict need to do this. We wouldn't necessarily recommend this unless you are already comfortable with the IDE you select.
In fall '23, a past TA made step-by-step instructions for Setting up PyCharm for CS 135.
Students should be aware that TAs may not be prepared to debug issues with IDEs they are not familiar with.
Hardware
We expect students will have regular access to a personal laptop computer.
Your computer should be capable of running Python processes as well as running a web browser that displays graphics visually. You'll need to be able to run several Jupyter notebooks in your browser simultaneously (using either local or remote cloud compute via Google Colab). This should be doable for most modern laptops/desktops (anything from around 2016 or later).
You should bring this computer to class. In most classes we hope to have some demo component that you can try on your machine.
If you have concerns about accessing sufficient resources (internet connection quality, lack of access to a computer), please contact instructors via Piazza ASAP. We care about inclusion and we want you to be successful. We can work together with Tufts staff to help you get resources you need. Don't hesitate; please try to work through problems early.
Python Self-Study Resources
To gain some fundamental Python skills (assuming you know other programming), we recommend:
Jupyter Resources
Quick Start for Jupyter lab notebooks
In most class meetings, you'll want to work through a provided 'lab' notebook.
For each notebook, we make two kinds of links available on the Schedule pages:
- click the
[colab]link and run the notebook in the cloud via Google Colab - click the notebook link to find the
.ipynbfile in our course repository on Github, download this file, and run it on your machine
Running Jupyter locally
We'll assume you've already setup the cs135_26s_env.
To download a specific .ipynb file, go to its GitHub page, click the button labeled "…" (dot dot dot) in upper right corner, and select "download".
Next, suppose you've saved MyNotebook.ipynb to a suitable directory. To launch the notebook, here's what you'll do in your Terminal (Linux/Mac) or Command Prompt (Windows):
# Before we can start, be sure your current directory contains `MyNotebook.ipynb`
# First, activate our course conda environment
$ conda activate cs135_26s_env
# Second, launch the notebook server and direct it to open `MyNotebook.ipynb`
$ jupyter notebook MyNotebook.ipynb
# Should automatically open a browser and take you to an interactive notebook session. Or click `localhost:8888` link below.
You can also open and edit your .ipynb file using VSCode.
For more help on launching a notebook, see Jupyter notebook documentation
Jupyter Self-Study Resources
If you don't know much about Jupyter, the resources below might be helpful
How to download a Jupyter notebook and open it in your browser:
Mini Course: 'Play with Data in Jupyter' by Lorena Barba
Math Self-Study Resources
This course requires solid background on several math topics. Here are some useful resources to help you catch up if you are missing some of the pre-requisite knowledge. Please contribute new resources by starting a topic on the class discussion forum.
Vector calculus
Vector calc concepts are essential to succeed in CS 135. Very important to be familiar.
Key Concepts:
- functions of a single variable and derivatives
- functions of multiple variables, partial derivatives, and gradients
- vector-valued functions of multiple variables, and gradients
- chain rule of derivatives
- how to find the maxima or minima of single-variable functions
Possible resources:
- 'Ch. 5: Vector calculus' of Math for Machine Learning textbook: https://mml-book.github.io/book/mml-book.pdf#page=145
- Essentially, the material in Sec. 5.1, 5.2, and 5.3 (up to but not including the Jacobian) should be somewhat familiar
Linear algebra
Basic matrix/vector concepts are essential to succeed in CS 135. Very important to be familiar.
Key concepts:
- matrix multiplication
- matrix inversion
- 'least-squares' closed-form solution to linear regression
- Understand how to translate these operations into code
Possible resources:
- Goodfellow et al's chapter on Linear Algebra: http://www.deeplearningbook.org/contents/linear_algebra.html
- Immersive Linear Algebra: http://immersivemath.com/ila/
- Essence of Linear Algebra videos: https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
- 'Computational Linear Algebra for Coders' course by fast.ai: https://github.com/fastai/numerical-linear-algebra/blob/master/README.md
Probability
Some probability ideas are helpful but not essential to succeed in CS 135.
Key concepts:
- Sum rule and product rule of probability
- Bayes theorem and associated algebra
- Continuous and discrete random variables
Possible resources:
- Probability review notes from Prof. David Blei (Columbia Univ.): http://www.cs.columbia.edu/~blei/fogm/2016F/doc/probability_review.pdf
Related Courses
Other Recommended Intro ML Courses
CS 291a at UC-Irvine, taught by Prof. Alex Ihler
Video lectures here: https://www.youtube.com/playlist?list=PLaXDtXvwY-oDvedS3f4HW0b4KxqpJ_imw
Past Offerings of Intro ML (CS 135) at Tufts
- 2025 fall, with Prof. Harry Bendekgey
- 2025 spring, with Prof. Mike Hughes
- 2024 fall, with Prof. Chris Magnano
- 2024 spring, with Prof. Liping Liu
- 2023 fall, with Prof. Mike Hughes
- 2020 fall, with Prof. Mike Hughes
- 2020 spring, with Prof. Marty Allen
- 2019 fall, with Prof. Marty Allen
- 2019 spring, with Prof. Mike Hughes
- 2018 fall, with Prof. Liping Liu
- 2018 spring, with Prof. Liping Liu
Statistical Pattern Recognition (CS 136) at Tufts
- 2024 spring, taught by Prof. Mike Hughes
- 2023 spring, taught by Prof. Mike Hughes
- 2020 spring, taught by Prof. Mike Hughes
- 2019 spring, taught by Rishit Sheth, Ph.D.
Deep Neural Networks (CS 139) at Tufts
Reinforcement Learning (CS 138) at Tufts
Bayesian Deep Learning (CS 150/152) at Tufts
- 2022 fall, taught by Prof. Mike Hughes
- 2019 fall, taught by Prof. Mike Hughes
- 2018 fall, taught by Prof. Mike Hughes
ML Research at Tufts
For machine learning research activity at Tufts, see the ML Research Group Website:
For a recent listing of ML courses, see:
For current ML research opportunities for students, see: