3460:430/530  Theory of Programming Languages                                                                                                                                           Fall, 2005

Prerequisites:  3460:316

Instructor:  Chien-Chung Chan

Office:  CAS 228  Tel:  330-972-8014

e-mail:  chan@cs.uakron.edu  home page:  www.cs.uakron.edu/~chan

Office Hours:  T, W, R:  1:00 – 2:00 p.m. or by appointment

 

Teaching Assistant:  sk39@uakron.edu Office hours: T, R: 4 – 5 pm (in CAS lab 241) or by appointment.

 

Text:

Robert W. Sebesta, Concepts of Programming Languages, 7th. ed., 2005, Addison-Wesley.

 

Reference:

GNU Bison manual

 

Course Objectives:

1.  Study the underlying concepts of various constructs and capabilities of programming languages including an introduction to theory of formal languages.

2.  Study the impact of language features on software development methodologies.

3.  Study how to critically evaluate programming languages and their features.

 

Project Assignments:

There will be 5 - 6 programming projects in C/C++ and other high-level programming languages available on Linux.

Penalty for late project submissions is 10% per day contingency on the availability of the systems.  Grading policy will be announced in each assignment.

 

MidTerm Exam:  one closed book midterm exam.  Scopes and dates of exam will be announced one week in advance.

 

Final Exam:  comprehensive, closed book. 6:00 – 7:55 pm, December 15, 2005.

 

Grades:  the following is the weights for computing final grades.

MidTerm:  30%  Programs:  40%  Final Exam: 30%

A >= 90% , B>= 80%, C >= 70%, D >= 60%, F < 60%

Plus and minus grades may be assigned at my discretion based on class participation and/or performance.

 

All work turned in for a grade is to be exclusively the work of the student whose name appears on the work.  Any questions involving plagiarism will be handled as violations of the student honor code.

It is the policy of the University that no withdrawals are allowed after the 12th week of the semester.

 

Course Topics

 

1.  Introduction.  Evolution of programming languages

2.  Grammar and semantics

3.                             Imperative programming

4.  Data types

5.  Expressions and the assignment statement

6.  Statement-level control structures

7.  Subprograms and their implementation

8.  Data abstraction

9.  Object-Oriented programming

10.  Exception handling

11.  Functional programming

12.  Concurrent programming

13.  Logic programming

 

Program Grading Policy

 

1.  Program Correctness (70%)

No run-time errors and producing correct outputs.

2.  Style (20%)

Indentation, descriptive variable names, well-formatted outputs, readability of code, and limited use of global variables

3.  Documentation (10%)

(1)  Overall documentation

Programmer's name, user ID, date of creation, objectives of the program, input and output formats

Note:  A program without programmer's name and user ID will receive no credit.

(2)  Procedure/function documentation

Explain what a procedure does

Indicate global variables used in a procedure

Proper in-statement explanations