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.


Cosponsored by Course 6

What else happens during IAP?

See the official IAP activities index.

I have a question about {x}

Contact sipb-iap at mit dot edu.

Crash Course for 6.006 Intro to Algorithms in 6+0+0+6 Hours (6.s092)

Ivan Ferreira Antunes Filho, Justine Jang, Alap Sahoo, Courtney Guo, Preksha Naik, Stef Ren, Rose Wang
  • Wed Jan 09 07:00pm – 09:00pm in 1-190
  • Mon Jan 14 07:00pm – 09:00pm in 1-190
  • Wed Jan 16 07:00pm – 09:00pm in 1-190
  • Wed Jan 23 07:00pm – 09:00pm in 1-190
  • Mon Jan 28 07:00pm – 09:00pm in 1-190
  • Wed Jan 30 07:00pm – 09:00pm in 1-190

An overview of topics covered in 6.006, taught by experienced TAs, geared toward people who have some proofs knowledge, and want to prepare to take the class in the Spring, get some experience for algorithm questions in interviews, or who are curious about learning what all the hype is around algorithms. We will be covering topics like sort, data structures, hashing, graph search, and dynamic programming.

Attendance: Pre-register on WebSIS and attend first class; listeners allowed, space permitting.
Prereqs: Some knowledge of proofs
Contact: 6 dot s092-staff at mit dot edu

Hacker Tools

Anish Athalye, Jon Gjengset, Jose Javier Gonzalez Ortiz
  • Tue Jan 15 03:30pm – 05:30pm in 32-124
  • Thu Jan 17 03:30pm – 05:30pm in 32-124
  • Tue Jan 22 03:30pm – 05:30pm in 32-124
  • Thu Jan 24 03:30pm – 05:30pm in 32-124
  • Tue Jan 29 03:30pm – 05:30pm in 32-124
  • Thu Jan 31 03:30pm – 05:30pm in 32-124

Learn to make the most of the tools that hackers have been using for decades.

As hackers, we spend a lot of time on our computers, so it makes sense to make that experience as fluid and frictionless as possible. In this class, we'll help you learn how to make the most of tools that productive programmers use.

We'll show you how to navigate the command line, use a powerful text editor, use version control efficiently, automate mundane tasks, manage packages and software, configure your desktop environment, and more.

More details available here

Attendance: Please RSVP here
Prereqs: None
Contact: hacker-tools at mit dot edu

Reverse-Engineering Software

James Koppel, Michael Specter, Joe Leong
Date: Mon Jan 14 06:00pm – 08: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: Some basic knowledge of systems programming, or prior exposure to Assembly, will be helpful. We will be giving an assembly crash course at the beginning.
Contact: James Koppel, jkoppel at mit dot edu

Reverse Engineering in Mobile Applications

Chris Varenhorst
Date: Mon Jan 28 06:00pm – 07:00pm in 3-133

Come see how easy it is to reverse engineer the "private" APIs used by your favorite mobile apps to talk to their backend, and learn about how to mitigate common flaws. The main approach discussed will be man in the middling running applications to observe their traffic and the various tricks needed bypass things like certificate pinning. Some older real world examples will be shared. While no actual secrets will be revealed, you will learn why there's really no such thing as a private API and why that's okay.

Attendance: No sign-up required
Prereqs: None
Contact: Chris Varenhorst, varenc at mit dot edu

An Example-Driven Introduction to Rust

Srinivas Kaza, Matthew Pfeiffer
  • Mon Jan 14 05:30pm – 07:30pm in 32-124
  • Wed Jan 16 05:30pm – 07:30pm in 32-124
  • Mon Jan 21 05:30pm – 07:30pm in 32-124
  • Wed Jan 23 05:30pm – 07:30pm in 32-124
  • Mon Jan 28 05:30pm – 07:30pm in 32-124
  • Wed Jan 30 05:30pm – 07:30pm in 32-124

Safety, performance, and ergonomics -- you can have it all!

Rust is a memory-managed language that is safer and more convenient than C or C++. The compiler prevents many classes of bugs from ever compiling into code -- buffer overruns, memory leaks, double frees, and data races to make a few. Beyond the technical aspects of the language, the Rust community is rapidly growing, energetic, and welcoming to newcomers.

In this crash course, we'll cover the semantics of Rust -- ownership/borrowing, lifetimes, traits, generics, and concurrency. We'll also go over some common anti-patterns from other languages, and try to refactor them into cleaner Rust code. Regardless of whether you opt to use Rust in the future, we hope that you'll be able to apply some of the design principles of Rust to code written in other languages.

Attendance: No sign-up required
Prereqs: None
Contact: Srinivas Kaza, kaza at mit dot edu