Course Overview

Course description (taken from the 2005-2006 undergraduate supplemental calendar):

The topic of programming languages is an important and rapidly changing area of computer science. This course introduces students to the basic concepts and terminology used to describe programming languages. Instead of studying particular programming languages, the course focuses on the "linguistics" of programming languages, that is, on the common, unifying themes that are relevant to programming languages in general. The algorithmic, or procedural, programming languages are particularly emphasized. Examples are drawn from early and contemporary programming languages, including Fortran, Algol 60, PL/I, Algol 68, Pascal, C, C++, Eiffel, Ada and Java.

This course is not designed to meet the needs of the student who wishes to learn to program in a particular programming language. However, any student who completes this course should be able to learn any new programming language with relative ease.

Topics may include the following.
  • Classification of programming languages: language levels, language generations, language paradigms. 
  • Programming language specification: lexical, syntactic, and semantic levels of language definition. 
  • Data, data types, and type systems; simple types, structured types, type composition rules. 
  • Control primitives, control structures, control composition rules. 
  • Subprograms: functions and procedures; argument-parameter binding; overloading. 
  • Global program structure: modules, generic units, tasks, exceptions. 
  • Object-oriented language features: classes, encapsulation, inheritance, polymorphism. 
  • Critical and comparative evaluation of programming languages.
Course Prerequisites:
  • General prerequisites including CSE 2001 3.0
  This page maintained by Bill Kapralos
Send and questions or comments to billkATcs.yorku.ca (replace "AT" with "@")
Last modified: Wednesday July 12 2006