King Fahd University of Petroleum and Minerals
Department of Information and Computer Science
ICS 313-02: Fundamentals of Programming Languages (3-0-3)
First Semester 1999-2000 (991)
Instructor: |
Dr. Talal Maghrabi |
Office: |
22-308 |
Phone: |
4216 |
E-mail: |
maghrabi@kfupm.edu.sa | ||||
Class Time: |
10:00 - 10:50 A.M. S. M. W. |
Room: |
24-137 |
Section: |
3 |
Office Hours: |
9:00-9:50 A.M. S. M. W. or by appointment by calling 3900. |
Catalog Description: Concepts of Programming Languages: Syntax and semantics, Data types, control structures, subprograms, exception handling, run-time storage management. Programming paradigms: Imperative, functional, logical, object-oriented and concurrent
Course Objectives: The objectives of this course are:
To introduce the basic concepts and design principles of programming languages
To expose the students to four major programming language paradigms and their features
To enable the precise understanding of programming language syntax and semantics through the study of different widely-used syntax and semantic description techniques.
To allow the student obtain a
first hand experience in using contemporary languages through programming
assignments.
Textbook: Concepts of Programming Languages, By. R. Sebesta, 1996, 3rd Ed.
Additional References:
Grading Policy:
Attendance & Participation |
05 % |
Quizzes (individual; best 3 of 4) |
15 % |
Homework Assignments (mainly non-Programming) |
10 % |
Two Programming Projects with Reports |
20 % |
Major Exam I (5th October 1999) |
15 % |
Major Exam II (13th November 1999) |
10 % |
Final Exam (Comprehensive) |
25 % |
Course Contents:
Material |
Topic |
# of Lectures (Tentative) |
Chapters 1 & 2 |
Introduction Motivation for studying programming languages. Evolution of the major programming languages. |
2 |
Chapter 3 |
Description of Syntax and Semantics Formal Methods of Describing Syntax. Major Approaches for the Description of Semantics of Programming Languages. |
3 |
Homework Assignment # 1 |
||
Chapters 4 – 9 |
Basic Concepts and The Imperative Paradigm Naming and Binding: Names, Bindings, Type Checking, and Scopes Data Types Expressions and the Assignment Statement Statement Level Control Structures Subprograms Implementing Subprograms |
9+1 |
Major Language: C Quiz # 1 Homework Assignment # 1 Major Exam # 1 |
||
Chapters 10, 15 |
The Object-Oriented Paradigm Abstract Data Types Inheritance and Polymorphism Message Passing |
10 |
Major Language: Java Quiz # 2 Programming Assignment # 1 |
||
Chapters 12, 13 |
The Functional Paradigm Functions Composition Functionals Exception Handling |
9 |
Major Language:< to be decided> Quiz # 3 Major Exam # 2 Programming Assignment # 2 |
||
Chapter 14 |
The Logic Programming Paradigm Predicate Calculus Theorem Proving Horn Clauses and Unification |
8 |
Quiz # 4 Homework Assignment # 3 |
||
Chapter 11 |
Concurrency Threads Statement level versus Subprogram level concurrency |
1 |
Additional |
Additional Topics Persistence. Constraint, Scripting and Pattern Programming Languages. |
1+1 |
Additional Notes
Attendance is taken at the beginning of the class.
Official excuse for any absence of a class must be presented not later than one week after that class.
Missing nine classes will result in a 'DN' grade in the course.
Homework and programming assignments must be in class on the due date.
Tips to the Student:
In order to do well in this course the following points are to be noted and considered in your planning: