Advanced C
David Greenberg
Wed Jan 26, 05-07:00pm, 3-133
No enrollment limit, no advance sign up
Single session event
Prereq: 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: sipb-iap-advc@mit.ed
Cosponsor: Electrical Engineering and Computer Science
|
Bluespec
Ken Takasagawa
Mon Jan 24 thru Thu Jan 27, 05-06:00pm, 1-115
No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: knowledge of digital design or functional programming helpfu
Bluespec is language for electronic digital design superior to Verilog or VHDL. This class introduces Bluespec as a programming language, examining its compilation and execution model and strong type system (many features inspired by functional programming languages). This will not be a class on digital design (students are encouraged to take 6.375 or 6.823 for that). Previous knowledge of digital design may be helpful, but not required. Familiarity with a functional programming language such as Haskell will be useful, but also not required.
Web: http://sipb.mit.edu/iap/#bluespecrene
Contact: Ken Takasagawa, sipb-iap-bluespec@mit.edu
|
Caffeinated Crash Course in Computer Forensics
Jesse Kornblum ManTech
Wed Jan 5, 06-08:00pm, 4-163
Single session event
Prereq: Non-technical computer literacy.
This two-hour session is a high-speed, low drag introduction to computer forensics. You'll see what kinds of data can be recovered from various devices found in the real world and in the cloud. There's treasure everywhere! Topics covered include hidden data in office documents, filesystems, flash storage, cell phones, GPS devices (which are mostly Linux boxen, anyway), computer memory (RAM), social networking sites, the Lobby 7 Anomalous Activity Hypothesis, Jesse's Dead Body Theory of Evidence, and the story of FRED. By the end you'll understand information hasn't been destroyed unless the media has been raised to the Curie Point.
Web: http://sipb.mit.edu/iap/exploit
Contact: Jesse Kornblum, sipb-iap-forensics@mit.edu
Cosponsor: Electrical Engineering and Computer Science
|
Caffeinated Crash Course in Ruby
Donald Guy
Fri Jan 21, 06-09:00pm, 1-115
Single session event
Prereq: Some familiarity with some scripting language; high confusio
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, 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.
Web: http://sipb.mit.edu/iap/ruby
Contact: Donald Guy, sipb-iap-ruby@mit.edu
Cosponsor: Electrical Engineering and Computer Science
|
Caffenated Crash Course in PHP
Steve Levine
Wed Jan 12, 07:30-10:30pm, 4-237
No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: basic programming experience and familiarity with HTML encou
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.mit.edu/iap/php
Contact: Steve Levine, sjlevine@mit.edu
Cosponsor: Electrical Engineering and Computer Science
|
Debathena Training
John Reed, Geoffrey Thomas, Elizabeth Denys
Wed Jan 19, Fri Jan 21, 05-10:30pm, 3-133
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: John Reed, sipb-iap-debathena@mit.edu
Cosponsor: Information Services and Technology
|
Git Will Make Your Life Easier
Geoffrey Thomas
Tue Jan 11, Thu Jan 13, 07-09:00pm, 1-115
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.
Web: http://stuff.mit.edu/iap/2009/git
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
Mon Jan 10 thru Fri Jan 14, 07-09:00pm, 32-124
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
|
Ham Radio Clue
Karl Ramm, Matt Goldstein
Wed Jan 19, 05:30-07:30pm, 4-270
No enrollment limit, no advance sign up
Single session event
Prereq: None.
Ever wanted to talk to people in foreign countries without any delay? Does finding a real-life use for your 8.02 skills appeal to you? Do you wish you could coordinate with many friends at the same time at an event? Bouncing your voice off the moon so it can be heard half way around the world sounds like fun? All it takes for a license to do this and more is a short exam which any MIT student should be able to pass without much effort. We'll teach you the extra bits you don't already know and then take you to an official exam session on campus resulting in a license from the FCC. See http://w1mx.mit.edu/ham-exams for a list of what to bring, no registration required.
Web: http://sipb.mit.edu/iap/#radio
Contact: Karl Ramm, sipb-iap-radio@mit.edu
|
Hands-On Introduction to Web Programming
HaoQi Li
Mon Jan 10 thru Fri Jan 14, 09-10:00pm, 1-115
No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: Basic knowledge of HTML
Learn web programming by building your own personal web page, topics include: -Web programming tools, set up your scripts hosting -HTML + CSS, and design tips -JavaScript, jQuery, and AJAX -PHP server side -MySQL database The Room has Athena machines, but you're welcome to bring your own laptop. There will also be extra office hours to guarantee that you'll walk away with your dynamic personal web page.
Web: http://sipb.mit.edu/iap/#webprogramming
Contact: HaoQi Li, sipb-iap-webprogramming@mit.edu
|
Introduction to Latex
Benjamin Barenblat
Wed Jan 19, 05-07:00pm, 1-115 Wed Jan 26, 06-08: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.
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
Mon Jan 10, 07-08:30pm, 3-133 Wed Jan 19, 07-09:00pm, 4-237
No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: Interest in web application development; familiarity with th
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.
Web: http://sipb.mit.edu/iap/rails
Contact: sipb-iap-rails@mit.ed
Cosponsor: Electrical Engineering and Computer Science
|
Models of computation
Pavel Panchekha
Tue Jan 25, Thu Jan 27, 07-09:00pm, 4-237
No enrollment limit, no advance sign up
Participants requested to attend all sessions (non-series)
Prereq: None
Everyone knows that the greatest programming language in the world is Haskell. Except of course that it is actually Lisp, and also Prolog, though of course it it Java. Computer Science has a long history of LtU-esque language debates, going back all the way to its inception in the 1930s. This class will cover early models of computation: Turing machines, lambda calculus, and combinators. Just like modern language debates, no one wins, and so we'll cover the equivalence of all of these forms. Some discussion of the influence on modern languages of each of these paradigms will be included.
Web: http://sipb.mit.edu/iap/models
Contact: sipb-iap-models@mit.ed
|
Processing: Java-Based Art
Mish Madsen
Tue Jan 18, 06-09:00pm, 32-124
Enrollment limited: advance sign up required (see contact below)
Signup by: 14-Jan-2011
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 18, Thu Jan 20, Tue Jan 25, Thu Jan 27, 05-07:00pm, 3-133
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://sipb.mit.edu/iap/perl/
Contact: Quentin Smith, quentin@mit.edu
Cosponsor: Electrical Engineering and Computer Science
|
Programming in C
Bayard Wenzel, Eugene Kuznetsov
Mon Jan 3, Wed Jan 5, Fri Jan 7, 05-07:00pm, 1-115
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 3, Wed Jan 5, Fri Jan 7, 05-07:00pm, 3-133
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. Students are encouraged to bring their own laptop computers to be able to do hands-on exploration during the class.
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
Tue Jan 11, Thu Jan 13, Tue Jan 18, Thu Jan 20, 05-07:00am, 1-115
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: Introduction to Java (syntax, variables, methods) Object Orientation (inheritance, abstraction, etc.) Cross-platform GUIs Advanced Java Programming
Web: http://sipb.mit.edu/iap/java
Contact: Lyla Fischer, sipb-iap-java@mit.edu
Cosponsor: Electrical Engineering and Computer Science
|
Programming in Postscript
Bayard W. Wenzel
Tue Jan 4, Thu Jan 6, Tue Jan 11, Thu Jan 13, 05-06:00am, 3-133
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
Andrew Farrell, Karen Sittig
Tue Jan 4, Thu Jan 6, Tue Jan 11, Thu Jan 13, 06-08:00pm, 4-163
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, 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://sipb.mit.edu/iap/python
Contact: Andrew Farrell, sipb-iap-python@mit.edu
Cosponsor: Electrical Engineering and Computer Science
|
The GNU Debugger
Geoffrey Thomas
Wed Jan 12, 07-09:00pm, 1-115
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
|
Web Programming in Python with Django
Andrew Farrell
Thu Jan 20, 07-09:00pm, 3-133
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
|
a tale of two lisps
Robert McIntyre, Duncan Townsend
No enrollment limit, no advance sign up
Participants welcome at individual sessions (series)
Prereq: None, some programming experience useful
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).
Contact: Robert L McIntyre, sipb-iap-lisp@mit.edu
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 18, 07-09:00pm, 4-270
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 20, 07-09:00pm, 4-270
|
|