17-732 Emerging Programming Paradigms

Professors Jonathan Aldrich and William Scherlis
Fall 2008
Tue/Thurs 1:30-2:50 in NSH 2507
Starts Tuesday, September 9 (after the CSD IC)
Course Blog

In this seminar we explore, from a software engineering perspective, several of the new programming paradigms that are emerging for larger-scale network-based applications. This exploration, in the form of reading, discussion, and experimentation, is done at two levels: overall system architecture and programming infrastructure. Our goal is to better understand both the core phenomena and what is the significance of these phenomena for future software engineering.

Course Structure

6 units of the course will be a once-a-week reading seminar, focused on becoming familiar with the development challenges posed by these paradigms, and some of the most innovative current research on them (including recent work at CMU).  We'll ask everyone to read material in advance and react to it (perhaps by experimenting in the paradigm), and will split the discussion time between understanding the reading and brainstorming about extensions and alternatives.  Each participant will play a coordinator/presenter role for one or two topics and associated papers.  Each day we will:
For an optional additional 6 units, we'll meet a second time during the week for a language/library design workshop.  Each participant will develop a small language or library design focusing on aiding one of the paradigms studied in the course.  The workshop will rotate among participants, discussing proposals and ideas and exploring potential research solutions.  The end result will be a well-motivated proposal along with some core theory and/or a small design prototype.  More information on workshop presentations is posted on the course blog.


Potential Topics (overlapping - not all on schedule below)

Architectural ideas
Technological underpinnings
Application ecologies


Sept 9
Organizational meeting

Sept 11
Jonathan / Joshua
Rich clients & web programming with AJAX
recommended book: AJAX design patterns
(online or in library)
Write an AJAX application
(extras: Google web toolkit, Microsoft Atlas, Ruby on Rails)
Sept 16

no class

Sept 18
Jonathan gone
Web-based GUIs
Write an application in Adobe FLEX, MS Silverlight, Limelight, or Flash
Sept 23

Sept 25

Sept 30

Oct 2

Oct 7

Oct 9

Oct 14

Oct 16

Oct 21

Oct 23
(JA gone)

Oct 28
(JA gone)

Jonathan's conflicts
Bill - no conflicts so far