CS 363 Comparative Programming Languages
Prerequisite: Grade of C or better in CS 262
Catalog description: Key programming mechanisms
described independently of particular machines or languages including control,
binding, procedural abstraction and types.
Systematically surveys diverse high-level language capabilities.
Prof. Elizabeth White
Materials related to this class will be available on blackboard
Textbook: Programming Language Pragmatics,
M. Scott, 3rd edition, Morgan-Kauhmann, 2009.
This class will cover theoretical foundations of features
found in modern programming languages.
of programming languages
and semantics representation,
- Names, bindings and scope,
- Data and Control,
- Types and Type Systems,
- Procedural Abstraction,
approaches such as imperative, object-oriented, functional logic based and scripting programming languages.
At the end of this course, students should
- be able to read and use formal representations of programming language syntax.
- understand, in a language independent way, basic programming language components
such as variables, types, expressions, scope and control flow and see the choices made
for these components by common languages.
- have an understanding of runtime procedure/function control and data flow
- have a basic understanding of the major programming language paradigms
(imperative, OO, functional, logic), including relevant application domains, strengths and
- have an understanding of the fundamentals of concurrent programming and the language-level constructs that used in concurrent programming.
- gain basic programming competence in several different types of programming
languages, facilitating transition to other current (and future) languages encountered
during their professional career.
Assignments (4 @ 10% each)
class will require you to write programs in several different programming
- Homeworks (10%)
- Exams: Exam 1 (15%), Exam 2 (15%) and Final (20%)
- Programming assignments are to be individual efforts, meaning no sharing of code or
discussion of problem solution allowed with anyone but me.
- Late policy:
- One day: 10% deduction
- Two days: 30% deduction
- Three days: 50% deduction
- More than 3 days - no credit
- You must turn in a working version of all programming assignments to pass the class (even if it receives no credit).
You are expected to abide by the honor code. Programming assignments and
exams are individual efforts. Information on the university honor code
can be found at:
This semester I will probably be using similarity detection software to
assist me in finding honor code violations, should they occur.
- Intro and brief history of PL (0.5 weeks)
- Programming language syntax (1 week)
- Programming language constructs - Names, binding, scope, control flow, types (5 weeks)
- Functional programming (1.5 weeks)
- Logic Programming (1.5 weeks)
- Scripting Languages (1 week)
- Concurrency (2 weeks)