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.


SIPB Classes

Co-Sponsored Classes

What else happens during IAP?

See the official IAP activities index.

I have a question about {x}

Contact sipb-iap at mit dot edu.

A Tale of Two Lisps

Robert McIntyre, Duncan Townsend
Date: Jan 21 09:30pm - 11:00pm, Jan 23 09:30pm - 11:00pm in 4-231

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. We will discuss the differences between these LISPs. 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. Clojure also lets you program using immutable data structures efficiently by using structure-sharing for all of its basic data types. We'll show you some cool real world examples of Clojure libraries so you can get a feel for the language.

Attendance: Participants welcome at individual sessions
Prereqs: The ability to appreciate true beauty
Contact: Duncan Townsend, sipb-iap-lisp at mit dot edu

Advanced C

David Greenberg (Two Sigma), Trammell Hudson (Two Sigma)
Date: Jan 15 05:00pm - 07:00pm, Jan 16 05:00pm - 07:00pm in 4-231

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.

Topics covered in the first session will include:

  • function pointers
  • structs, unions, bitfields
  • using gotos safely and correctly
  • dispatch tables
  • volatile, register, restrict keywords
  • gcc specific extensions
    • attributes for alignment, packing, functions
    • addresses of labels
    • nested functions
    • variadic macros
  • preprocessor magic
    • macro notation (pasting, evaluation, sub-blocks)
    • useful predefined macros
    • x-macros

Topics covered in the second session will include:

  • inline asm
    • constraints on arguments
    • clobbers
    • clones
  • gcc optimization
    • how to write code that optimizes well
    • how to identify patterns that the optimizer is effective at taking advantage of

Attendance: Participants requested to attend all sessions, no registration necessary
Prereqs: basic familiarity with C and comfort with pointers
Contact: sipb-iap-advc at mit dot edu

Building Cross-Platform Desktop Software in Python

David Euresti (Dropbox)
Date: Jan 29 05:00pm - 06:00pm in 4-237
Please note the new location!

One of the biggest surprises that people get from Dropbox is when they find out that the Desktop Client is written almost entirely in Python. Come find out how with the help of some awesome libraries Dropbox is able to support Windows (from 2000 all the way to 8), Mac (From Tiger to Mountain Lion) and many flavors of Linux all from the same code base.

This class is one of six being offered by MIT alumni who currently work at Dropbox.

Attendance: Single event
Prereqs: None
Contact: David Euresti, sipb-iap-dropbox at mit dot edu

Building High Performance Web Applications

Rajeev Nayak (Dropbox)
Date: Jan 31 05:00pm - 06:00pm in 4-237
Please note the new location!

Learn how to build complex web applications that are fast and responsive. We'll cover a bunch of tips and tricks, including:

  • Taking advantage of automatic browser caching
  • Lazy loading of images
  • Hacking around DOM limitations
  • Making AJAX requests progressive to enable incremental loading
  • Using HTML5 local storage

This class is one of six being offered by MIT alumni who currently work at Dropbox.

Attendance: Single event
Prereqs: None
Contact: Rajeev Nayak, sipb-iap-dropbox at mit dot edu

Caffeinated Crash Course in PHP

Steve Levine
Date: Jan 17 05:00pm - 07:00pm in 4-231

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.

Attendance: Single event
Prereqs: basic programming experience and familiarity with HTML encouraged.
Contact: Steve Levine, sipb-iap-caffphp at mit dot edu

Caffeinated Crash Course in Ruby

Ben Weissmann
Date: Jan 15 08:00pm - 11:00pm in 4-231

Ruby is a language that was designed by Yukihiro "Matz" Matsumoto, 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/functional programming, mixins, method aliasing, and duck typing. If time allows, we will explore Ruby metaprogramming to do frightening things such as implement roman numeral literals, and perhaps look at Sinatra, a Ruby web microframework.

Participants should try to have Ruby 1.9 and RubyGems installed on their systems before coming to the session so we can get started right away. On Mac/Linux, use RVM (https://rvm.io) to install Ruby; on Windows, use RubyInstaller (http://rubyinstaller.org/). To confirm that you've got ruby correctly installed, type "irb" at a terminal, confirm that you enter Ruby's REPL, and then check the version, like this:

ben@ceviche:~$ irb
ruby-1.9.3-p194 :001 > RUBY_VERSION
=> "1.9.3"

Come to class a little early if you need help getting set up.

Website: http://sipb.mit.edu/iap/caffruby/
Attendance: Single event
Prereqs: some familiarity with some scripting language; high confusion threshold.
Contact: Ben Weissmann, sipb-iap-caffruby at mit dot edu

Debathena Training

Jonathan Reed
Date: Jan 23 07:00pm - 09:30pm in 4-237

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. 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).

An athena hackathon will be held at SIPB the following Saturday.

Attendance: Participants requested to attend all sessions (non-series)
Prereqs: Are an athena/linux poweruser and have some programming experience.
Contact: Contact: Jonathan Reed, sipb-iap-debathena at mit dot edu

Debian/Ubuntu Bug Squashing Party

Luke Faraone
Date: Jan 26 01:00pm - late in W20-557

From 1 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. SIPB ran this sort of hackathon several times in the past, 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!

Attendance: Single event
Prereqs: None
Contact: Luke Faraone, sipb-iap-bsp at mit dot edu

Emacs for Beginners

Isaac Evans
Date: Jan 21 08:00pm - 09:00pm in 4-231

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.

Vi enthusiasts: you are welcome to teach your own class.

Attendance: Single event
Prereqs: Use of a text editor that is not Emacs
Contact: Isaac Evans, sipb-iap-emacs at mit dot edu

Fun and Useful Objective-C Runtime and iOS Hacks

Will Stockwell (Dropbox)
Date: Jan 29 06:30pm - 07:30pm in 4-231

There are all kinds of fun and useful ways to mess with iOS! The iOS team at Dropbox is here to talk about a few that we particularly enjoy. Swizzles, invocation forwarding, view inspection and injection, oh my!

This class is one of six being offered by MIT alumni who currently work at Dropbox.

Attendance: Single event
Prereqs: Familiarity with iOS development recommended
Contact: Will Stockwell, sipb-iap-dropbox at mit dot edu

Hacking Python to Include Custom Syntax in Pyxl

Daniel Wheeler (Dropbox)
Date: Jan 14 08:00pm - 09:00pm in 4-231

Come learn a hack for extending python's interpreter to include custom syntax, and see it applied in pyxl, an opensource library that lets you include inline html right inside .py files. Hear why Dropbox uses it in place of traditional templating languages. Topics include modularity, code reuse and security against injection attacks.

This class is one of six being offered by MIT alumni who currently work at Dropbox.

Attendance: Single event
Prereqs: None
Contact: Daniel Wheeler, sipb-iap-dropbox at mit dot edu

Introduction to Athena

Andrew Farrell
Date: Jan 07 08:00pm - 09:30pm, Jan 22 08:30pm - 10:00pm in 1-115

Athena is the computing environment at MIT. Like a network of blood vessels reaching out to, connecting, and bringing life to every cell of campus, Athena is of the highest importance and understanding how to work with it is critical to being productive at MIT. Unfortunately, many people at MIT don't know the first thing about working with Athena. No one ever teaches you about it in the daily class-psets-food-sleep cycle. This is that missing class. In this class, you'll learn the basics of the Linux command line along with the most important MIT-specific services that make Athena unique. Additionally, you'll learn how to write short scripts to save time. This class will teach you how to work with Athena to make your life easier, stay connected with friends, and improve your interactions with computers at MIT. If the words "finger", "blanche", and "zephyr" don't mean anything special to you, then you must take this class!

Attendance: Repeating event, participants welcome at any session
Prereqs: None
Contact: Andrew Farrell, sipb-iap-athena at mit dot edu

Introduction to LaTeX

Megan Belzner
Date: Jan 22 05:00pm - 08:00pm, Jan 24 05:00pm - 08:00pm in 1-115

Leave Word behind forever! LaTeX is the gold standard for document typesetting in academia, and in this single-session event we will 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.

Attendance: Repeating event, participants welcome at any session
Prereqs: None
Contact: Megan Belzner, sipb-iap-latex at mit dot edu

Introduction to Ruby on Rails

Andrew Farrell
Date: Jan 16 08:00pm - 10:00pm
Please note that the second session has been canceled!

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.

Attendance: Participants requested to attend all sessions
Prereqs: Interest in web application development
Contact: Andrew Farrell, sipb-iap-rails at mit dot edu

Introduction to RubyMotion

Rajiv Manglani
Date: Jan 28 08:00pm - 10:00pm, Jan 30 07:00pm - 09:00pm in 4-231

RubyMotion is a revolutionary toolchain for iOS. It lets you quickly develop and test native iOS applications for the iPhone and iPad. RubyMotion apps are written in Ruby and use all the same Cocoa Touch APIs and frameworks as those written in Objective-C. Applications are compiled, run at full speed on iOS hardware, and can be submitted to Apple's App Store. RubyMotion runs on OS X and is a commercial product. Come to the class then decide if it is the right technology to use for your next iOS application. We will explore the history of the project, tour the framework, and build a functioning app.

Website: http://sipb.mit.edu/iap/rubymotion
Attendance: Participants requested to attend all sessions. If you plan on attending, please RSVP to sipb-iap-rubymotion at mit dot edu.
Prereqs: Some familiarity with iOS or Ruby development suggested.
Contact: Rajiv Manglani, sipb-iap-rubymotion at mit dot edu

Modern Programming Language Design

Pavel Panchekha
Date: Jan 23 07:00pm - 09:00pm in 4-231

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.

Attendance: Single event
Prereqs: Strong experience programming
Contact: Pavel Panchekha, sipb-iap-language at mit dot edu

More Data Than Your Body Has Room For

Shaunak Kishore (Dropbox)
Date: Jan 31 06:30pm - 07:30pm in 4-231

Ben Bitdiddle expected thousands of users...he has millions! Unfortunately, he doesn't know exactly how many people have signed up, because his analytics systems can't keep up with the load. You don't have to be in this position! In this talk, we'll see how to combine a number of open-source big-data technologies to create analytics infrastructure that a small team can manage.

This class is one of six being offered by MIT alumni who currently work at Dropbox.

Attendance: Single event
Prereqs: None
Contact: Shaunak Kishore, sipb-iap-dropbox at mit dot edu

Programming in C

Bayard Wenzel, Eugene Kuznetsov
Date: Jan 07 05:00pm - 07:00pm, Jan 09 05:00pm - 07:00pm, Jan 11 05:00pm - 07:00pm in 1-115

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 do not 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.

Attendance: Participants requested to attend all sessions
Prereqs: Some familiarity with programming
Contact: Bayard Wenzel, sipb-iap-c at mit dot edu

Programming in Haskell

Patrick Hurst
Date: Jan 21 05:00pm - 06:30pm, Jan 23 05:00pm - 06:30pm, Jan 25 05:00pm - 06:30pm in 4-231

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.

Attendance: Participants requested to attend all sessions
Prereqs: Programming experience; affinity for programs that look like math.
Contact: Patrick Hurst, sipb-iap-haskell at mit dot edu

Programming in Perl

Quentin Smith
Date: Jan 08 08:00pm - 10:00pm, Jan 09 08:00pm - 10:00pm, Jan 10 08:00pm - 10:00pm in 4-231
Please note the new time!

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.

More information & slides from the class can be found on the class webpage.

Attendance: Participants requested to attend all sessions
Prereqs: Some programming experience
Contact: Quentin Smith, sipb-iap-perl at mit dot edu

Programming in PostScript

Bayard Wenzel
Date: Jan 25 07:00pm - 08:00pm, Jan 28 05:00pm - 06:00pm, Jan 30 05:00pm - 06:00pm, Feb 01 05:00pm - 06:00pm in 4-237
Please note the new location!

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.

Attendance: Participants requested to attend all sessions
Prereqs: Familiarity with programming
Contact: Bayard Wenzel, sipb-iap-postscript at mit dot edu

Programming in Python

Nathan Arce, Luke O'Malley
Date: Jan 08 05:00pm - 07:00pm in 1-115 , Jan 10 05:00pm - 7:00pm in 4-237, Jan 11 07:30pm - 09:30pm in 4-237
Please note the new location for the second two sessions!

What's that you say? You don't know how to program!? Then this is the course is for you!

Python is a remarkably beautiful and easy-to-learn programming language. Despite it's simplicity, it is extremely powerful, and you'd be surprised to hear who's using it. Notable users include: Google, Youtube, Dropbox, NASA, reddit, and many more! In this course, you'll learn the basics of programming through interactive use of the Python programming language. Before you know it, you'll be writing code and ready to start attacking your own problems head on.

Know how to program already? Great, come see what Python has to offer!

Attendance: Participants requested to attend all sessions
Prereqs: None
Contact: Nathan Arce, Luke O'Malley, sipb-iap-python at mit dot edu

Web Programming in Python with Django

Luke O'Malley
Date: Jan 14 05:00pm - 07:00pm in 4-231

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.

Attendance: Single event
Prereqs: Proficiency with HTML, CSS, and Python
Contact: Luke O'Malley, sipb-iap-django at mit dot edu

Web Security Gotchas

Chris Varenhorst (Dropbox)
Date: Jan 31 08:00pm - 09:00pm in 4-231

This talk will be a survey of some of the more obscure types of web application vulnerabilities. I'll include live demos of sites whenever appropriate. Topics include clickjacking, fake mouse pointers, browser history leaking through cache timing, login csrf attacks, etc. We'll also cover how to defend against all these attacks (when its possible) and general best practices.

This class is one of six being offered by MIT alumni who currently work at Dropbox.

Attendance: Single event
Prereqs: None
Contact: Chris Varenhorst, sipb-iap-dropbox at mit dot edu

x86 Assembly Primer for C Programmers

Ivan Sergeev
Date: Jan 22 07:00pm - 09:00pm, Jan 24 07:00pm - 09:00pm in 4-231
Please note the new time!

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. Example code for the class is available on Github.

Attendance: Participants requested to attend all sessions
Prereqs: Intermediate C
Contact: Ivan Sergeev, sipb-iap-x86 at mit dot edu

3 Day Startup Entrepreneurship Program
(sponsored by Course VI)

Cassandra Cortez-Cano (Program Manager, Rackspace)
Date: Jan 18 02:00pm - 11:45pm, Jan 19 12:00am - 11:45pm, Jan 20 12:00am - 09:00pm in 32-155

3 Day Startup (“3DS”) is an academic program designed to teach entrepreneurial skills in an extreme hands-on environment and enable students to start companies. The 3DS program creates a living entrepreneurship laboratory on university campuses by bringing together students ranging from freshmen to freshly-minted PhDs, with diverse backgrounds, including computer science, business, engineering, law, design, communications and others.

Participants gain experience in cross-disciplinary collaboration, brainstorming and ideation, and group productivity, including ad-hoc leadership and decision-making under severe time constraints. The resulting experience is just like that of working with a budding startup company.

The 2000+ 3DS alumni from 40 events over the last three years have started over 33 technology companies that have collectively raised over $8.5 million in investment capital. The weekend is designed with two specific goals in mind: kick-start new student-run companies and build entrepreneurial capabilities in students and their university communities.

To register go to http://training.rackspace.com/iap by January 7, 2013.

Attendance: Participants requested to attend all sessions
Prereqs: None
Contact: Cassandra Cortez-Cano, cassandra.cano at rackspace dot com

(6.S184) Caffeinated 6.001
(sponsored by Course VI)

Alex Vandiver
Date: Tue, Thu, Jan 8, 10, 15, 17, 22, 24, 29, 31, 07-09:00pm in 32-044

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
Zombie-like, 6.001 rises from the dead again. Unlike a zombie, however, it's moving quite a bit faster than it did the first time -- we aim to cover essentially the entire semester-long curriculum over the course of eight classes. Like the original, the class does not purport to just teach Scheme; instead, 6.S184 attempts to use Scheme to teach thought patterns for computer science, and properties of the structure and interpretation of computer programs which transcend specific programming languages. Weekly projects, mostly based on historic 6.001 projects, will be assigned.

Can be taken for credit. See course webpage for further details.

Attendance: Pre-register on WebSIS and attend first class. Listeners allowed, space permitting. Limited to 30 participants.
Prereqs: Some programming experience, high confusion threshold
Contact: Alex Vandiver, 6.001-zombies at mit dot edu

(6.S187) 6.370: The BattleCode Programming Competition
(sponsored by Course VI)

Daniel Jackson, Maxwell Mann, Steven Valdez, Sherry Wu, Aaron Epstein
Date: Jan 07, 08, 09, 10, 11, 14, 15, 16, 17 05:00pm - 07:00pm in 1-190, Jan 18 04:30pm - 08:00pm in 34-401, Feb 02 02:00pm - 11:00pm in 26-100

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
6.370 is an artificial intelligence programming contest in Java. Students will work in teams of 1 to 4, programming virtual robots to play BattleCode, a real-time strategy game. After the one-hour lecture, a one-hour lab session is held for teams to receive assistance writing Battlecode players. The competition will culminate in a live BattleCode tournament held publicly on February 4th in Kresge. The top teams will receive cash prizes. Students must preregister both on WebSIS for 6.187, AND on the BattleCode website by January 7th. The finalists' celebration is mandatory for finalists.

Can be taken for credit. See course webpage for further details.

Attendance: Pre-register on WebSIS and attend first class. Limited to 500 participants. Listeners welcome at individual sessions (series)
Prereqs: Permission of instructor ; Programming Experience
Contact: Andrew Sugaya, 6.370-chair at mit dot edu

(6.S188) 6.470 Web Programming Competition
(sponsored by Course VI)

Mark Zhang, Joseph Laurendi, Charles Liu, Stephanie Chang, Victor Costan, Kenny Lam, Victor Hung, Rachel Fung
Date: Mon-Fri, Jan 07-11, 14-18, 11am-01:00pm, 10-250, Awards, 7-10 PM, 1/31

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
Teams of 1-3 compete to build the most functional and user-friendly website over IAP. Sites will be judged by industry experts. Over 30K in prizes will be awarded! Lectures and workshops teach everything you need to make a complete website. Competition will have novice and advnaced divisions with separate prizes. Novice topics include web programming basics like HTML, CSS, jQuery, PHP, MySQL. Advanced topics include SASS, Node.js, Ruby on Rails, layout, debugging, and security.

Beginners and experienced web programmers welcome, but previous programming experience recommended. You will receive the instructor's permission automatically by coming to lecture or by passing the first milestone check-off.

Can be taken for credit. See course webpage for further details.

Attendance: Pre-register on WebSIS and attend first class. Limited to 250 participants. Listeners allowed, space permitting
Prereqs: Permission of instructor and some programming
Contact: Mark Zhang, 6.470-staff at mit dot edu

(6.S190) 6.570: MIT Mobile App Competition
(sponsored by Course VI)

Vedha Sayyaparaju, Patricia Saylor, Jonathan Lui, Leonardo Urbina
Date: Mon-Fri, Jan 07-11, 14-18, 11am-02:00pm, 32-141, Awards 1/31, 4-7, TBD

Laboratory subject that covers content not offered in the regular curriculum. Consult department to learn of offerings for a particular term.
6.570 is MIT's Mobile Development Competition. Teams of 2-3 students will have 4 weeks to design and build an Android application based on a given theme. The first two weeks of the competition will consist of lectures and labs led by experienced students and leading industry experts, covering the basics of Android development, and other relevant concepts and tools, to help participants build great apps. The contest will culminate in a public presentation in front of a judging panel comprised of professional developers and MIT faculty. Great prizes and everlasting fame will be awarded to the champions of 6.570!

Can be taken for credit. See course webpage for further details.

Attendance: Selection by departmental lottery. Do not pre-register on WebSIS. Enter lottery by: 20-Dec-2012. Limited to 90 participants. No listeners
Prereqs: Permission of instructor and some programming
Contact: Vedha Sayyaparaju, 6.570-organizers at mit dot edu

Building Blocks for Building Large Scale Analytics Software Systems
(sponsored by Course VI)

Andrew Lamb (Technical Staff, Vertica Systems)
Date: Jan 10 06:00pm - 07:00pm in 32-141

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.

Attendance: Single event
Prereqs: interest in large scale analytic software systems
Contact: Andrew Lamb, aalamb at alum dot mit dot edu

Get Your Ham Radio License
(sponsored by the MIT Radio Society)

Amy Yu
Date: Jan 15 05:30pm - 07:30pm, Jan 17 05:30pm - 07:30pm in 2-139

License Exam: Wednesday 23 January, 7:30 PM, 1-150
http://w1mx.mit.edu/ham-exams

Ham radio is 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. Special emphasis will be given to topics with which MIT students are less likely to have prior familiarity (ie FCC regulations), and strategies presented for efficiently learning answers to the "rote-memorization" questions. Presentations will also include resources for learning more about ham radio, an overview of entry-level equipment, and examples of things that you can do with your new license, including weather spotting (SKYWARN), emergency response, internet / satellite radio and APRS, and ham radio contesting. Students will be invited to participate in the ARRL January VHF contest (January 19-21) with the MIT Radio Society. Attendance at both sessions is strongly recommended but not required.

Attendance: Participants requested to attend all sessions
Prereqs: None
Contact: Amy Yu, sipb-iap-radio at mit dot edu

Hacking a Software Interview -- Mastering Programming Interview Questions
(sponsored by Course VI)

Sanjay Vakil, Jeff Moore
Date: Jan 22 05:30pm - 06:30pm, Jan 23 06:30pm - 08:30pm, Jan 24 06:30pm - 08:30pm, Jan 25 06:30pm - 08:30pm in 32-144

06:30pm - 08:30pm, Jan 25 06:30pm - 08:30pm in 32-144

Ever wanted to work at a company like Google, TripAdvisor, Apple, or Facebook? There's just one thing standing in your way: the interview. But there's no need to fear. We've mastered the interview questions and topics, and we want to show you how you can nail every programming question. Whether you're a beginning programmer or a seasoned expert, this class is for you. 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.046. However, most of the time is devoted to topics you won't learn in class, such as crafty bitwise logic and tricks to solving problems. 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: one MIT programming class or equivalent; 6.006 useful
Contact: Sanjay Vakil, sanj at alum dot mit dot edu

Training for OpenStackTM
(sponsored by Course VI)

Cassandra Cano, Juan Montemayor, Tony Campbell
Date: Jan 14 06:00pm - 09:00pm, Jan 15 06:00pm - 09:00pm, Jan 16 06:00pm - 09:00pm, Jan 17 06:00pm - 09:00pm in 32-124

06:00pm - 09:00pm, Jan 17 06:00pm - 09:00pm in 32-124

OpenStack is a global collaboration of developers and cloud computing technologists producing the ubiquitous open source cloud computing platform for public and private clouds. The project aims to deliver solutions for all types of clouds by being simple to implement, massively scalable, and feature rich. The technology consists of a series of interrelated projects delivering various components for a cloud infrastructure Solution.

Introduction to the OpenStack project. the components and architecture of each core project. Students will learn about Nova, Swift, Glance, Keystone and Horizon. This technical course consists of lectures, discussions, demos and hands on labs.

Founded by Rackspace Hosting and NASA, OpenStack has become a global software community of developers collaborating on a standard and massively scalable open source cloud operating system, making it the fastest growing open source project in history. The mission of OpenStack is to enable any organization to create and offer cloud computing services running on standard hardware.

All the code for OpenStack isfreely available under the Apache 2.0 license. Anyone can run it, build on it, or submit changes back to the project. We strongly believe that an open development model is the way to foster badly needed cloud standards, remove the fear of proprietary lock-in for cloud customers, and create a large ecosystem that spans cloud providers

To register go to http://training.rackspace.com/iap by January 7, 2013.

Attendance: Participants requested to attend all sessions
Prereqs: Linux commands, networks,view lecture slides before lectures
Contact: Cassandra Cortez-Cano, cassandra.cano at rackspace dot com