The University of Western Ontario
London, Canada

Department of Computer Science

CS 342a -- Organization of Programming Languages

Course Outline -- FALL 2005

COURSE DESCRIPTION

This course studies the concepts used in the specification and analysis of modern computer programming languages. The topics include: programming language syntax, compilation and interpretation, bindings and access structures, type systems, and mechanisms for data abstraction and control abstraction.

Support for different programming styles shall be presented, including support for functional programming, object-oriented programming, and rule-based programming.

These concepts are illustrated through the use of specific programming languages. Examples will make heaviest use of Scheme, C++, Java and XSLT. Other programming languages may be used for illustrative purposes, including Common Lisp, C#, Haskell, Smalltalk, Fortran 95 and Prolog.

Students will be evaluated on the basis of assignments, a mid-term test and a final examination.

PREREQUISITES

One of the following combination of courses:

Students must also be familiar with the C programming language in a Unix environment.

SE 352a/b is an antirequisite for this course. You may not receive credit for this CS 342 if you have taken SE 352a/b.

Unless you have either the requisites for this course or written special permission from your Dean to enroll in it, you will be removed from this course and it will be deleted from your record. This decision may not be appealed. You will receive no adjustment to your fees in the event that you are dropped from a course for failing to have the necessary prerequisites.

INSTRUCTOR

TEACHING ASSISTANTS

The names and contact information of the course teaching assistants (TAs) will be posted on the web site once this information is available. A TA consulting schedule will be posted there as well.

E-MAIL CONTACT

You may contact the course instructor or TAs via e-mail with brief questions regarding lecture material or clarification of assignments. However, please first check the course website for answers to frequently asked questions, or to see if the information is already there, before e-mailing the instructor. Include "CS342" in the subject line or your e-mail may treated as spam.

We will occasionally need to send e-mail messages to the whole class, or to students individually. E-mail will be sent to the UWO e-mail address assigned to students by Information Technology Services (ITS). It is each student's responsibility to read this e-mail on a frequent and regular basis, or have it forwarded to an alternative e-mail address if preferred. See the ITS website for directions on forwarding e-mail.

However, you should note that e-mail at ITS (your UWO account) and other e-mail providers such as hotmail.com or yahoo.com may have quotas or limits on the amount of space they can use. If you let your e-mail accumulate there, your mailbox may fill up and you may lose important e-mail from your instructors. Losing e-mail that you have forwarded to an alternative e-mail address is not an excuse for not knowing about the information that was sent.

COURSE WEB SITE

The CS 342 web site is http://www.csd.uwo.ca/courses/CS342a. Lecture notes, assignments, and class information will be posted on this website. You are responsible for keeping up-to-date with the information posted on this site.

LECTURES

Lecture times

Lectures are held in MC 316.

Lecture Notes

Students are responsible for taking their own lecture notes.

Copies of the transparencies used in class will be posted on the course web site. These are merely visual aids used in the lectures, and do not capture all of the lecture itself. Students who do not attend class will miss required material that may be necessary for assignments or tests.

Lecture Topics

TEXTBOOK

Concepts of Programming Languages, Seventh Edition, by Robert W. Sebesta (Addison Wesley 2005).

COMPUTING FACILITIES

The assignments for this course must be completed on the Computer Science Department senior undergraduate computing facility, GAUL. Each student will have access to an account on GAUL. In accepting the GAUL account, a student agrees to abide by the department's Rules of Ethical Conduct.

Note:  After-hours access to certain Computer Science lab rooms is by student card. If a student card is lost,  a replacement card will no longer open these lab rooms, and the student must bring the new card to a member of the Systems Group in Middlesex College Room 346.

STUDENT EVALUATION

If for any reason the assignment schedule given below cannot be adhered to, the assignment marks will be pro-rated. (The three assignments are together worth 30% of the overall mark for the course. If an assignment has to be cancelled for any reason, the remaining assignment weights will be adjusted to add up to 30%.)

Assignments, tests and exams may be subject to submission for similarity review by software that will check for unusual coincidences in answers or answer patterns that may indicate cheating.

To obtain a passing mark in the course, students must obtain at least 50% on the pro-rated Midterm and Final portion of the evaluation (i.e. 35% of the possible 70%).

TEST AND EXAM SCHEDULE

There will be no makeup Midterm Exam, except for students granted a Special Midterm Exam for religious reasons. These students must have notified the course instructor and filed documentation with their Dean's office at least 2 weeks prior to the Midterm Exam.

If you miss the Midterm Exam for any other reason, and present valid documentation to the Dean's office, your Final Exam mark will be re-weighted to include the weight of the Midterm Exam. You must notify the course instructor within a week of the missed Midterm Exam, and proper documentation must be received by your Dean's office within 2 weeks of the missed exam.

Software or other means may be used to check for unusual coincidences in answer patterns that may indicate cheating.

ASSIGNMENTS

Assignment Schedule:

Assignment Submission:

Instruction for the submission of assignments will be posted on the course web site. It is each student's responsibility to read and follow the instructions. Failure to follow the submission instructions may result in the assignment receiving a mark of zero.

Late Assignment Penalty:

An assignment looses 10% of its total possible value for each day late. Assignments more than four days late will not be accepted. The weekend counts as one day. I.e. an assignment due Thursday will be treated as follows:
Received Max Value
Thursday before 5:00pm 100%
Friday before 5:00pm 90%
Sunday before 5:00pm 80%
Monday before 5:00pm 70%
Tuesday before 5:00pm 60%
Tuesday after 5:00pm Not accepted

Late Coupons:

Each student will have the equivalent of four "late coupons", which may be used to reduce the penalty for late assignments. Late coupons are intentended to give flexibility to deal with illness, scheduling problems, or emergencies. Each late coupon is equivalent to one day free of a late penalty. The coupons are "virtual", and you must indicate the number of late coupons you wish to use for a particular assingment on its Assignment Submission Form. Handwritten notes or e-mail messages will not be accepted. The use of late coupons does not extend the maximum of four days late permitted. Late coupons cannot be used retroactively, they may not be transferred to another student, and they cannot be redeemed for extra marks at the end of the course.

Extensions or Waivers

Extensions or waivers for assignments may be granted only by the course instructor, but this will occur only rarely and under exceptional circumstances. If you have serious medical or compassionate grounds for an extension or waiver for an assignment, you should take supporting documentation to the office of the Dean of your faculty, who will contact the instructor.

Assignment Marking and Return

The assignments shall be marked by the Teaching Assistants, who follow marking schemes provided or approved by the instructor. To receive full marks, work must meet all of the criteria specified in the assignment as well as being clear and well explained -- simply having a "working program" is not enough.

You will be able to pick up your assignments from the I/O counter on the third floor of Middlesex College on presentation of your student ID. Students must pick up their assignments within two weeks of the date they are first available for pickup, as announced on the course web site. After that time, assignments not claimed by students will be discarded and the assignment mark will be considered final.

A request for adjustment in an assignment mark must be made within 2 weeks of the date on which it was first available for pickup. Beyond that date, regrading will not be considered, regardless of whether you retrieved your assignment. Requests for regrading a question on an assignment must be accompanied by all materials that were originally handed in, as well as the original marker's grade summary.

Ethical Conduct

Plagiarism: Students must write their assignments in their own words and/or their own program code. Whenever students take an idea, or a passage from another author, they must acknowledge their debt both by using quotation marks where appropriate and by proper referencing such as footnotes or citations. Plagiarism is a major academic offence (see Scholastic Offence Policy in the Western Academic Calendar).

All assignments are individual assignments. You may discuss approaches to problems among yourselves; however, the actual details of the work (assignment coding, answers to concept questions, etc.) must be an individual effort.

The standard departmental penalty for assignments that are judged to be the result of academic dishonesty is, for the student's first offence, a mark of zero for the assignment, with an additional penalty equal to the weight of the assignment also being applied. You are responsible for reading and respecting the Computer Science Department's policy on Scholastic Offences and Rules of Ethical Conduct.

The University of Western Ontario uses software for plagiarism checking. Students will be required to submit their written work and programs in electronic form for plagiarism checking

TUTORING

The role of tutoring is to help students understand course material. Tutors must not write assignments or take-home tests for the students who hire them. Having employed the same tutor as another student is not a legitimate defense against an accusation of collusion, should two students hand in assignments judged similar beyond the possibility of coincidence.

ACKNOWLEDGEMENT

Thanks to Aija Downing for preparing the course outline template and sample on which this course outline is based.