Syllabus
CSCI 3675
Organization of Programming Languages
Fall 2000

Instructor:Karl Abrahamson
Office: Austin 233
Office hours: MWF 1:00-2:00, TTh 9:00-10:00, MW 8:00pm-8:30
Phone: 328-1879
Email: karl@cs.ecu.edu
Text: Concepts of Programming Languages: A Unified Approach by K. Abrahamson
Recommended Text: Programming Languages: Concepts and Constructs by R. Sethi
Course web page: www.cs.ecu.edu/~karl/3675/fall00/
My web page: www.cs.ecu.edu/~karl

Prerequisites

The prerequisite for this class is CSCI 3510 or an equivalent course in data structures. You should be familiar with at least one procedural programming language, such as C, C++ or Pascal. If you are not familiar with C++, please let me know.

Introduction

Programming languages are the notation in which programmers express their creations. It is said that natural language influences how people think. Whether or not that is true, it is certainly the case that programming languages strongly influence how programmers think.

This course explores different kinds of programming languages: their philosophies, structure, advantages and disadvantages. The student should come away with an appreciation for different forms of programming languages, as well as an ability to use different programming styles (regardless of the language used) when the need arises.

Grading

Grading will be on the basis of approximately nine fairly small programming assignments and possibly some homework exercises (35%), five quizzes (40%, counting only the four best quizzes) and a comprehensive final exam (25%).

Cutoffs for grades will tentatively by 90% for an A, 80% for a B, 70% for a C and 60% for a D. Those cutoffs will not be raised.

Course outline

This course will cover the following topics, though not in the order written.
  1. Data and data representation.
  2. Naming and scope issues.
  3. Functional programming languages. (Languages: Astarte and Scheme)
  4. Procedural programming languages. (Language: Astarte and C++)
  5. Logic programming langauges. (Languages: Astarte and Prolog)
  6. Object-based and Object-oriented programming languages. (Languages: Astarte and Java)
  7. How programming languages are implemented.
  8. Specifying Syntax.
  9. Describing semantics.
  10. Reasoning about programs.
  11. Types and type checking.
  12. Polymorphism and generics.

Students with disabilities

East Carolina University seeks to fully comply with the Americans with Disabilities Act (ADA). Students requesting accommodations based on a covered disability must go to the Department for Disability Support Services, located in Brewster A-114, to verify the disability before any accommodations can occur. The telephone number 252-328-6799.