You are on page 1of 2

Course Description:

This course is an introduction to the broad field of programming languages. It combines


a general presentation of principles with considerable detail about many modern
languages, including some of the newest functional and object-oriented programming
languages. Design and criticism of programming languages is also covered.

Textbook:
Kenneth C. Louden, “Programming languages: principles and practice”, Second edition,
Thomson, Brooks/Cole

Contents (tentative):
Topics No. of Weeks
Introduction Week 1
History Week 2
Language design principles Week 3
Syntax Weeks 4, 5, 6
Basic semantics Weeks 7, 8, 9
Data types Week 10
Control1: expressions and statements Week 11
Control2: Procedures and Week 12
environments
Abstract data types and modules Week 13
Functional programming Weeks 14, 15

Assessment
Assignments/Project: 30%
Exams: 30%
Final: 40%

Objectives

 Understand the constructs found in modern programming languages with


attention to design trade-offs and implementation considerations.

 Be able to differentiate between programming paradigms

 Understand basic programming language semantics.

 Practical experience with non-imperative languages

Outcomes

 Evaluate modern, representative programming languages critically


 Choose a suitable programming paradigm and language for a given problem or
domain
 Define syntax of a small context-free grammar in BNF and EBNF
 Recognize major programming languages
 Explain the stages of programming language interpretation and compilation
 Explain design concepts, design alternatives and trade-offs, and implementation
considerations.

You might also like