COSC 152 Programming Languages

Fall 2005


Lectures:
MWF 1:00PM - 1:50PM Cudahy 137
Office Hours:
Course instructor
  Prof. Dennis Brylow   Mon 3:00PM - 4:00PM Cudahy 380
Tue 4:00PM - 5:00PM Cudahy 380
Wed 2:00PM - 3:00PM Cudahy 380

Textbooks:
Essentials of Programming Languages. Second Edition. Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes. MIT Press.
The Little Schemer. Fourth Edition. Daniel P. Friedman and Matthias Felleisen. MIT Press.
We will make our way quickly through all of The Little Schemer during the first few weeks. It is a quick read, and an excellent introduction to both functional programming style and the Scheme dialect for beginners.
Essentials of Programming Languages is, at best, a terse book. I have chosen it because the interpreter project at the core of this book is first class (no pun intended,) and I know that together we can make our way through the dense verbiage contained therein. I will assign many of the problems contained in EOPL, and others may make excellent exam questions.

Course Outcomes:
Upon completing this course, students will be able to:
  • Think competently in the functional programming paradigm;
  • Express how the functional paradigm compares and contrasts with the other major programming paradigms, particularly the more commonly used imperative paradigm;
  • Appreciate the power and limitations of modern programming languages, and understand how language choice impacts implementation issues;
  • Understand the major components of an interpreter;
  • Work together in teams on a substantial software implementation project.

  • Grading Policy:
    Homework 60%
    Exam #1 10%
    Exam #2 10%
    Exam #3 20%
  • Students must pass BOTH the exam portion of the grade AND and homework assignment portion of the grade to pass the course overall.
  • Assignments are to be completed individually, except when specifically noted otherwise. You may discuss course topics with your collegues, but written work and programmed code is not to be shared.
  • Academic dishonesty (claiming another person's work as your own) will not be tolerated. Infractions will result in immediate failure of the course, and referral to the Dean's office.
  • If you are not certain what constitutes fair play and what will be considered academic dishonesty, please ask the instructor.

  • Schedule:
    Week Topics Readings Demos Assignments
    01 Introduction, Scheme TLS Ch 1,2
    02 Scheme TLS Ch 3 Lec4.scm Lec5.scm HW #1 - Scheme
    03 More Scheme TLS Ch 4,5 Lec5.java Lec7.scm HW #2 - Scheme
    04 Even More Scheme TLS Ch 6,7 Lec8.scm HW #3 - Yeah, More Scheme
    05 Data Abstraction, Induction EOPL Ch 1, 2 Lec12.scm HW #4 - Environments
    06 Interpreters EOPL 3.1 Exam #1
    07 Front End EOPL 3.2 Lec17.scm Lec20.scm
    08 Conditionals
    Midterm Break
    EOPL 3.3 HW #5 - Simple Interpreter
    09 Local Binding
    Midterm Grades
    EOPL 3.4 HW #6 - Conditionals
    10 Procedures, Recursion EOPL 3.5, 3.6 Lec25.scm HW #7 - Binding and Closures
    11 Variable Assignment EOPL 3.7 HW #8 - Recursion
    Exam #2
    12 Types, Type Checking
    Drop Day
    EOPL 4.1, 4.2
    13 Abstraction Boundaries
    Thanksgiving Break
    EOPL 4.3
    14 Type Inference EOPL 4.4 HW #9 - Statements and Assignment
    15 Continuation Passing Style EOPL Ch 7,8 HW #10 - Type Checker
    The instructor reserves the right to adjust this schedule as necessary.

    Back
    [Revised 2005 Aug 31 12:27 DWB]