CSE 410 ETH: Special Topics: Interactive Programming Environments
UB Catalog information for CSE 410 ETH
This information is advisory only. The authoritative course description and requirements for a given semester are defined by the course syllabus.
Overview
Interactive programming environments encourage a conversational, evolutionary style of programming. Students will learn something about several interactive programming languages and environments, including Lisp, Smalltalk, and Forth. Previous special topics courses may have been on entirely different topics. Past offerings are listed below.
Offerings
Fall 2018, Spring 2025Current Offering: Spring 2025
Lecture | ETH: MWF 13:00–13:50, Norton 209 (Ethan Blanton) |
---|---|
Office Hours | TBD |
Prerequisites
Students are expected to be fluent programmers in several programming languages, and prepared to learn new programming languages with minimal direct instruction and access to language documentation. (CSE 220, CSE 250, Instructor approval.)
Text
There will be multiple required texts for this course, all of which are available online.
- INTERLISP: The Language and Its Usage, by Stephen H. Kaisler.
- Common Lisp: An Interactive Approach, by Stuart C. Shapiro.
- Squeak by Example, by Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, and Damien Pollet.
- Starting Forth, by Leo Brodie.
Students are expected to augment these readings with any necessary background material, and suggested resources will be provided throughout the course.
Policies
The ultimate authority for course policies is the course syllabus.
This course additionally adopts Ethan’s general academic integrity policy, which can be found here. His complete list of policies is here.
Topics
The topics to be covered in this course include:
- Interactive programming as a concept, including redefinition of functions, values, object structures, etc. during program execution or debugging
- The Lisp programming language family, including aspects of Common Lisp
- The Smalltalk programming language, as implemented by Squeak
- The Forth programming language in both ANS Forth and MUCK dialects
- Program development and debugging strategies
- Rapid development concepts
Course Structure
This course will be conducted in-person. Students are expected to attend lecture unless they have a University-approved reason to miss. Lecture participation will be a key part of student evaluation. Students must not attend if they have reason to believe that they may have a communicable infection or illness, with or without noticeable symptoms.
The primary deliverables for this course will be: * Lecture participation and attendance * Several small familiarization exercises for the environments under study * In-class presentations on interactive programming methodologies and environments * In-class presentations on individual/group progress and learning * A multi-week semester individual or small group project (details depending on enrollment numbers)
There will be no examinations in this course.
Students may find that they need to do additional exercises or exploratory programming related to the readings and programming environments in order to succeed, but these will not be evaluated or explicitly assigned.
Course Project
Every student will participate in a semester project, either individually or in a small group, which accounts for a significant portion of the course grade. As interactive programming environments vary in their friendliness to shared development, some strategies for code sharing and cooperative development may need to be explored for group work. Each individual student should expect that they will spend 70-100+ hours of effort on their group project, depending on circumstance, and the resulting product should reflect 400-level course effort for that sustained period of time.