Fall Term, 2003
Course Outline |
Assignment Weightings |
Percentage Conversions |
| Instructor: Dr. Jonathan Mohr | |
| Office: N104 | Phone: 679-1514 |
| Office Hours: click here | E-mail: mohrj@augustana.ca |
Principles of language design. Abstraction. Syntax and parsing. Operational semantics (declaration, allocation, evaluation, run-time environment, typing, activation). Programming language paradigms (procedural, object- oriented, functional, logic programming).
See also the Calendar descriptions of all Augustana Computing Science courses.
A language that doesn't affect the way you think about programming is not worth knowing. -- Unix fortune
The lecture component of this course will present the principles of programming language design and the mechanisms of programming language implementation by means of a modified chronological survey of significant programming languages, with emphasis on the new concepts and problems presented by each. The chronology is modified slightly to allow us to discuss selected languages in class prior to their use in the lab portion of the course.
The lab portion of the course will consist of two programming assignments in each of the languages LISP and Prolog plus two sets of exercises. LISP and Prolog have been selected as representatives of the functional and logic-programming paradigms, respectively. Important features of these languages will be highlighted in the lab period each week. However, it is the student's responsibility to become sufficiently familiar with the details of the syntax, semantics, style, and idioms of each language in order to complete the assignments.
Bruce J. MacLennan, Principles of Programming Languages: Design, Evaluation, and Implementation, 3e (Oxford, 1999).
Winston and Horn, LISP, 3e (Addison-Wesley, 1989 [reprinted 1993]).
Covington, Nute, and Vellino, Prolog Programming in Depth (Prentice-Hall, 1997).
The first textbook listed is required. The LISP and Prolog books are strongly recommended; material from them will be included on the exams. However, if you already have (or have access to) copies of other introductory or reference books pertaining to LISP or Prolog, you are welcome to use them instead. Only about the first half of each language reference book will be relevant to this course; the course outline indicates which chapters should be read thoroughly when each language is being studied in the lab sessions of the course.
In accordance with Augustana's policy on attendance and course work, any student who has an inordinate number of absences in a course or who neglects his/her academic work may be suspended from the course (which includes being refused permission to attend class sessions, submit assignments, and write examinations, including the final examination).
In this course, any student missing more than two class or lab sessions or failing to submit more than one assignment may be suspended from the course.
A suspended student will be notified of the suspension by e-mail and by paper mail addressed to the student's assigned campus mailbox. It is the student's responsibility to arrange a meeting with the instructor to discuss the terms under which the suspension may be lifted.
A more complete list of rules which will apply in this course and some suggestions for active learning are specified in Expectations Regarding Attendance and Course Work.
Grades will be awarded using the Alberta-wide standard alpha four-point grading system. For assignments marked in percent, the percent/grade equivalents in this course will be approximately as indicated in the following table:
| Alpha Grade | Percentage Range |
|---|---|
| A+ | 90 - 100 |
| A | 85 - 89 |
| A- | 80 - 84 |
| B+ | 77 - 79 |
| B | 73 - 76 |
| B- | 70 - 72 |
| C+ | 67 - 69 |
| C | 63 - 66 |
| C- | 60 - 62 |
| D+ | 55 - 59 |
| D | 50 - 54 |
| F | 0 - 49 |
Your performance will be evaluated through four programming assignments, two exercise sets, a mid-term exam, and a final exam. Class attendance and participation (including preparation) will also be assessed.
Assignments are due on the due date stated in the course outline and on the assignment specification at the time specified. In general, written assignments will be due at the start of the class session (10:50 a.m.) and lab assignments will be due by midnight of the due date. Late submissions will be accepted with a penalty of 1% per hour or portion thereof.
The weighting of exams, written assignments, and programming assignments will be as follows:
| Programming assignments | 40% | |
| Exercises | 10% | |
| Mid-term exam | 15% | |
| Final exam | 35% |
The four programming assignments will be weighted at 10% each. The exercise sets will be weighted at 5% each.
The approximate dates on which the various topics of the course will be presented, along with an indication of which chapters or sections of the textbook are to be read in connection with each topic, are given in the accompanying course outline.
The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Code of Student Behaviour and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University.
All work submitted for grading must be your own, unless a group of students have arranged with the instructor in advance to complete a given assignment as a group project. Programs that appear to be the same, to have been derived from a common source, or to have been fraudulently obtained or created by any means will be given a failing grade.
Some of the practices which are regarded as inappropriate academic behaviour (academic dishonesty) are:
Students are encouraged to assist one another in completing assignments, especially by explaining concepts to each other, by helping one another to learn the use of system utilities and programming environments, and by assisting each other in locating bugs. However, in order to avoid inadvertently becoming involved in a case of academic dishonesty (for example, when another student submits a program which is suspiciously similar to yours), you are advised to:
NOTE: Policy about course outlines can be found in §23.4(2) of the University Calendar.
Course Materials Index |
Top of this Document |
Instructor
Contact Information |