Course Syllabus

Welcome to SHAPE Session 2, Machine Learning & Artificial Intelligence

(Note: This page is under development)

AI systems like ChatGPT and other language models are becoming a big part of our everyday lives. But how do these systems actually work? What can they do, and where do they fall short?

This crash course in machine learning and AI will introduce you to the basics. You’ll start with simpler machine learning models, learn about neural networks, and then explore how advanced models like ChatGPT are built and trained.

Who is this course for? Students who are comfortable with basic coding in any language (like Java or Python).

Teaching Staff

Instructor: Daniel Bauer
Summer Student Leaders: Batu Yeltekin, Michael Del Toro, Leo Zubarev

Location: Botwinick Lab - Mudd 1224

Course Resources

  • All materials will be made available on Courseworks in the Files section and linked on this page.
  • Software:
    • You will use the Codio platform, an online programming environment for education. Click here for instructions on getting started with Codio. 
  • Prior experience survey (please complete)

What you Will Learn

  • A quick review of Python
  • Important math concepts: basic calculus and working with vectors and matrices
  • How to handle different types of data, including tables, images, and text
  • How neural networks work and learn from data
  • How to classify images using Convolutional Neural Networks
  • How to represent words in a way that computers understand
  • How transformers (a type of ML model) work
  • The basics of models like GPT
  • How pretraining and fine-tuning make these models smarter
  • How to interact with language models using prompts and API calls

Class Format: Each day, we’ll have short lectures and work on real hands-on projects in small groups.

A typical day:

Time Session
9:00 AM Check-in
9:15 AM Morning session (workshops, speakers, or project time)
10:15
AM
Professor-led class and lab time 
12:15 PM Lunch Break
1:30 PM Afternoon check-in
1:45
PM
Professor-led class and project time (SSLs available, Professor Bauer available until 3pm)
4:00 PM Elective or Community Hour
5:00 PM Dismissal

The following schedule is tentative and subject to change: 

Date Topic/Materials Exercises/Projects
Mon 7/28

Welcome and Introduction / Course overview. 

Python review if necessary.

Codio setup

Game playing warmup challenge

Tue 7/29

Introduction to Supervised Machine Learning

 

Loading and exploring a tabular dataset with pandas and matplotlib

Training a classifier with scikit-learn

Wed 7/30

Biological and artificial neurons. Linear models and the Perceptron algorithm. 

Perceptron by hand.

Implement the Perceptron algorithm and run it on a linearly classifiable tabular dataset. Visualize the separation boundary.

Thu 7/31

Vectors and matrices in numpy.

Vector and matrix multiplication.

 

 

vector, matrix, numpy exercises. Working with images in numpy / matplotlib.

 

Fri 8/1

Neural Network basics (forward activation only). Computation graphs and activation functions. 

 

 

Build a mini neural network from scratch in numpy (forward pass only). 

 

Train a neural network in pytorch (using autograd this time) on the penguin data. Write a suitable Dataset class and train() function. 

Mon 8/4

Calculus basics. Chain rule. Logistic regression. Backpropagation.

Extend the mini neural net from Thursday to include backprop.
Optionally, train your NN on the penguin data set. 

 

Tue 8/5

pyTorch.

 

Use pytorch to build a NN to classify the MNIST data (handwritten digit recognition)
Wed 8/6

- wrap-up Mon&Tue work (backpropagation implementation and MNIST classifier in pyTorch)
Thu 8/7 Convolutional Neural Networks and Image Classification

Build a CNN in pyTorch and train it on the CIFAR 10 and CIFAR 100 data. 



Fri 8/8

ResNet

Try ResNet on your own images.

Use chatGPT to write code for a simple web interface to upload and classify images (extension: classify live webcam images). 

 

 

Mon 8/11

Pretraining/Fine-tuning with ResNet

 

Fine-tune ResNet on the pet or food dataset. 

 

Tue 8/12 Neural Language Models and Embeddings project
Wed 8/13 project
Thu 8/14 Attention and Transformers project
Fri  8/15 Symposium project 

Project: 

Some ideas:

1) Creating a custom fine-tuned image classifier for a new domain (pet breeds, currency, sign language, ...). Turn it into an interactive webapp.

2) Creating a topic specific chat-bot.

3) Start with a publicly available dataset (e.g. NYC open data) and come up with an interesting ML problem involving that data.

Expectations

  1. Participate in class, work on problems and projects.
  2. Respectful interactions (you're all in the same boat!).
  3. Contribute to your team.
  4. Computer science and programming can be difficult in the beginning. Getting stuck is normal! Get help when you need it and don't get frustrated. Silly questions do not exist. Ask!
  5. Have fun and make friends.

Course Summary:

Date Details Due