ITEC 680: Programming Languages
Prerequisite: ITEC 501 and ITEC 502, or Permission of ITEC Department
Credit Hours: (3)
Programming language constructs, run-time behavior of programs, desirable features of languages, design and implementation considerations to obtain those features.
Detailed Description of Content of Course
The purpose of this course is to expose the student to a wide variety of programming language facilities and features.
1. History of computing with focus on programming languages
2. Classification of programming languages
3. Desirable aspects of programming languages
4. Matching a programming language to an application
5. Language translation process
6. Formal specification of programming languages
7. Programming language characteristics
8. Information binding
9. Control structures
10. Data aggregates
11. Procedures and abstraction
12. Parameter passage techniques
13. Data abstraction
14. Specific programming languages as examples of language classes
15. Compiler construction
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. The course will focus on the concepts involved in many features of various programming languages, not focusing on mere syntax. 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.
Goals and Objectives of the Course
To provide students with an understanding of concepts underlying diverse types of programming languages, the goals of different languages, and how many languages meet - or fail to meet - those goals. Fundamental concepts in Programming Languages will be discussed in detail: typing, scoping, procedures, exception handling, concurrency. These concepts will be discussed in terms of how different languages support (or do not support) these concepts.
Assessment Measures
Assessment measures may include several programming assignments in a variety of languages and several exams.
Other Course Information
None

