Resources


Jump to: SoftwareHardwarePython Self-StudyJupyter Self-StudyMath Self-StudyRelated CoursesMachine 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

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 .ipynb file 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:

Linear algebra

Basic matrix/vector concepts are essential to succeed in CS 135. Very important to be familiar.

Key concepts:

Possible resources:

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:

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

Statistical Pattern Recognition (CS 136) at Tufts

Deep Neural Networks (CS 139) at Tufts

Reinforcement Learning (CS 138) at Tufts

Bayesian Deep Learning (CS 150/152) at Tufts

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: