What is this?

SIPB, the computing club at MIT, sponsors a series of classes over IAP. Visit our homepage.

Calendar Version

These events are available as a Google Calendar along with the SIPB calendar.


What else happens during IAP?

See the official IAP activities index.

I have a question about {x}

Contact sipb-iap at mit dot edu.

Introduction to Functional Programming in Haskell

Austin Garrett
Date: Tue Jan 16 05:00pm – 07:00pm in 1-115

Pure functions, immutable data, and recursion oh my! Maybe you've heard people talk about functional programming, but what does it all mean?

This class aims to give a general overview of what functional programming is all about, through an introduction to Haskell. Haskell is a pure, strongly-typed functional programming language that has enjoyed a large amount of interest in the past few years. In this talk, I'll try to show you how fun functional programming in Haskell can be, and ultimately how functional languages can help to make your code safer from bugs, more understandable, and simpler (yes, simpler!)

Attendance: No sign-up required
Prereqs: Familiarity with programming is helpful
Contact: agarret7 at mit dot edu

Intro to Version Control using Git and GitHub

Tristan Naumann
Date: Wed Jan 24 05:00pm – 07:00pm in 1-150

Version control systems are essential for the organization of multi-developer projects. Likewise, familiarity with such tools can greatly simplify even small projects. This short course will discuss version control as a problem and focus on how it can be managed with Git. Further, we will discuss how to share code using GitHub and some common workflows.

Git is a free and open source distributed version control system designed to handle everything from small to very large projects. GitHub is a web-based hosting service for projects using Git which has quickly become one of the most popular code repository sites for open source projects.

Attendance: No sign-up required
Prereqs: Basic shell familiarity is helpful
Contact: tjn at mit dot edu

How to Read a Patent

Lucy Lubashev
Date: Wed Jan 17 06:00pm – 07:30pm in 1-135

Have you seen mentions of patents and inventions and tried to read a patent, only to find it unreadable gobbledygook? Are you an inventor and want to know how to proofread a patent application on your invention? Do you need to look through patents for technology valuation? Are you just curious about patent and other IP-related questions and current events? Then come to this class, and you'll learn how to read patents, depending on what your reason for reading them is (No, don't start with the Abstract!), and you'll have a chance to ask your questions to a patent attorney with more than 15 years of experience. Note: this class will not involve reviewing inventions to analyze whether they are ready for patenting.

Attendance: No sign-up required
Prereqs: None
Contact: lyudmila at mit dot edu

Reverse-Engineering Software

James Koppel, Rahul Sridhar
Date: Thu Jan 18 05:00pm – 07:00pm in 1-115

Is something on your computer hiding something from you? Is it refusing to run unless you do something? Do you want to know exactly what someone else's software is doing? Or perhaps you even want to "open" up some closed-source software and make it do something else. This course will cover the basics of reverse-engineering binaries, as well as some of the ideas of binary modification.

Attendance: No sign-up required
Prereqs: Familiarity with C and assembly very helpful
Contact: jkoppel at mit dot edu

The Mathematics of Deep Learning

Anish Athalye
Date: Thu Jan 18 05:00pm – 09:00pm in 3-270

Learn the key ideas that make deep learning work.

This class focuses on teaching the mathematical ideas that make deep learning tractable and teaching how to think about deep representations and neural network function approximation.

As we introduce the mathematics, we'll work through implementing simple neural networks and training algorithms from scratch in NumPy. While teaching higher-level ideas, we'll switch to using TensorFlow's high-level interface for programming more sophisticated neural networks without having to think about computing derivatives manually. Finally, we'll introduce cutting-edge ideas from deep learning research, and try to replicate some of the latest results ourselves.

More details available here.

Attendance: Please RSVP here.
Prereqs: Multivariable calculus required (be comfortable with partial derivatives and the chain rule), and linear algebra recommended. Some familiarity with Python, NumPy, and TensorFlow recommended. Bring your laptop with Python, NumPy, TensorFlow, and Jupyter Notebook installed.
Contact: aathalye at mit dot edu

Causal Inference & Deep Learning

Max Shen
  • Tue Jan 16 05:00pm – 06:30pm in 4-231
  • Wed Jan 17 05:00pm – 06:30pm in 4-231
  • Thu Jan 18 05:00pm – 06:30pm in 4-231
  • Fri Jan 19 05:00pm – 06:30pm in 4-231

Our class will explore the intersection between causal inference and deep learning by walking through several recent papers. We aim to highlight several successful ways that deep learning has been used to make headway into important causal questions.

Attendance: No sign-up required
Prereqs: None
Contact: maxwshen at mit dot edu

Game Design and Development 101

Julian Hernandez
  • Tue Jan 16 05:00pm – 07:00pm in 3-333
  • Wed Jan 17 05:00pm – 07:00pm in 3-333
  • Thu Jan 18 05:00pm – 07:00pm in 3-333

Learn the basics of the artistic and computer sciency side of game design! We'll learn about what makes games fun, how to make decent collision code, the best tools for your sound effects, and how to work in a game dev team without going insane. By the end, you'll have made your own game and be ready to get out there and bring your dreams to life! We'll use GameMaker Studio 2 in the class: it's simple enough that anyone without programming experience can get the hang of it, and it's versatile enough that it's the IDE used for Undertale, Hotline Miami, Spelunky, Hyper Light Drifter, and more!

Attendance: No sign-up required
Prereqs: None
Contact: gmfk07 at mit dot edu

Bytes and Code: Python Disassembly

Sharon Lin
Date: Fri Jan 19 05:00pm – 06:00pm in 3-133

This class will go over the the foundations of understanding Python bytecode and disassembling functions. For anyone interested in understanding how the CPython interpreter compiles source and executes instructions, this is your opportunity to learn more about the Python dataflow and compiler optimizations!

Attendance: Please RSVP at the contact email
Prereqs: Introductory knowledge of python recommended
Contact: sharonl at mit dot edu