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. |
Game playing warmup challenge |
Tue 7/29 |
Introduction to Supervised Machine Learning
|
Loading and exploring a tabular dataset with pandas and matplotlib |
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.
|
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
- Participate in class, work on problems and projects.
- Respectful interactions (you're all in the same boat!).
- Contribute to your team.
- 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!
- Have fun and make friends.
Course Summary:
Date | Details | Due |
---|---|---|