Skip to main content

Search Bar Icon Close Menu

Master Syllabus

Print this Syllabus « Return to Previous Page

Administrative Unit: Computer and Mathematical Sciences Department
Course Prefix and Number: CISS 445
Course Title: Programming Languages
Number of:
Credit Hours 3
Lecture Hours 3
Lab Hours 0
Catalog Description: Survey and comparison of various programming languages and the concepts used in designing, specifying, and evaluating languages. Topics include formal specification, language constructs, translation, binding and binding times, and logic and functional programming. Prerequisite: CISS 350 or CISS 358.
Prerequisite(s) / Corequisite(s): CISS 350 or CISS 358.
Course Rotation for Day Program: Offered even Spring.
Text(s): Most current editions of the following:

Concepts of Programming Languages
By Sebasta, R. W. (Addison-Wesley)
Programming Language Pragmatics
By Scott, M. L. (Morgan Kaufmann)
Programming Language Design and Implementation
By Pratt, T. W. & M. V. Zelkowitz (Prentice Hall)
Course Objectives
  • To understand formal methods for describing language syntax, language design issues and tradeoffs, bindings and binding times, lexical analysis and parsing, and a wide variety of language constructs and associated implementation issues.
  • To explore a variety of languages including procedural, functional, and logic languages.
    Measurable Learning
  • Explain how language syntax is defined using formal methods such as Backus Normal Form (BNF), Extended Backus Normal Form (EBNF).
  • Identify the main issues and tradeoffs one must consider when designing new programming languages.
  • Identify the language constructs that must be addressed when designing new programming languages.
  • Explain how to perform lexical analysis and parsing.
  • Explain binding and binding times.
  • Identify the characteristics associated with procedural, functional, and logic programming languages.
  • Create programs using procedural, functional, and logic programming languages.
    Topical Outline:
  • Syntax, regular expressions, and grammars
  • Parsing, top-down, bottom-up, recursive decent
  • Compilation issues
  • Semantic analysis
  • Binding and binding times
  • Design issues and design tradeoffs
  • Control flow
  • Data types
  • subroutines and modularization
  • Functional and logic languages
  • Concurrency

    Recommended maximum class size for this course: 20

    Library Resources:

    Online databases are available at the Columbia College Stafford Library.  You may access them using your CougarTrack login and password when prompted.

    Prepared by: Paul Wiedemeier Date: February 14, 2005
    NOTE: The intention of this master course syllabus is to provide an outline of the contents of this course, as specified by the faculty of Columbia College, regardless of who teaches the course, when it is taught, or where it is taught. Faculty members teaching this course for Columbia College are expected to facilitate learning pursuant to the course objectives and cover the subjects listed in the topical outline. However, instructors are also encouraged to cover additional topics of interest so long as those topics are relevant to the course's subject. The master syllabus is, therefore, prescriptive in nature but also allows for a diversity of individual approaches to course material.

    Office of Academic Affairs


    Request info