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