%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section*{Programming}
\addcontentsline{toc}{section}{Programming}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%-----------------------------------------------------------------------------%

\subsection*{The Crash Course Series:  C, C++, Java}
\addcontentsline{toc}{subsection}{The Crash Course Series: C, C++, Java}

\subsubsection*{Crash Course in Java}
\addcontentsline{toc}{subsubsection}{Crash Course in Java}
Ricky Ramirez, sipb-iap-java@mit.edu\\
Mon Jan 23 thru Thu Jan 26, 04-06:00pm, 2-105\\
No enrollment limit, no advance sign up. Participants requested to attend all sessions (non-series).\\

This class is an introduction to the Java programming language. The first half will cover basics of the language, including Java development environments on Athena and language syntax. The second half will examine the Java run-time library, including standard container classes, file I/O, and graphical user interfaces using Swing.

\subsubsection*{Crash Course in C}
\addcontentsline{toc}{subsubsection}{Crash Course in C}
Michael Shaw, sipb-iap-c@mit.edu\\
Tue-Thu, Jan 17, 19, 24, 26, 31-1, 06-08:00pm, 1-150\\
No enrollment limit, no advance sign up. Participants requested to attend all sessions (non-series). Prereq: Minimal programming experience.\\

Interested in C, but not enough time for 1.00 or 10.001? This course will cover the fundamentals of programming in C, including basic control structures, functions, pointers and arrays, and an introduction to the C standard library.

\subsubsection*{Crash Course in C++}
\addcontentsline{toc}{subsubsection}{Crash Course in C++}
Nelson Elhagae, sipb-iap-seeplusplus@mit.edu\\ 
Tue, Thu, Jan 10, 12, 17, 19, 24, 26, 03-05:00pm, 37-212\\
No enrollment limit, no advance sign up. Participants requested to attend all sessions (non-series). Prereq: Familiarity with programming, including object-orientation. \\

This class will cover a crash course in C++ for coders who are already
basically proficient with code and object-oriented programming. We
will cover C++ syntax and concepts, including objects and namespace,
and get into a quick intro to the standard template library. No prior
experience with C is assumed.

\subsubsection*{Caffeinated Crash Course in C++}
\addcontentsline{toc}{subsubsection}{Caffeinated Crash Course in C++}
Mike Rolish, sipb-iap-caffeinatedplusplus@mit.edu\\
Mon Jan 23, 01-04:00pm, 1-190\\
No enrollment limit, no advance sign up. Single session event. Prereq: Some programming experience.\\

A three-hour introduction to the C++ programming language.
Basic syntax, data types, and control flow. Object basics.
Dynamic memory management. Polymorphism and templates.
Standard library. Useful tools.

\subsubsection*{Caffeinated Crash Course in C}
\addcontentsline{toc}{subsubsection}{Caffeinated Crash Course in C}
Steve Summit, sipb-iap-cccc@mit.edu\\
Wed Jan 25, 4-7pm and optional 8-10pm, 1-150\\

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 something about C can be a huge
help in better understanding the other systems and languages you
are working with.\\

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.  The focus will be on understanding why the language is
as it is, and on the implications for existing programs written
in C or for work in newer programming languages derived from C.\\

There will be a special bonus 2-hour section following the first half, 
for those whose brains have not yet leaked out of their ears.
The instructor is an MIT alumnus and maintainer of the C FAQ list
on the 'net.

%-----------------------------------------------------------------------------%

\subsection*{Programming in PostScript}
\addcontentsline{toc}{subsection}{Programming in PostScript}
Bayard Wenzel, sipb-iap-postscript@mit.edu\\
Mon Jan 23, Wed Jan 25, Mon Jan 30, Wed Feb 1, 11am-12:00pm, 26-204\\
No enrollment limit, no advance sign up. Participants requested to attend all sessions (non-series). Prereq: Familiarity with programming languages.\\

PostScript is the standard page description language, and the language which PDF, the standard document interchange format, is based upon. This class provides an introduction to PostScript, how to write both PostScript programs and programs that write PostScript, and an overview of the structure and construction of PDF files.

%-----------------------------------------------------------------------------%

\subsection*{Shell Scripts}
\addcontentsline{toc}{subsection}{Shell Scripts}
Jacob Morzinski, sipb-iap-shell@mit.edu\\
Mon Jan 23, 02-03:30pm, 2-132\\
No enrollment limit, no advance sign up. Single session event. Prereq: Some experience with Unix and basic tools (ls, echo, cat).\\

Shell scripts are the common method of automating command-prompt tasks on Unix systems. This class will introduce the shell (the command-prompt), explain how the shell reacts to your typing, and present the fundamentals of shell programming.

%-----------------------------------------------------------------------------%

\subsection*{XML and XSLT in Web Development}
\addcontentsline{toc}{subsection}{XML and XSLT in Web Development}
William Reilly, sipb-iap-xml@mit.edu\\
Cosponsor: Libraries\\
Tue Jan 17, Wed Jan 18, Tue Jan 24, 05:30-07:30pm, 4-231\\
No enrollment limit, no advance sign up. Participants requested to attend all sessions (non-series). Prereq: Familiarity with XML, some exposure to XSLT transformations.\\

Introduction to the use of fundamental XML technologies in website development, in particular XSLT (and XPath).  Attention also to XML Schemas and DTDs.  Demonstration and investigation of the web-based XML publishing framework Cocoon.  Examples of use of specific markup languages (applications of XML) relevant to website development (XHTML, SVG, DocBook, RSS).

%-----------------------------------------------------------------------------%

\subsection*{Web 2.0 development using Ruby on Rails}
\addcontentsline{toc}{subsection}{Web 2.0 development using Ruby on Rails}
Matt DeBergalis, sipb-iap-ruby@mit.edu\\
Wed Feb 1, Thu Feb 2, 07-09:00pm, 4-370\\
No enrollment limit, no advance sign up. Participants requested to attend all sessions (non-series). Prereq: Minimal comfort with HTML and scripting.\\

Hosted web services have garnered considerable attention in the past year as an
attractive alternative to traditional desktop software.  We'll walk through how
Ruby on Rails -- a new web application framework -- lets one quickly build and
deploy a modern ``Web 2.0'' application that takes advantage of AJAX, REST, SOAP,
and much much more, using code powering ActBlue.com as a working example.  No
Ruby or previous web development experience necessary.

%-----------------------------------------------------------------------------%

\subsection*{Intro Programming with ``Processing''}
\addcontentsline{toc}{subsection}{Intro Programming with ``Processing''}
J.D. Zamfirescu, sipb-iap-processing@mit.edu\\
Tue Jan 24, Thu Jan 26, 08-10:00pm, 1-115\\
Enrollment limit 40, no advance sign up. Repeating event. Participants welcome at any session.\\

Bored with ``Hello World?'' Learn how to program with a graphics-
oriented language: Processing. See the Processing website
(www.processing.org) for examples of the type of code (and designs!)
we'll be producing.  Please feel free to bring a laptop!

%-----------------------------------------------------------------------------%

\subsection*{Network Programming with Python}
\addcontentsline{toc}{subsection}{Network Programming with Python}
J.D. Zamfirescu, sipb-iap-network@mit.edu\\
Tue Jan 24, Thu Jan 26, 04-06:00pm, 1-115\\
Enrollment limit 20, no advance sign up. Repeating event. Participants welcome at any session.  Prereq: Basic knowledge of Python...see tutorial at www.python.org\\

Learn about sockets and network programming using the Python
language! Over the course of two hours, we'll talk about Internet
addressing, ports, and the server/client architecture; we'll finish
off the class by writing a brief web server.  Please feel free to bring a laptop!

%-----------------------------------------------------------------------------%

\subsection*{Programming Perl}
\addcontentsline{toc}{subsection}{Programming Perl}
Alex Rolfe, sipb-iap-perl@mit.edu\\
Tue Jan 17, Thu Jan 19, Tue Jan 24, Thu Jan 26, 08-10:00pm, 1-150\\
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.

%-----------------------------------------------------------------------------%

\subsection*{The Functional Programming Language Haskell}
\addcontentsline{toc}{subsection}{The Functional Programming Language Haskell}
David Glasser, sipb-iap-haskell@mit.edu\\
Mon Jan 23 thru Thu Jan 26, 02-03:00pm, 2-105\\
No enrollment limit, no advance sign up. Participants requested to attend all sessions (non-series). Prereq: 6.001 or other programming experience recommended.\\

This is an introduction to the programming language Haskell. Haskell
is a functional programming language (like Scheme), with types (like
ML), and lazy evaluation (unlike almost any other language). We will
get introduced to the language, create a library for image
manipulation, and touch on advanced topics such as monadic
programming.

%-----------------------------------------------------------------------------%

\newpage
\subsection*{Python Programming}
\addcontentsline{toc}{subsection}{Python Programming}
Giles Hall, sipb-iap-progpython@mit.edu \\
Tue Jan 10, Thu Jan 12, Tue Jan 17, 07-10:00pm, 1-190\\
No enrollment limit, no advance sign up.  Participants welcome at individual sessions (series).\\

Tuesday January 10:  Introduction to Python Programming: Python is easy to learn, the
basics of the scripting language are taught in the first class. 

Thursday January 12:  Object Oriented Python Programming: Built to be an object-oriented
language from the ground up, the second class shows off the ease and
power of python objects. 

Tuesday January 17:  Advanced Python Techniques: Learn to speed-up your code by
extending the python interpreter using its C API. 

%-----------------------------------------------------------------------------%

