CS471 Programming Language Structure I: Syllabus

Course summary

Course title

Programming Language Structure I

Course number

CS471

Course discipline

Software and Programming

Course description

This course presents an analysis of computer languages from a conceptual point of view. There are relatively few concepts which all computer languages have and most have them in common. The differences among them are mostly in their syntax and their model of computation, or their programming methodology. We will examine the basic concepts as they arise in a variety of different languages, and discuss how the implementation of the concepts affect their usage as programming tools. When a major language is discussed, a language system that works in our domain will be used to help the discussion.

Course date

January 10, 2002 through May 2, 2002

Location

Science Hall 113

Meeting day(s)

TTh

Meeting time(s)

2:35 to 3:50 pm.

Prerequisite(s)

CS370, CS371

Instructor

Name

Roger Hartley

Email

rth@cs.nmsu.edu

Office location

Science Hall 123

Office hours

By appointment only

Phone

646-1218

Biography

Dr. Hartley is Department Head of Computer Science and has been teaching for 27 years, the
last 17 of which were at NMSU.

Teaching assistants

Emad Hussein, 646-6152. Science Hall room 149 (email emsaad@cs.nmsu.edu.)

Course Goals

To become familar with the major paradigms among programming languages. To be able to
read and understand the major constructs of FORTRAN, Pascal, Algol, C, C++, Java, Smalltalk,
Lisp, ML, and Prolog.

Textbook

Required reading

Concepts of Programming Languages, Robert Sebesta, Addison Wesley, 5th. Edition, 2001.
(4th. Edition OK), 0-201-75295-6

Grading

There will be a mid-term test and a final examination. Both exams will be closed-book. The final will cover material discussed in class since the mid-term. There will also be a number of homework assignments (four or five) taken from the exercises in the textbook, or from other material. The proportion of credit is as follows:

Test 1: 20%
Final: 30%
Homework: 50%

My grading is always flexible, but justice will also be done! The penalty for late work is that
it receives a maximum C grade, at the instructor's discretion. The first day of exam week is the last day for handing in work for credit.

Topic List, by week number

[1] Introduction: models of computation, real and virtual machines, taxonomy of languages. The
major languages.

[2] Description methodologies: syntax, semantics, pragmatics.

[3, 4] Elements of programming languages: expressions, functions, declarations, values,
recursion, scope, types.

[5, 6] Subprograms: environments and stores, parameter passing.

[7] Implementing subprograms: activation records, block structure, dynamic scoping. First test
on material from weeks 1-7.

[8] Encapsulation: ADTs, modules and information hiding, classes in C++. Java.

[9] Object-oriented languages: methods and messages, inheritance.

[10, 11] Functional programming: Scheme and Lisp, list processing, ML and type checking.

[12, 13] Logic programming: Prolog. Relations and declarative programming, backtracking goal
evaluation.

[14, 15] Exceptions. Concurrency: semaphores, monitors, rendezvous in Ada.

[16] Review

[17] Final examination.

Policies

Policies regarding academic conduct are stated in the NMSU Student Handbook. Any violations of the code as stated in the handbook will result in a grade of F for the course in addition to any further sanctions imposed by the university.

Accomodations for disabilities that may interfere with your academic progress are handled through Services for Students with Disabilities (646-6840) in Garcia Annex, Room 102. Current documentation is required to receive services.