Course Description s15

Total Page:16

File Type:pdf, Size:1020Kb

Course Description s15

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.

Recommended publications