CIS 425 Winter 2004
Principles of Programming Languages
CRN 21193
[
Details |
Objectives |
Honesty |
Syllabus |
Assignments |
Announcements
]
Last updated 2004/01/04 14:03:12
- Class Times
- Lecture: MWF 9:00 - 9:50, 102 Deady
- Discussions:
- Monday 4:00 - 4:50, 330 Condon
- Friday 4:00 - 4:50 ,202 Cascade
-
Instructor: David Atkins
-
GTF: Aaron Bohannon
- Reference Material
- Required Text:
Programming Languages - Principles and Practice, 2nd Edition,
by Kenneth Louden, Thomson, 2003. [Available at the bookstore]
- Optional Text:
Elements of ML Programming, by Jeffrey Ullman, Prentice Hall, 1997.
[Available at the bookstore and on reserve in Science Library]
Good reference for ML programming.
- Another good reference:
Concepts of Programming Languages, 5th Edition,
by Robert Sebesta, Addison Wesley, 2002. [On reserve in the Science Library]
I used this book last year and it has clear explanations. There is now a
sixth 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. [Second Edition on reserve at Science Library]
Useful online excerpt from the book: A Tour of C++.
- The Annotated C++ Reference Manual, Ellis & Stroustrup, Addison-Wesley, 1990.
[On reserve at the Science Library]
- ...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
-
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 (not on your team) on any
assignment, you must indicate such on the work you turn in,
and partial credit may be given.
-
The exception to the above is that you may work on assignments in teams of two.
If you are working as a team, both team members' names must be clearly indicated
on the work turned for proper credit to 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.
datkins@cs.uoregon.edu
Last updated 2004/01/04 14:03:12