Faculty of Informatics & Communication Engineering
Course: Programming Languages (PL)
|
Code: SWE315
|
Semester: Fall 2011
|
Credit hours: 3
|
Theoretical: 3
|
Practical: 0
|
Prerequisites: Computational Theory (CTH), Algorithms and Data Structures (ADS)
|
Course Description: This course covers the following topics: programming languages syntax, names, types, semantics, functions, memory management and functional programming languages.
Course Objectives
At the end of this course, students are expected to learn:
-
How to describe the syntax of a programming language
-
How to specify the identifiers names of a programming language and the essentials concepts related to them (binding, scope, lifetime, …)
-
The type systems of programming languages: basic types (int, float, …) and complex types (struct, array, union, …)
-
The semantics of the essential constructs of a programming language (assignment, loops, expressions, exceptions, …)
-
Concepts related to functions like functions call and returns, parameters passing mechanisms, activation records and runtime stack, …
-
Memory management in programming languages: dynamic arrays allocation and garbage collection
-
Programming languages paradigms: imperative, OO, logic, functional. The course concentrates on functional programming languages (like Scheme) because other paradigms are seen in other courses.
Textbook : Programming languages: principles and paradigms, Tucker and Noonan, 2nd edition.
Suggested references:
Course Plan:
Week
|
Topic
| Textbook Sections |
1
|
Introduction to programming languages principles, paradigms, and history
|
Chapter 1
|
2
|
Syntax concepts
|
Chapter 2
|
3
|
Lexical and syntactical analysis
|
Chapter 3
|
4
|
Names concepts
|
Chapter 4
|
5
|
Types concepts
|
Chapter 5
|
6
|
Type systems
|
Chapter 5
|
7
|
Semantics concepts
|
Chapter 7
|
8
|
Semantic interpretation
|
Chapter 7
|
9
|
Mid-term Exam
|
10
|
Functions concepts
|
Chapter 9
|
11
|
Functions implementation
|
Chapter 9
|
12
|
Memory management
|
Chapter 11
|
13
|
Functional programming (Scheme)
|
Chapter 14
|
14
|
Functional programming (Scheme)
|
Chapter 14
|
15
|
Exercises and Review
|
|
16
|
Final Exam
|
Grading Policy:
Quizzes, Homework, and Projects: 30%
Mid-Term Exam: 30%
Final Exam: 40%
Instructors' Information
Name: Signature:
Dr. X Y
Coordinator's Name:
Signature:
Share with your friends: |