CIS 425 Spring 2007
Principles of Programming Languages
CRN 31262
[
Details |
Objectives |
Honesty |
Syllabus |
Assignments |
Programming Guide |
Announcements
]
Last updated 2007/04/30 14:12:47
- Class Times
- Lecture: MW 12:00 - 1:20, 260 Deschutes
- Discussion: Thursday 11:00 - 11:50, 260 Deschutes
-
Instructor: David Atkins
- Office: Deschutes 358, 346-4413
- Office Hours: 2:00-3:00 MW, and by appointment
- Email:
datkins@uoregon.edu
- Reference Material
- Required Text:
Programming Languages - Principles and Practice, 2nd Edition,
by Kenneth Louden, Thomson, 2003. [Available at the bookstore and on reserve
in the Science Library]
- Optional Text:
Elements of ML Programming, by Jeffrey Ullman, Prentice Hall, 1997.
[May be available at the bookstore, on reserve in the Science Library]
Good reference for ML programming.
- Another good reference:
Concepts of Programming Languages, 6th Edition,
by Robert Sebesta, Addison Wesley, 2002. [5th edition on reserve in the Science Library]
I have used this book before and it has clear explanations. There is now a
seventh edition of the book.
- Some C++ References
-
The Design and Evolution of C++, by Bjarne Stroustrup, Addison Wesley, 1994. [On reserve in the Science Library]
Narrative of issues in real world language design.
- The C++ Programming Language, Bjarne Stroustrup, Addison-Wesley, 2001.
Useful online excerpt from the book: A Tour of C++.
- The Annotated C++ Reference Manual, Ellis & Stroustrup, Addison-Wesley, 1990.
- ...and hundreds of other books on C++...
- Some online C++ references:
Operator syntax and precedence,
Operator overloading,
Templates
- Grading and Policy
- Approximate weighting: Assignments 25%, Midterm 30%, Final 35%, 10% quizzes and class/discussion participation/attendance
-
The primary objective of this course is to become familiar with the
properties of programming languages in general and examine some of
these concepts for specific languages. The main categories of languages
will be covered along with the characteristics that distinguish them from
each other. These categories include imperative, object oriented, functional,
and logic languages; in each category we will examine one or more example
languages. This course is not intended to make you an expert in all of these
languages, but you will get to see some languages and programming paradigms
that you may not have seen before, and will develop the ability to quickly
assess and learn new languages.
Some time will also be spent discussing practical constraints on
programming language design. We will also take a look at an example of a
"small" language designed for a specific application domain.
-
All assignments turned in for the course must be your own work.
Copying from other class members or other sources
is not acceptable. If you collaborate with someone else
on any assignment, you must indicate such on the work you turn in,
and partial credit may be given.
-
Academic honesty is expected and cases of suspected dishonesty will be handled
according to university
policy. In particular, copying someone else's work (including material
found on the web) will not be tolerated. If solutions to assignments are
obtained from outside sources, the source must be cited.
-
You are also responsible for protecting your work. That is, you must
take reasonable precautions to prevent your work from being copied.
Last updated 2007/04/30 14:12:47