Home
Teaching
 
1205 S '02
General
Syllabus
Readings
Projects
The Newsgroup

General Information


Lectures

Tue, Wed, Fri @ 11:45 in SH 135


Staff

Matthias Felleisen (Egan 222C) matthias-remove-this@ccs.neu.edu
John Clements (Egan 222) clements-remove-this@ccs.neu.edu
Jamie Raymond (Egan 222) raymond-remove-this@ccs.neu.edu


Organizaion

The course is a "studio" course. For most of the semester, approximately half the meetings introduce programming techniques (e.g., recipes, iterative refinement), topical knowledge (e.g., XML, COM), and joint program design. For the other half of the meetings, we will public code walks. The purpose of the code walks is to learn reasoning about properties of code and relationships between pieces of code.


Communication

Course business will be conducted in a mostly paperless fashion. Consult the Web pages and newsgroup on a regular basis. Use email as needed.


Projects

The goal is to assign approximately one programming project per week. A project requires short reading up on topical knowledge, gathering information about your chosen language, and programming.


Pair Programming and Work Logs

All projects must be implemented via pair programming. Pair programming means that you do all things together. That is, you must choose a partner with whom you wish to work on projects asap. Each team must keep a work log of meetings, its purpose, and its accomplishments. You may switch partners after consulting with the course staff and discussing the work log together.


Programming Languages

For in-class demonstrations and discussions, I will use Scheme. The use of Scheme is a convenience (due to its concise notational nature), not a necessity. You should be able to follow with a modicum of Scheme knowledge. On rare occasions, I will provide short introductions to Scheme ideas for those students who wish to program in Scheme.

For projects, you are free to choose whatever language you wish to use. You may also switch languages over the course of the semester.

Since most projects are "scripting tasks" in modern parlance, you may wish to use Perl, Python, TCL/Tk, or other scripting languages that you know or wish to know. My favorite scripting language is Scheme. The readings give hints on what to read for various languages, but you're responsible to learn whatever you need to learn for your chosen language.


Notebook

You are to keep notes on the course in a bound notebook. Consider maintaining this notebook an exercise in keeping track of work and research for work. We will periodically review the notebooks on an ad hoc basis.


Grades

Grades are assigned based on project completion, (active/passive) participation in project presentations, and notebooks. Each project yields a grade of check+ [excellent work in all major and minor aspects], check [satisfactory in all major aspects], check- [lacking in major aspects], or 0 [missing]. For each presentation, each partner is assigned a separate grade, depending on performance.

If the need arises, I will give short in-class exams on reasoning techniques and tools. We will also conduct interviews, as needed.


last updated on Wed Apr 17 17:38:09 EDT 2002generated with PLT Scheme