Interactive Computing with iPython

Jakob Weisblat
Date: Tue Jan 17 07:00pm – 09:00pm in 4-231

iPython (or "Jupyter notebook") is a very nice interactive python environment that makes it really easy to do interactive computation and data visualization. We'll demo a few useful features, and then we'll build a thing together to interactively compute a thing.

Attendance: No sign-up required
Prereqs: Familiarity with python; matplotlib a plus.
Contact: sipb-iap17-ipython at mit dot edu

Current issues in SSL and TLS

Rajiv Aaron Manglani
Date: Wed Jan 18 05:00pm – 07:00pm in 4-237

SSL and TLS are the protocols which provide the foundation for securing internet traffic. We will explore current topics and issues facing the industry including SHA-1 to SHA-2 certificate migrations, ECDSA, post-quantum cryptography, Certificate Transparency, OCSP and Stapling, HTTP/2, free DV certificates from Let's Encrypt, and TLS 1.3.

Details at

Attendance: Please RSVP at the contact email.
Prereqs: Familiarity with HTTP and TLS.
Contact: sipb-iap17-ssl-tls at mit dot edu

ROS Introduction for Beginners

Baian Chen
Date: Thu Jan 19 05:00pm – 07:00pm in 1-115

ROS (robot operating system) is super cool and useful for robotics and computer vision but seldom taught in class in most of the cases. In this class, we will go through the basic (but powerful) idea of ROS system, have a taste on how it works, and write a simple ROS system in python.

Attendance: No sign-up required
Prereqs: Familiarity with Python
Contact: sipb-iap17-ros at mit dot edu

Reverse Engineering Software

James Koppel
Date: Fri Jan 20 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: sipb-iap17-reverse-engineering at mit dot edu

Practical and Useful Computer Security

Jakob Weisblat
Date: Tue Jan 24 07:30pm – 09:00pm in 4-237

We hear it over and over again:

"Make your passwords at least 20 characters!"

"Use a letter and a number and 5 special characters in all your passwords!"

"Change your password every 3 days!"

"Never write down your passwords!"

"Always run antivirus software!"

We'll examine some common cybersecurity claims, determining which are worth following and which are possibly miscalibrated. Then we'll look at some low-effort solutions you can use to increase the security of your computing environment while not decreasing convenience. In particular, we will cover password managers, 2-factor authentication, and the importance of keeping software up-to-date.

This talk is aimed at those who are computer-literate but not security experts - if your goal is an impenetrably secure computing environment, this talk is not for you; it aims to help you spend a small amount of time wisely in order to reduce the probability of spending a lot of time in the future dealing with a compromise.

Attendance: No sign-up required
Prereqs: None
Contact: sipb-iap17-practical-security at mit dot edu

Intro to Version Control using Git & GitHub

Tristan Naumann
Date: Tue Jan 31 08:00pm – 10:00pm in 4-237

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: sipb-iap17-version-control at mit dot edu

Web Programming in Python with Django

Chelsea Voss
Date: Wed Feb 01 07:00pm – 08:00pm in 4-237

If you've learned Python, it's a simple jump from there to being able to create websites! Come learn how to get started on web programming from the very basics; we'll assume zero knowledge of anything but Python. We'll cover how to set up a Django website using both MIT Scripts and Heroku; feel free to bring your laptop and follow along with setup yourself as I demonstrate.

Attendance: No sign-up required
Prereqs: Familiarity with Python
Contact: sipb-iap17-django at mit dot edu

Applied Probabilistic Programming & Bayesian Machine Learning

Max Shen, Carles Boix, Alvin Shi
  • Tue Jan 10 05:00pm – 06:30pm in 4-237
  • Thu Jan 12 05:00pm – 06:30pm in 4-237
  • Tue Jan 17 05:00pm – 06:30pm in 4-237
  • Thu Jan 19 05:00pm – 06:30pm in 4-237
  • Tue Jan 24 05:00pm – 06:30pm in 4-237
  • Thu Jan 26 05:00pm – 06:30pm in 4-237
  • Tue Jan 31 05:00pm – 06:30pm in 4-237
  • Thu Feb 02 05:00pm – 06:30pm in 4-237

Recent innovations in computational methods for Bayesian inference, captured in probabilistic programming languages such as Stan and Edward, have made the power of fully Bayesian inference accessible beyond expert statisticians. These methods particularly shine in machine learning settings with small-to-medium size datasets and complex prior/domain knowledge.

This class aims to provide a hands-on introduction to applying probabilistic programming to real-world problems. The ideas behind probabilistic programming will be covered, including automatic differentiation, variational inference, Markov Chain Monte Carlo (MCMC), and other inference methods. The engineering of models will also be emphasized through exercises on debugging, model specification, reparameterization, addressing identifiability issues, and model efficiency.

Coding exercises and sample datasets will be provided. Students are also encouraged to bring in their own datasets. All course details are subject to change.

* Prior experience with Python or R recommended, as well as some experience with statistics. The class is geared towards interested undergraduates and graduate students.

* In addition, the first annual Stan Convention is occurring on January 21st at Columbia University ($50 student registration) and some of us will be attending.

* Please register here:

Attendance: Participants must attend all sessions; please RSVP
Prereqs: Basic Python or R, statistics
Contact: Max Shen, maxwshen at mit dot edu

A Whirlwind Tour of ML

Manasi Vartak, Maggie Makar
  • Tue Jan 24 03:00pm – 05:00pm in 36-156
  • Wed Jan 25 03:00pm – 05:00pm in 36-156
  • Thu Jan 26 03:00pm – 05:00pm in 36-156
  • Fri Jan 27 03:00pm – 05:00pm in 36-156

Machine learning (ML) is clearly the coolest kid on the block right now, and everyone wants to be friends with ML! However, ML as a field has so many areas and sub-areas, and so much jargon that it is hard for a beginner (or even a grad student in ML) to place all of the problems and techniques in context.

This 4-part class will provide brief overviews of diverse ML areas and discussions comparing and contrasting techniques. Each session will consist of MIT grad students giving 1/2 hr talks on particular topics and a discussion putting those topics in context.

Tentative topics per session are:

- Overview of supervised and unsupervised learning

- Inference

- Bayesian Methods

- Neural Nets

Class is geared towards advanced undergraduate and graduate students. It assumes a basic familiarity with ML.

Please sign up here by 1/10:

Attendance: Participants must attend all sessions; please RSVP
Prereqs: Basic ML, Python, basic calculus
Contact: Manasi Vartak, mvartak at mit dot edu

Hacking a Software Interview -- Mastering Programming Interview Questions

Ron Chaney
  • Wed Jan 18 05:30pm – 07:00pm in 32-155
  • Thu Jan 19 05:30pm – 07:00pm in 32-155

Ever wanted to work at a company like Akamai, Facebook, Google, or TripAdvisor? There's just one thing standing in your way: the interview. Whether you're a beginning programmer or a seasoned expert, this class can help you prepare for a technical interview. The class will focus on computer science topics that frequently come up in programming interviews. We will cover topics like time complexity, hash tables, binary search trees, and some other things you might learn in 6.046. Most of the time will be spent teaching participants how to formulate responses to technical questions during an interview. Real life examples will be used. If you have any interest in working at a computer science company, make sure you don't miss this class!

Attendance: Participants welcome at individual sessions
Prereqs: Basic ML, Python, basic calculus
Contact: Jaime Perkins, jperkins at akamai dot com