Course Description s15
Total Page:16
File Type:pdf, Size:1020Kb
COURSE DESCRIPTION
Department and Course Number CSC 319 Course Coordinator: John Minor Course Title: Programming Languages Total Credits: 3
Current catalog Description: Design, evaluation and implementation of programming languages. Includes data types and data abstraction, sequence control and procedural abstraction, parameter passing techniques, scope rules, referencing environments and run-time storage management. Study and evaluation of a number of programming languages. Credits: 3. Prerequisite: CSC 219 and CSC 269.
Textbook: Sebesta, Robert; Concepts of Programming Languages (4th Edition); Addison- Wesley, 1999.
Course Goals: To show computer science students the principles that are involved in the design and implementation of programming languages, so that they can more intelligently select, learn and evaluate same.
Prerequisite by Topic
1. Machine organization and assembly-level programming 2. Standard data structures 3. Knowledge of some high-level languages (C++ at least)
Major Topics Covered by the Course
1. Evaluation Criteria, Language and Translation Terms (3 hours) 2. Comparison of Language Generations (3 hours) 3. Syntax and BNF Grammars (3 hours) 4. Typing, Scope and Lifetime Rules (6 hours) 5. Data, Data Structures and Their Implementation (6 hours) 6. Expressions, Precedence Rules, and Sequence Control (3 hours) 7. Procedural Abstraction and Parameter Passing (6 hours) 8. Subprogram Call/Return Implementation (3 hours) 9. Data Abstraction and Inheritance (3 hours) 10. Functional and other Language Models (6 hours) 11. Tests (3 hours)
Laboratory Projects
1. Design and implement a function in Lisp to count the non-nil atoms in a list. (1 week) 2. Design and implement a function in Lisp that returns the derivative of a fully-parenthesized, infix expression. (1 week) Estimate CSAB Category Content
CORE ADVANCED Concepts of programming languages 3
Oral and Written Communications
No significant component
Social and Ethical Issues
No significant component
Theoretical Content
Approximately 15% of the lecture time is spent on theoretical topics (algorithms, formal languages).
Analysis and Design
Please see under laboratory projects above.