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 2025

Current 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.

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.

Avatar
Ethan Blanton
Assistant Professor of Teaching

Ethan Blanton is an Assistant Professor of Teaching in the Department of Computer Science and Engineering at the University of Buffalo.