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.
- Data and data representation.
- Naming and scope issues.
- Functional programming languages. (Languages: Astarte and Scheme)
- Procedural programming languages. (Language: Astarte and C++)
- Logic programming langauges. (Languages: Astarte and Prolog)
- Object-based and Object-oriented programming languages.
(Languages: Astarte and Java)
- How programming languages are implemented.
- Specifying Syntax.
- Describing semantics.
- Reasoning about programs.
- Types and type checking.
- 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.