UD Home
CIS Home
Search
Contact
Welcome Research Undergraduate Graduate Resources People

CISC 280: Program Development Techniques

Catalog Description:
Structure and interpretation of computer programs. Different paradigms (mind sets) that programmers use: procedural, functional, logic, and object oriented programming. Top down design, stepwise refinement, procedural abstraction, and information hiding concepts as applied to the program development process.

Current Texts:
Structure and Interpretation of Computer Programs
Abelson and Sussman
McGraw-Hill, 2nd Edition, 1996

Goals:
Have a good feel for the elements of style and aesthetics of programming. Have command of the major techniques for controlling complexity in large systems. Know how to build abstractions to hide details and to separate specification from implementation. Establish conventional inerfaces to allow the creation of standard, "mix and match" modules. Create new languages for describing a certain class of designs, emphasizing some things and downplaying others. Feel secure in reading and modifying large programs written in exemplary style. Be able to use modern approaches to dealing with time computationally (objects with state, functional programming, lazy evaluation, concurrency, nondeterminism).


Content:

  • Basic Concepts & Preface, Forward
  • Substitution model
  • Procedures and processes, repetition
  • Procedures as first class objects
  • Higher-order procedures
  • Symbolic data
  • Multiple representations
  • Generic operators
  • Mutable objects, state
  • The environment model of evaluation
  • Concurrency
  • Streams
  • Interprocess communications
  • Multiprocessing
  • The Metacircular Evaluator

Prerequisites: A minimum grade of C- in CISC 220 (Data Structures), and MATH 241 (Analytic Geometry and Calculus A).



Department of Computer & Information Sciences
103 Smith Hall | Newark, DE 19716
- email webmaster -