CS 115 - Introduction to Programming I
Syllabus
Description
An introduction to computer programming using the Scheme programming
language, a dialect of LISP. Topics include procedural abstraction,
recursion, algorithm analysis, data abstraction, program modularity,
object-oriented programming, mutable data and streams. This course
is the first in the recommended introductory programming sequence
for undergraduate majors.
Topics
- Basic Concepts
- functions
- abstractions
- structure
- algorithms
- interpreters and compilers
- computations and computers
- recursion
- Expressions and Procedures
- expressions
- naming and the environment
- lambda expressions
- compound expressions
- substitution model of evaluation
- conditional expresssions
- black box abstraction
- block structure and scope
- let expressions
- Designing, Testing and Debugging
- introduction
- input/output
- Performance Analysis and Probabilisitic Methods
- orders of growth
- types of recursion
- probabilistic methods
- Procedures Revisited
- procedures as parameters
- procedures as returned values
- Data Abstraction
- introduction
- pairs
- message-passing
- representing sets
- example: Huffman coding
- State
- assignment
- local state
- object-oriented programming
- environment model of evaluation
- mutable data
- Streams
- introduction
- higher-order procedures
- maps, filters
- nested mappings
- implementing streams
- infinitely long streams
- nested mappings over infinite streams
- modeling local state
L Ridgway Scott
1 Oct 1998