CS 365 Programming Languages (3 hours credit)
The focus of this course is on
language paradigms (procedural, functional, object-oriented, logic),
language design and implementation issues and language issues related to
parallelism. The intent is not
to teach many different programming languages, but rather to
help the student
- become familiar with the major structures
found in programming languages,
- be able to evaluate programming
languages for their quality and applicability to particular problems, and
- to design well-engineered languages.
Hence, the course is structured as a series of case studies
investigating examples of the major programming language generations.
Prerequisites:
CS302
and some experience with the design and implementation of large
software projects. Familiarity with basic data structures such as
linked lists and stacks is
assumed (contact
M. Berry
if you have concerns about your background for this course).
Film Schedule:
Three films from the PBS series
Nerds 2.0.1: A Brief History of the Internet
will be shown during the semester. The schedule and location
of these films (shown during regular class periods,
11:10am-12:25pm) is listed
below. Attendance is mandatory.
| Title |
Date |
Location |
|
Vol. I: Networking The Nerds
|
9/23 |
Hodges Lib. Aud. |
|
Vol. II: Serving The Suits
|
10/19 |
Hodges Lib. Aud. |
|
Vol. III: Wiring The World
|
12/2 |
Hodges Lib. Aud. |
|
Textbook:
Principles of Programming Languages: Design, Evaluation
and Implementation (Third Edition) by
Bruce J. Maclennan,
Oxford University Press, © 1999.
List of Topics:
- Goals; Pseudo-code Interpreters
- First Generation (FORTRAN)
- Second Generation (Algol-60)
- Second Generation: Syntactic Issues (Algol-60)
- Third Generation (Pascal)
- Runtime Implementation of Modern Languages
- Fourth Generation (Ada)
- Fifth Generation: Functional Programming (LISP)
|