IAP Independent Activities Period
overview participate organize offerings calendar  
for-credit subjects non-credit activities by category non-credit activities by sponsor non-credit activities by date

IAP 2009 Activities by Sponsor

Student Information Processing Board

Advanced C
David Greenberg
Fri Jan 23, 05-07:00pm, 4-231

No enrollment limit, no advance sign up
Single session event
Prereq: basic familiarity with C

C, love it or hate it, is somewhere at the foundation of most software today. While some may call it a glorified assembler, C does provide many useful features while giving you the option to get close to the hardware and have precise control over everything your machine does. We'll learn how to make your C a lot less painful to write with features you thought were only in higher-level languages like LISP, and we'll also go over when you might want to get closer to the hardware and how to go about doing that with inline assembly and gcc-specific features.
Web: http://sipb.mit.edu/iap/#advc
Contact: David Greenberg, W20-557, x3-7788, sipb-iap-advancedc@mit.edu

An Introduction to Software Exploitation
Nathan Rittenhouse
Mon Jan 26, Tue Jan 27, Wed Jan 28, 02-04:30pm, 8-119

No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: At least a 6.004 knowledge of assembly, basic knowledge of C

Dive into the world of reverse engineering and software exploitation. Learn theory and practice for how to analyze and reverse engineer software for both understanding its internals and for gaining the ability to execute arbitrary code. This class will cover various vulnerabilities in software running on Windows, Linux, and Mac OSX.
Web: http://sipb.mit.edu/iap/#exploit
Contact: Nathan Rittenhouse, W20-557, x3-7788, sipb-iap-exploit@mit.edu

Being Productive with Emacs
Phil Sung
Wed Jan 7, 14, 06-07:00pm, 4-231

No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: none

Emacs is a remarkably powerful text editor. It can be customized extensively to automate common tasks and help you save time. Emacs is also a platform which ships with dozens of applications (including a mail client, a calendar, a debugger, among others), with many more available for download. We'll cover some of the notable features of Emacs, basic concepts and usage, and customizing and programming Emacs.
Web: http://stuff.mit.edu/iap/#emacs
Contact: Phil Sung, W20-557, x3-7788, sipb-iap-emacs@mit.edu

Building Filesystems with FUSE
Xavid Pretzer
Wed Jan 21, 05-07:00pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: Some programming experience.

FUSE is a library that allows you to easily create custom filesystems without needing to write any kernel code. FUSE has greatly lowered the barrier to writing custom filesystems, so whether you want to write a virtual filesystem to make information more easily accessed and modified or whether you actually want to store files in some cool new way, FUSE will have you on the ground and running in no time.

We'll go over the basics of FUSE, then break into exercises where you'll get to try your hand at using FUSE, with help available. Examples and starter code will be in Python, but basic concepts apply to using FUSE in any language.
Web: http://sipb.mit.edu/iap/#fuse
Contact: Xavid Pretzer, W20-557, x3-7788, sipb-iap-fuse@mit.edu

Caffeinated 6.001
Alex Vandiver, Ben Vandiver, Nelson Elhage, Zev Benjamin, Mike Phillips
Mon, Wed, Jan 5, 7, 12, 14, 21, 26, 28, 07-09:00pm, 32-044

Enrollment limited: first come, first served
Limited to 30 participants.
Participants requested to attend all sessions (non-series)
Prereq: some programming experience; high confusion threshold.

Zombie-like, 6.001 rises from the dead to threaten students again. Unlike a zombie, though, it's moving quite a bit faster than it did the first time. Like the original, don't walk into the class expecting that it will teach you scheme; instead, 6.001 attempts to teach thought patterns for computer science, and the structure and interpretation of computer programs. Weekly projects, many based on historic 6.001 projects, will be assigned.
Web: http://web.mit.edu/alexmv/6.001/
Contact: Caffeinated 6.001 Team, W20-557, x3-7788, 6.001-zombies@mit.edu
Cosponsor: Electrical Engineering and Computer Science

Caffeinated Crash Course in C
Geoffrey Thomas, Bayard Wenzel
Wed Jan 21, 03-06:00pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: Prior experience in a C-like language (C++, Java, Perl, etc)

C's influence is deeply pervasive in today's software systems, and in the many currently-popular programming languages derived from C. In fact, C plays a role somewhat similar to the one once played by assembly language: even if you don't do any actual day-to-day C programming, knowing C can be a huge help in better understanding the other systems and languages with which you are working.

This class will attempt to cover the entire C programming language in 3 hours, in the grand tradition of SIPB's IAP caffeinated crash courses. Prior programming experience, preferably in a C-like language (C++, Java, Perl, etc.) is very definitely assumed.
Web: http://stuff.mit.edu/iap/cccc
Contact: Geoffrey Thomas, W20-557, x3-7788, sipb-iap-cccc@mit.edu

Caffeinated Crash Course in C++
Geoffrey Thomas, Steve Levine
Wed Jan 14, 03-06:00pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: Prior experience in a C-like language (C, Java, Perl, etc)

A three-hour introduction to the C++ programming language. Syntax, data types, and control flow. Object basics. Polymorphism and templates. Dynamic memory management. Standard library. Useful tools.
Web: http://sipb.mit.edu/iap/#caffc++
Contact: Geoffrey Thomas, W20-557, x3-7788, sipb-iap-ccccpp@mit.edu

Caffeinated Crash Course in PHP
Steve Levine
Tue Jan 13, 07:30-10:30pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: Some programming experience; high confusion threshold.

Although PHP may not stand for "Programmed Hypertext Pwnage," it just may be that awesome. PHP is a server-side scripting language that is used on millions of websites around the world to dynamically generate websites. In other words, your PHP code generates the HTML that is displayed in your internet browser. This class will be a fast-paced introduction to programming in PHP that will teach you the concepts and uses of the language, as well as take you through several examples. Some topics to be covered: basic syntax, using PHP to generate websites, accessing MySQL databases, using cookies and sessions, security, PHP extensions such as cURL (for accessing outside websites) and GD (for making images), and more. Some basic programming experience and familiarity with HTML is highly encouraged.
Web: http://sipb-iap.scripts.mit.edu/2009/cccphp
Contact: Steve Levine, W20-557, x3-7788, sipb-iap-caffeinatedphp@mit.edu

Caffeinated Crash Course in Perl
Ken Takusagawa
Thu Jan 15, 07-10:00pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: Some programming experience; high confusion threshold.

Perl is the duct tape of the computing world—it has a light side, a dark side, and (if you're running Debian) it holds your operating system together. This class will teach you to choose the light side—that is, how to write simple, useful Perl scripts without having it turn into a gooey, sticky mess.
Web: http://www.mit.edu/sipb/IAP/#caffperl
Contact: Ken Takusagawa, W20-557, x3-7788, sipb-iap-caffeinatedperl@mit.edu

Caffeinated Crash Course in Ruby
Donald Guy
Wed Jan 7, 03-06:00pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: Some familiarity with a scripting language.

Ruby is a language that was designed to be "more powerful than Perl, and more object-oriented than Python"* It was designed taking some of the best ideas from Perl, Python, LISP, and Smalltalk to create a language "natural, not simple"* but, above all, it was designed to make programming with it an enjoyable experience.

In a quick 3 hour course I will take you through a nearly-complete tour of the Ruby language including such standbys as syntax, data structures, class creation, and control flow, along with the more unique concepts of Blocks, Mixins, Alias Chaining, and Duck Typing. If time allows, we will finish out the course showing off some of Ruby's meta-programming capabilities by creating a framework for customizable zephyrbots.

*: Yukihiro "Matz" Matsumoto, Ruby Language Creator and Chief Designer
Web: http://sipb.mit.edu/iap/#caffruby
Contact: Donald Guy, W20-557, x3-7788, sipb-iap-ruby@mit.edu

Extending BarnOwl
Nelson Elhage
Mon Jan 12, 03-05:00pm, 3-133

No enrollment limit, no advance sign up
Single session event
Prereq: Basic knowledge of Perl

BarnOwl (http://barnowl.mit.edu) is the most popular Zephyr client in use here at MIT. BarnOwl is designed to run fine with no configuration or customization, but it supports the use of perl as a powerful extension and customization language. I'll talk about building extension modules for BarnOwl, as well as some of the cool, lesser-known, features available in BarnOwl.
Web: http://www.mit.edu/sipb/IAP/#barnowl
Contact: Nelson Elhage, W20-557, x3-7788, sipb-iap-barnowl@mit.edu

Git Will Make Your Life Easier
Geoffrey Thomas
Tue Jan 20, 03-05:00pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: nontechnical computer literacy (Windows, Mac, or Linux).

Have you struggled with combining changes across a team of writers e-mailing edited documents back and forth? Or created dozens of "old", "old2", etc. copies of a file for yourself, and then forgot which is which? How do large software projects such as Firefox, Linux, and Athena deal with hundreds of developers and thousands of files? The answer is version control, a software technology that takes the hard work out of managing changes to files. We'll look at Git, a young decentralized version control system that is quickly becoming the standard, and how it can help you manage your own documents, whether just for yourself or for your team.
Web: http://stuff.mit.edu/iap/2009/git
Contact: Geoffrey Thomas, W20-557, x3-7788, sipb-iap-git@mit.edu

Introduction to LaTeX
Jessica McKellar, Paul Baranay
Mon Jan 26, 05-07:00pm, 1-115

No enrollment limit, no advance sign up
Single session event
Prereq: None

Leave Word behind forever! LaTeX is the gold standard for document typesetting in academia, and in this single-session event we'll see how easy it is to make professional-looking papers and resumes, get you typesetting math like a pro, delve into macros, and finish with Beamer, the popular open source LaTeX analog to Powerpoint.

The room has Athena machines for in-class practice.
Web: http://stuff.mit.edu/iap/2009/latex/
Contact: Jessica McKellar, W20-557, x3-7788, sipb-iap-latex@mit.edu

Introduction to Web Application Security
Edward Yang
Thu Jan 8, 09-11:00pm, 56-114

No enrollment limit, no advance sign up
Single session event

When it comes to a cracker and a web application, a security vulnerability is not a question of "if" but "when." They can attack you with anything: XSS, CSRF, clickjacking, HTTP header splitting, remote file inclusion, session fixation, etc. Learn how to identify and how to defend against all of these attacks, with a special emphasis on the theory behind validating, escaping and sanitizing data in a web context. Also on the agenda: standards compliance and valid Unicode as risk mitigation factors.

Most examples will be in PHP, but techniques are applicable to any language.
Web: http://sipb.mit.edu/iap/#security
Contact: Edward Yang, W20-557, x3-7788, sipb-iap-security@mit.edu

Math Secrets for the Computer Scientist
Greg Price
Tue Jan 20, Thu Jan 22, Tue Jan 27, Thu Jan 29, 07:30-08:30pm, 56-114

No enrollment limit, no advance sign up
Participants welcome at individual sessions (series)
Prereq: None.

The computing world uses more math than you think. In this class we'll cover spectral analysis of graphs, linear programming, semidefinite programming for the only known attack on some NP-complete problems, how flipping a coin can be better than heads or tails, and why cryptography works (or does it?)
Web: http://www.mit.edu/sipb/IAP/#math
Contact: Greg Price, W20-557, x3-7788, sipb-iap-math@mit.edu

Packaging Software for Debian
Evan Broder, Greg Price
No enrollment limit, no advance sign up
Participants welcome at individual sessions (series)
Prereq: some shell scripting, building software

Everyone seems to be using Debian or Ubuntu these days, but building and changing packages using Debian's .deb system remains an obscure process. We'll demystify the process for you, showing you the most efficient way to build Debian packages, as well as Debathena's system for making configuration packages. Each class will consist of a demonstration portion followed by a series of simple packaging exercises for you to practice building your own packages. Experienced Debathena developers will be present to answer questions. Bring your laptop!
Web: http://sipb.mit.edu/iap/#debian
Contact: Evan Broder, W20-557, x3-7788, sipb-iap-debpackaging@mit.edu

Packaging Basics
Evan Broder, Greg Price
Learn about the most efficient way to build Debian packages, including the Common Debian Build System.
Tue Jan 6, 01:30-04:00pm, 8-119

Config Packages
Evan Broder, Greg Price
Learn abou Debathena's system for making configuration packages.
Thu Jan 8, 01:30-04:00pm, 8-119

Programming LaTeX
Nelson Elhage
Thu Jan 22, 03:30-05:30pm, 4-237

No enrollment limit, no advance sign up
Single session event
Prereq: Basic knowledge of how to write documents in LaTeX

You probably use LaTeX to format problem sets or lab reports or papers for your classes, but did you realize that it's also (not) so secretly actually a full-fledged programming language, too? I'll show you some basics about programming in LaTeX, including how to define your own document classes and packages, and the basic programming tools you'll probably find yourself needing.
Web: http://www.mit.edu/sipb/IAP/#proglatex
Contact: Nelson Elhage, W20-557, x3-7788, sipb-iap-latex-programming@mit.edu

Programming in Java
Tony Valderrama
Tue Jan 6, Thu Jan 8, Tue Jan 13, Thu Jan 15, 04-06:00pm, 1-115

No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: Some programming experience

Wake up and smell the coffee! Find out why this platform-independent
object-oriented lanuage from Sun Microsystems (now an open-source
project) is one of the fastest growing languages in the modern
computing industry.

Session Topics:

  1. Introduction to Java (syntax, variables, methods)
  2. Object Orientation (inheritance, abstraction, etc.)
  3. Cross-platform GUIs
  4. Advanced Java Programming

Web: http://sipb.mit.edu/iap/#java
Contact: Tony Valderrama, W20-557, x3-7788, sipb-iap-java@mit.edu

Programming in Perl
Quentin Smith
Tue Jan 20, Thu Jan 22, Tue Jan 27, Thu Jan 29, 05:30-07:30pm, 56-114

No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: some programming experience.

Introduction to programming in Perl: syntax, flow control, I/O, regular expressions, data structures, objects, and some CGI programming.

NOTE: It is highly recommended that participants attend all four sessions, as different material will be covered in each session. The last session will probably be a question and answer session and will cover participant-requested material.
Web: http://stuff.mit.edu/iap/perl
Contact: Quentin Smith, W20-557, x3-7788, sipb-iap-perl@mit.edu

Programming in PostScript
Bayard Wenzel
Tue Jan 6, Thu Jan 8, Tue Jan 13, Thu Jan 15, 06-07:00pm, 56-114

No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: Familiarity with programming.

PostScript is the standard document formatting language for printers, and the forerunner to PDF, the Portable Document Format. This class will concentrate both on PostScript as a programming language, and PostScript's approach to rendering graphics. Additional topics will include the structure of PDF documents, font encoding, and font rendering. This class should provide a working understanding of stack machine programming, vector graphics, typography, and portable document encoding.
Web: http://www.mit.edu/sipb/IAP/#postscript
Contact: Bayard Wenzel, W20-557, x3-7788, sipb-iap-postscript@mit.edu

Programming in Python
Evan Broder
Tue Jan 13, Thu Jan 15, Tue Jan 20, Thu Jan 22, 09-11:00pm, 56-114

No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: Some programming experience; not much needed.

A general introduction to the Python programming language. This class will cover basic control flow structures, object-oriented development, and may also cover such topics as developing extensions or Python web development. Basic experience with programming in any language will make the class much more helpful; it is highly recommended.
Web: http://stuff.mit.edu/iap/#python
Contact: Evan Broder, W20-557, x3-7788, sipb-iap-python@mit.edu

The Internet Shouldn't Work
Jessica McKellar, Jessica Hamrick
Wed Jan 28, 05-07:00pm, 4-237

No enrollment limit, no advance sign up
Single session event
Prereq: None

Come learn about what actually goes on in our favorite series of tubes! We'll discuss the internet's structure, routing, and protocols, with demos and hands-on experiments. No prerequisites presumed!

After this you'll know why you get spam with only garbage characters and nothing to sell, how Comcast can tell that you're pirating all of Season 2 of Arrested Development off Bittorrent, why all this trust lets you read your friends' AIM conversations or hijack YouTube, and more.

Bring a laptop so you can play with some of the utilities we'll be using.
Contact: Jessica McKellar, W20-557, x3-7788, sipb-iap-internet@mit.edu

UNIX is Your Friend
Jessica McKellar, Andrew Farrell
Wed Jan 21, 06-07:00pm, 4-237

No enrollment limit, no advance sign up
Single session event
Prereq: None

UNIX is your Friend!
For anyone needing a push to get comfortable on Athena or looking to expand one's UNIX toolbox. We'll rapid-fire demo and give usecases for as many utilities as we can fit into the hour and send you home with a comprehensive cheat sheet with even more tools to keep you learning.

Topics include:
-what is taking up all of my CPU cycles? (ps, top, kill)
-getting files from place to place (tar, gzip, scp, wget)
-why can't I find anything?? (grep, find, vi/emacs tags)
-simple but useful shell scripts
-screen

Bring a laptop.
Web: http://stuff.mit.edu/iap/2009/unix/
Contact: Jessica McKellar, W20-557, x3-7788, sipb-iap-unix@mit.edu


MIT  
Massachusetts Institute of Technology
Home | Overview | Participate | Organize | Offerings | Calendar | Search
Comments and questions to: iap-www@mit.edu Academic Resource Center, Room 7-104, 617-253-1668
Last update: 30 September 2004