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 2012 Activities by Sponsor

Student Information Processing Board

A Tale of Two LISPs
Robert McIntyre, Duncan Townsend
No enrollment limit, no advance sign up
Participants welcome at individual sessions (series)
Prereq: The ability to appreciate true beauty

TL;DR: LISP is awesome. We will convince you why. If you want to learn what LISP is all about, then this is the class for you! We will tell you why LISP _really_ is the language you want to program in. LISP is a functional programming language with a syntax that easily lends itself to manipulating code as data. It is also one of the oldest programming languages still in widespread use (preceded only by FORTRAN). The first class will cover the history of LISP from John McCarthy's original S-expressions, through Lisp Machine Lisp, Common Lisp, Scheme, and Clojure. You will see several REPL sessions with historic LISPs, including a working Symbolics 3630 Lisp Machine (new in 1986). You will also see sessions with more modern LISPs: Common Lisp, Dr. Racket, elisp, Clojure, and Scheme. The second class will cover one of the newest additions to the LISP family, Clojure. Clojure is "LISP reloaded" and designed to run on the Java Virtual Machine and leverage all of the libraries accessible from Java. It makes concurrent programming on today's multi-core processors easier by offering Software Transactional Memory, multi-threaded higher order functions like pmap, futures, and atomic data. We'll develop a small web application (the Dice of Doom game from Land of Lisp by Conrad Barski, MD) using Clojure to demonstrate these concepts.
Contact: Robert L McIntyre, sipb-iap-lisp@mit.edu
Cosponsor: Electrical Engineering and Computer Science

History of LISP
Robert McIntyre, Duncan Townsend
We will cover the history of LISP from John McCarthy, through Lisp Machine Lisp, Common Lisp, Scheme, and Clojure. You will see several REPL sessions with historic LISPs, including a working Symbolics 3630 Lisp Machine (new in 1986). You will also see sessions with more modern LISPs: Common Lisp, Dr. Racket, elisp, Clojure, and Scheme. We will discuss the differences between them.
Tue Jan 17, 07pm-09:00am, 4-237

Clojure
Robert McIntyre, Duncan Townsend
Clojure runs on the JVM and can access all the Java libraries. It makes concurrent programming easier by offering Software Transactional Memory, multi-threaded higher order functions like pmap, futures, and atomic data.
By using structure-sharing for all of its primitives it, also lets you use immutable data structures efficiently. We'll develop a small web app (Dice of Doom by Conrad Barski) to demonstrate this.
Thu Jan 19, 07-09:00pm, 4-237

Advanced C
David Greenberg, Ivan Sergeev
Mon Jan 30, 07-09:30pm, 4-231

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

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, we'll also go over when you might want to get closer to the hardware, and how to go about using those gcc-specific features.
Contact: sipb-iap-advc@mit.ed
Cosponsor: Electrical Engineering and Computer Science

Building Blocks for Building Large Scale Analytics Software Systems
Andrew Lamb, 6-2 02, MEng 03 Technical Staff, Vertica Systems
Tue Jan 24, 04-05:00pm, 32-124

No enrollment limit, no advance sign up
Single session event
Prereq: interest in large scale analytic software systems

In this talk, Andrew Lamb will talk about the choices made when building a large scale, commercial, distributed database system. Topics will include topology, disk layout, processing pipelines, and computation models. The talk will last for about 30 minutes followed by Q&A with the speaker. If there is sufficient interest, a group dinner will follow the talk.
Contact: Andrew Lamb, 6-2 02, MEng 03, aalamb@alum.mit.edu
Cosponsor: Electrical Engineering and Computer Science

Caffeinated Crash Course in PHP
Steve Levine
Mon Jan 23, 07:30-09:30pm, 4-231

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/2012/cccphp
Contact: Steve Levine, W20-557, x3-7788, sipb-iap-caffeinatedphp@mit.edu
Cosponsor: Electrical Engineering and Computer Science

Code Injection for Fun and Profit
Rian Hunter
Tue Jan 24, 07-09:00pm, 4-237

No enrollment limit, no advance sign up
Single session event

Ever since Dropbox has launched it has had deep integration with the Finder, Apple's file manager for Mac OS X. What most people don't know is that Apple doesn't actually provide any APIs for third-parties to integrate with the Finder. In this talk I'll explain the low-level code injection techniques & exploits used on Mac OS X to get the Finder to include Dropbox in the toolbar, sidebar, context menu, and over each file icon.
Web: http://sipb.mit.edu/iap
Contact: Rian Hunter, rian@dropbox.com
Cosponsor: Electrical Engineering and Computer Science

Debathena Training
Geoffrey Thomas
Wed Jan 18, 05-10:30pm, 4-237
Fri Jan 20, 06-10:30pm, 4-237

No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: athena/linux poweruser and have some programming experience

Interested in learning more about Debathena, or possibly becoming a Debathena developer? Attend this workshop to learn how to build Debian packages, work with the Debathena source repository, and get a behind-the-scenes look at how the Athena environment actually works. The workshop will be held across 2 afternoons, and attendees are strongly encouraged to attend both sessions. Attendees should have some familiarity with Linux and be comfortable with the command line. Knowledge of shell scripting is a plus, but not a requirement. No previous software development experience required. Please bring a laptop with an installation of Debathena, Ubuntu, or Debian. (Virtual machines are fine).

  • Session 1: Debian packaging from
  • Session 2: Athena Archetecture

    An athena hackathon will be held at SIPB the following Saturday.
    Web: http://sipb.mit.edu/iap/#debathena
    Contact: Geoffrey Thomas, sipb-iap-debathena@mit.edu
    Cosponsor: Information Services and Technology

  • Debian/Ubuntu Bug Squashing Party
    Luke Faraone
    Wed Jan 11, 02-11:00pm, W20-557

    No enrollment limit, no advance sign up

    From 2 pm until late evening, there will be a Debian/Ubuntu bug-squashing hackathon at the SIPB office.

    This is an opportunity both to get a little more familiar with the systems that many SIPB projects build on, and to give back to them and the larger free software community. We're currently in the beta process of Ubuntu's next release, as well as in the middle of the development cycle of Debian's. SIPB previously ran this sort of hackathon in August and October (as well as several times prior), and it's been popular and has gotten good work done. We're hoping to do that again.

    We'll have a couple of Debian and Ubuntu developers to help you with understanding how these projects work and to help get fixes into Debian and Ubuntu.

    If you're looking to get involved with a SIPB project that uses Debian or Ubuntu and particularly Debian packaging, I especially encourage you to come, as this will be a good chance to learn more about packaging and potentially to help these projects by getting some of our local fixes upstream. As with all SIPB hackathons, we'll be getting snacks and dinner. We hope to see you there!
    Contact: Luke Faraone, sipb-iap-bsp@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Emacs for Beginners
    Isaac Evans
    Mon Jan 16, 05-06:00pm, 1-115

    Single session event
    Prereq: Use of a text editor that is not Emacs

    Are you using IDLE, nano, pico, Notepad++, Word, or (shudder) Notepad to edit documents and programs? Cast away your clumsy editor and begin your quest to master Emacs, the ultimate text editor. Since 1976.
    Contact: Isaac Evans, sipb-iap-emacs@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Get Your Ham Radio License
    Amy Yu
    Wed Jan 11, 06-08:00pm, 1-246
    Wed Jan 18, 04-06:00pm, 1-246

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

    Ham radio is both a fun hobby and a useful skill to have during emergencies or for event coordination. This class will familiarize you with the basic knowledge necessary to pass the 35 question exam for the entry level (Technician) ham radio license. Session 1, which is given a week before the ham exams, will cover the basic technical background as well as strategies for learning the answers to the rote-memorization exam questions, and will also include some short presentations/demos on "fun things that you can do with your ham license." Session 2, which is given on the same day as the ham exams (see w1mx.mit.edu for more information), will be a more focused and fast-paced comprehensive overview of the test material. Attendance at both sessions is recommended, but not required.
    Contact: Amy Yu, sipb-iap-radio@mit.edu
    Cosponsor: Radio Society

    Getting Your Feet Wet with WordPress
    Molly Ruggles
    Wed Jan 18, 12-01:00pm, 26-139

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

    Have you wanted to explore WordPress but not sure where to begin? Do you think that your lack of skills in html, css and javascript prevents you from creating your own website or blog? Do you secretly want to post your nuggets of wisdom to the world, but not sure where to start? This session is for you.

    In this one hour session, you'll get up and running with WordPress, with a basic understanding of themes, widgets, plugins and other fundamental features of one of the best blogging platforms on the planet.

    Open to MIT staff and students. You need to have an MIT kerberos ID (ie an @mit.edu email account) in order to participate.
    Contact: Molly Ruggles, sipb-iap-wordpress at mit dot edu@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Git Will Make Your Life Better
    Geoffrey Thomas
    Tue Jan 10, Thu Jan 12, 08-10:00pm, 4-231

    No enrollment limit, no advance sign up
    Repeating event. Participants welcome at any session
    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.
    Contact: Geoffrey Thomas, W20-557, x3-7788, sipb-iap-git@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Hacking a Technical Interview -- Programming Interviews Exposed!!
    Sanjay Vakil, George Madrid
    Tue Jan 17 thru Fri Jan 20, 08-10:00pm, 32-144

    No enrollment limit, no advance sign up
    Participants requested to attend all sessions (non-series)
    Prereq: one MIT programming class or equivalent; 6.006 useful

    Want to work at a consumer web company? There's no need to fear the big thing standing in your way: the interview. This class will help you to prepare and practice for the interview by reviewing common topics and questions so that you'll feel comfortable and confident about being able to answer any question that may be thrown your way.

    The class focuses on computer science topics that frequently come up in programming interviews. It covers time complexity, hash tables, binary search trees, and some other things you might learn in 6.006. We'll also spend time talking about the interview process itself and how to present yourself and answers questions adroitly and fluidly.

    We're also intending to bring in guest speakers: interviewers from local tech firms. You'll be able to ask them questions before you're on the spot.

    If you want a job or internship at a computer science company, make sure you don't miss this class!
    Contact: Sanjay Vakil, sanj@alum.mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Introduction to LaTeX
    Benjamin Barenblat
    Wed Jan 18, 25, 05-07:00pm, 1-115

    No enrollment limit, no advance sign up
    Repeating event. Participants welcome at any session
    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.
    Contact: Benjamin Barenblat, W20-557, x3-7788, sipb-iap-latex@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Introduction to Latex
    Benjamin Barenblat
    Wed Jan 18, 05-07:00pm, TBD
    Wed Jan 25, 07-09:00pm, TBD

    No enrollment limit, no advance sign up
    Participants welcome at individual sessions (series)
    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://sipb.mit.edu/iap/latex/
    Contact: Benjamin Barenblat, sipb-iap-latex@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Introduction to Ruby on Rails
    Rajiv Manglani
    Wed Jan 18, 25, 07-09:00pm, 1-115

    No enrollment limit, no advance sign up
    Participants requested to attend all sessions (non-series)
    Prereq: Interest in web application development

    Ruby on Rails is an open-source web framework that is optimized for
    programmer happiness and sustainable productivity. It lets you write
    beautiful code by favoring convention over configuration. We will
    dive right in and learn the framework as we go.
    NOTE: Class was originally listed as being on the 9th and 18th; it has now been updated to the correct dates of the 18th and 25th.
    Web: http://sipb.mit.edu/iap/rails
    Contact: sipb-iap-rails@mit.ed
    Cosponsor: Electrical Engineering and Computer Science

    Mobile Virtualization: Smartphones with Multiple Personalities
    Steve Muir Technical Staff, VMware, Harvey Tuch, Prashanth Bungale
    No enrollment limit, no advance sign up
    Participants welcome at individual sessions (series)

    There is a historic shift occurring today, where smartphones and tablets are overtaking PCs as the dominant end user computing platforms. Another key technology, virtualization, has achieved a huge impact on the industry over the past decade in data centers and desktops. This course will present an introduction to the essentials of virtualization technology from the perspective of VMware's Mobile Virtualization Platform (MVP) group.

    The course will cover the systems and architecture concepts behind virtualization in general and techniques for core and device virtualization on mobile platforms. A focus will be given to the ARM architecture, the platform behind billions of embedded and mobile devices. We will focus on the wider solution space and explore tradeoffs when developing virtualization techniques, while providing concrete examples from the MVP hypervisor.
    Contact: Steve Muir, smuir@vmware.com
    Cosponsor: Electrical Engineering and Computer Science

    Introduction to Virtualization & ARM CPU Virtualization
    Steve Muir Technical Staff, VMware, Harvey Tuch, Prashanth Bungale
    Virtualization enables an operating system to run other operating systems as applications- Windows on OS X or Linux, or multiple virtual machines on one physical server. It is now being applied to smartphones in VMware's Mobile Virtual Platform. Reviews benefits of virtualization, techniques for virtualizing CPU and memory, such as binary translation and hardware enhancements, and details of ARM virtualization.
    Mon Jan 23, 10am-12:00pm, 32-124

    Mobile Devices and Application-Level Virtualization
    Steve Muir Technical Staff, VMware, Harvey Tuch, Prashanth Bungale
    Virtualization of smartphones and tablets requires handling of a wide range of I/O devices. This lecture explains the challenges, solution space and implementation details of a subset of devices in VMware's MVP. It also covers application-level virtualization in mobile devices, and includes optional exercises to gain hands-on experience on Android phones and tablets.
    Wed Jan 25, 03-05:00pm, 32-144

    Modern Programming Language Design
    Pavel Panchekha
    Mon Jan 23, 05-07:00pm, 4-231

    Single session event
    Prereq: Strong experience programming

    At some point in the early fifties, a bright chap had the idea of replacing inscrutible numbers with mnemonics and syntax: assembler was invented, and the idea of a programming language was born. Today, the field of programming languages is vaster and richer than ever before: functional, object-oriented, distributed, typed, dynamic, logic, and metasyntactic languages all vie for attention. This class will cover the main ideas of modern language design: typing, macros, constraint-solving, proofs and correctness, and extensibility and dynamism. Some implementation ideas will be discussed, but mostly the focus will be on these ideas from the point of view of the language designer and researcher, not from the point of view of the compiler and interpreter writer.
    Contact: Pavel Panchekha
    Cosponsor: Electrical Engineering and Computer Science

    Processing: Java-Based Art
    Mish Madsen
    Sun Jan 29, 02-05:00pm, 32-155

    Enrollment limited: first come, first served
    Limited to 30 participants.
    Single session event
    Prereq: none

    Come for a fun one-session course in Processing, a Media-Lab-developed language oriented around easy syntax and awesome graphic applications. You can bring your own interface- and art- related ideas. You'll get to learn some basic Java syntax as well as Processing-specific graphical commands... start building games, graphic simulations, art projects, and more today.
    Web: http://www.processing.org/
    Contact: Mish Madsen, mish@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Programming Perl
    Quentin Smith
    Tue Jan 24, Thu Jan 26, Fri Jan 27, 07-09:00pm, 4-231

    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.
    Contact: Quentin Smith, quentin@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Programming in C
    Bayard Wenzel, Eugene Kuznetsov
    Mon Jan 23, Wed Jan 25, Fri Jan 27, 07-09:00pm, 4-237

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

    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 you are working with.
    Web: http://sipb.mit.edu/iap/c
    Contact: Bayard Wenzel, sipb-iap-c@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Programming in Haskell
    Patrick Hurst
    Mon Jan 23, Wed Jan 25, Fri Jan 27, 07-08:30pm, 4-237 (updated)

    No enrollment limit, no advance sign up
    Participants requested to attend all sessions (non-series)
    Prereq: Programming experience; affinity for programs that look like

    Haskell is the world's most \\\\*reasonable\\\\* programming language -- a language ideally suited for reasoning about code by machines, by humans, and by machines aiding humans. We'll see how to make useful, beautiful, reasonable Haskell programs.
    Web: http://sipb.mit.edu/iap/haskell
    Contact: Patrick Hurst, sipb-iap-haskell@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Programming in Java
    Lyla Fischer
    Mon Jan 9, Tue Jan 10, Thu Jan 12, 05-07:00pm, 1-115

    No enrollment limit, no advance sign up
    Participants welcome at individual sessions (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:
    Introduction to Java (syntax, variables, methods)
    Object Orientation (inheritance, abstraction, etc.)
    Cross-platform GUIs
    Advanced Java Programming
    Contact: Lyla Fischer, sipb-iap-java@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Programming in Postscript
    Bayard W. Wenzel
    Tue Jan 17, Thu Jan 19, Tue Jan 24, Thu Jan 26, 05-06:00pm, 1-115

    Participants requested to attend all sessions (non-series)
    Prereq: 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://sipb.mit.edu/iap/2010/postscript
    Contact: Bayard Wenzel, sipb-iap-postscript@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Programming in Python
    David Lawrence
    Tue Jan 10, Thu Jan 12, Tue Jan 17, Thu Jan 19, 07-09:00pm, 1-115

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

    A general introduction to the Python programming language. This class will cover basic control flow structures, object-oriented development, cool functional language features and debugging. Basic experience with programming in any language will make the class much more helpful; it is highly recommended. Bring your laptop. You should install python on it beforehand, preferably python2.7 You should also have a text editor of your choice. the easiest thing to do is just to install IDLE
    Contact: David Lawrence, sipb-iap-python@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Relational Database Management System and Internet Application Programming
    Philip Greenspun
    Mon Jan 30, Tue Jan 31, Wed Feb 1, 10am-07:00pm, 1-390, lunch/coffee breaks included

    Participants requested to attend all sessions (non-series)
    Prereq: programming experience (any language) and a laptop

    After this course, you'll:
    -know why the relational database management system (RDBMS) is the foundation for most multi-user Internet applications, e.g., Amazon.com, and for most business information systems
    -understand a bit about the internals of the RDBMS and how popular systems manage the challenge of processing updates from hundreds of simultaneous concurrent users
    -know the differences in capabilities between free RDBMSes, such as MySQL and PostgreSQL, and enterprise RDBMSes, such as Oracle and SQL Server
    -know how to build multi-user application for the Web and for iPhone and Android smartphones

    Not limited to MIT students.
    Optional pre-class reading list available at the course website.

    Teacher: Philip Greenspun has been developing RDBMS-backed Internet applications since 1994 and started photo.net, an online community with more than 5 million monthly visitors, while an MIT EECS grad student. He co-authored Software Engineering for Internet Applications and has taught 6.001, 6.002, 6.003, 6.041, and 6.171.
    Web: http://philip.greenspun.com/teaching/rdbms-iap-2012
    Contact: Philip Greenspun, philg@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Ruby on Rails
    Rajiv Manglani
    Wed Jan 18, 25, 07-09:00pm, TBD

    No enrollment limit, no advance sign up
    Participants requested to attend all sessions (non-series)
    Prereq: familiarity with the UNIX terminal

    Ruby on Rails is an open-source web framework that is optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration. We will dive right in and learn the framework as we go.
    Contact: Rajiv Manglani, sipb-iap-rails@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Secure Coding in C
    Eleftherios Ioannidis
    Tue Jan 31, 05-08:00pm, 4-231

    Single session event
    Prereq: Strong experience programming

    In this class we will demonstrate some common buffer and stack overflow exploits and how to avoid them in your own code. We will discuss common pitfalls when programming for both Windows, Linux and BSD based operating systems and finally, we'll make an introduction to the CERT secure coding standards.
    Topics include:
    - Common buffer/stack overflow exploits and how to avoid them
    - Shellcode injection
    - How to avoid security risks
    - Secure C coding standards
    Contact: Eleftherios Ioannidis, sipb-iap-secure@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    System-on-a-Chip (SOC) Design Competition
    Clark Della Silva
    Mon Jan 9, 10am-05:00pm, 34-101
    Tue Jan 10 thru Thu Jan 12, 10am-05:00pm, 34-301
    Fri Jan 13, 10am-05:00pm, 34-401B

    Enrollment limited: first come, first served
    Signup by: 08-Jan-2012
    Limited to 60 participants.
    Participants requested to attend all sessions (non-series)
    Prereq: 6.004 or 6.111 recommended

    Teams comprised of 2-5 students will compete in an System on a Chip (SoC) design competition using FPGA development boards. The goal of the competition is to design an FPGA-based processor with associated peripherals and memory components around a provided ARM Cortex-M0 DesignStart core, along with associated software to demonstrate a correctly working system. The competition will use Digilent development boards with Xilinx FPGAs. Example themes will be provided, but the competition will be
    completely open-ended and teams are encouraged to use their own ideas for their systems. Lectures and workshops will be provided by ARM, Xilinx, Digilent, and MIT during the first week of the competition to get teams started. This is the first ever processor design contest using a full
    instruction set compatible ARM core.

    Final Presentations, 2/3, 4 PM, 32-141.
    Contact: Clark Della Silva, clarkds@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    The C++ 2011 Standard: What's New?
    Jason Merrill, Technical Staff, Red Hat
    Mon Jan 9, 08-09:30pm, 32-124

    No enrollment limit, no advance sign up
    Prereq: Knowledge of C++

    Jason Merrill has been working on the GNU C++ compiler
    for 18 years, and on the language standard committee for much of that time. In this talk he will discuss the newly ratified C++ 2011 standard, notable changes relative to the 1998 standard, and the experience of implementing the new features for the G++ compiler.

    Jason is also a local actor and a gamer.
    Contact: Anne Hunter, anneh@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    The GNU Debugger
    Geoffrey Thomas
    Mon Jan 30, 05-07:00pm, 4-231

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

    GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed.

    GDB can do four main kinds of things (plus other things in support of these) to help you catch bugs in the act:

    Start your program, specifying anything that might affect its behavior.
    Make your program stop on specified conditions.
    Examine what has happened, when your program has stopped.
    Change things in your program, so you can experiment with correcting the effects of one bug and go on to learn about another.
    Web: http://sipb.mit.edu/iap/gdb
    Contact: sipb-iap-gdb@mit.ed
    Cosponsor: Electrical Engineering and Computer Science

    The Internet Shouldn't Work: Networking 101
    Jessica McKellar, Jessica Hamrick
    Mon Jan 23, 05-07:00pm, 1-115

    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 history, structure, and protocols, with demos and hands-on experiments.

    Demos include:
    - sniffing our wireless traffic with Wireshark
    - be your own web browser with telnet
    - spoofing e-mails
    - ARP cache poisoning

    Bring a laptop so you can play with some of the utilities we'll be using.
    Web: http://sipb.mit.edu/iap
    Contact: Jessica McKellar, sipb-iap-internet@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Web Programming in Python with Django
    Andrew Farrell, Steve Levine, Maria Rodriguez
    Fri Jan 20, 05-07:00pm, 4-231

    No enrollment limit, no advance sign up
    Single session event
    Prereq: proficiency with HTML, CSS, and Python

    Developed four years ago by a fast-moving online-news operation, Django was designed to handle two challenges: the intensive deadlines of a newsroom and the stringent requirements of the experienced Web developers who wrote it. It lets you build high-performing, elegant Web applications quickly. Django comes with an easy-to-understand templating engine, an Object-relational matter that lets you manipulate your database though interactions with python objects, and an autoconfigured admin interface.

    Bringing your laptop is recommended but not necessary.
    Web: http://sipb.mit.edu/iap/django
    Contact: Andrew Farrell, sipb-iap-django@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    Writing Kernel Exploits
    Keegan McAllister
    Fri Jan 27, 05-07:00pm, 4-231

    Single session event
    Prereq: Experience with C on \*NIX is important. x86 assembly is hel

    Did you know that a NULL pointer can compromise your entire system? Do you know how UNIX pipes, multithreading, and an obscure network protocol from 1981 are combined to take over Linux machines today? OS kernels are full of strange and interesting vulnerabilities, thanks to the subtle nature of systems code. And the kernel's ultimate authority is the ultimate prize for an attacker.

    In this talk you will learn how kernel exploits work, with detailed code examples. Compared to userspace, exploiting the kernel requires a whole different bag of tricks, and we'll cover some of the most important ones. We will focus on Linux systems and x86 hardware, though most ideas will generalize. We'll start with a few toy examples, then look at some real, high-profile Linux exploits from the past two years.

    You will also see how to protect your own Linux machines against kernel exploits. We'll talk about the continual cat-and-mouse game between system administrators and those who would attack even hardened kernels.
    Web: http://sipb.mit.edu/iap
    Contact: Keegan McAllister, sipb-iap-kernel@mit.edu
    Cosponsor: Electrical Engineering and Computer Science

    x86 Assembly Primer for C Programmers
    Ivan Sergeev
    Tue Jan 24, Thu Jan 26, 05-07:00pm, 4-231

    Participants requested to attend all sessions (non-series)
    Prereq: Intermediate C

    A solid grasp of assembly language makes you a better programmer.

    Understanding assembly gives you:
    - insight into the true cost of high-level language operations
    - (is modulus % cheap? when is it and when is it not?)
    - a keen understanding of how program memory is managed and manipulated
    - ability to debug at the lowest level, which means you can catch the subtlest of bugs
    - ability to utilize processor-specific instructions that squeeze the most out of every clock cycle and available processor features
    - the appreciation of time / space advantages that different compiler optimization settings can yield
    - a fluency with low-level detail that makes it easy to pick up new computer architectures

    Come to the x86 Assembly Primer and get a full introduction into x86 assembly language, program memory, stack frames, system calls, the role of libc, some of the convoluted nuances of x86, and some comparisons to another architecture(ARM). Enhance your quest in becoming a systems programming ninja here!

    Platform: strictly x86-32 GNU/Linux, gcc toolchain.
    Assembly Syntax: AT&T/GAS.
    Contact: Ivan Sergeev, sipb-iap-x86@mit.edu
    Cosponsor: Electrical Engineering and Computer Science


    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: 7 Sept. 2011