Official Course Syllabi

advertisement
ITEC 380
ORGANIZATION OF PROGRAMMING LANGUAGES
A.
Catalog Entry
ITEC 380. Organization of Programming Languages.
Three hours lecture (3).
Prerequisites: ITEC 320 and ITEC 324.
Programming language constructs, run-time behavior of programs, desirable
features of languages, design and implementation considerations to obtain those
features.
B.
Detailed Description of Content of Course
Topics include:
1. History of programming languages
2. Brief survey of programming paradigms
3. Functional languages, and functions as values
4. Declarative, non-algorithmic languages
5. Declaration models (binding, visibility, scope, and lifetime)
6. Writing recursive function over recursive data (lists, trees)
7. Parsing (concrete and abstract syntax, abstract syntax trees)
8. Application of context-free grammars in recursive-descent parsing
9. Assigning semantics to a parse tree
C.
Detailed Description of Conduct of Course
A variety of languages will be presented to demonstrate the range of features
which can be found in modern programming languages. Students will develop
programs in several languages to foster this understanding. Comparisons of
features and their interactions with one another will also demonstrate the
intricacies of language design. Students may be required to make an in-depth
group study of a particular language. Formal and informal in-class writing and
problem-solving exercises may also be required.
D.
Goals and Objectives of the Course
Students who complete the course will be able to:
1. Describe the salient characteristics of several language paradigms
(procedural, object-oriented, imperative, declarative/logic, functional), and
write small programs in each paradigm.
2. Distinguish between syntactic issues and semantic issues in programming
languages, use formal techniques (such as BNF) in the specification of
language syntax and the construction of language parsers, and explain and
modify code that assigns semantics to parse trees.
3. Describe, and discuss the effects of, different forms of variable binding,
scoping, and lifetime.
4. Define type safety, static and dynamic typing, explicit and implicit type
declarations and coercions, and function types; and describe their roles in
program development.
E.
Assessment Measures
The students will be given several programming assignments in a variety of
languages. At least 1 in-class exam and the final exam will also be used to assess
students' progress.
F.
Other Course Information
None
G.
Review and Approval
DATE
October 1, 1991
May 12, 1994
October 30, 1996
October 13, 2000
Sept. 25, 2001
ACTION
Updated for 1991-92
Reviewed for 1994-95
Prerequisite change
Updated
Updated
APPROVAL
Ivan B. Liss, Chair
Edward G. Okie, Chair
Edward G. Okie, Chair
John P. Helm, Interin Chair
John P. Helm, Chair
Download