Augustana Faculty logo and wordmark


 

COMPUTING SCIENCE 370
Programming Languages

COURSE DESCRIPTION AND REGULATIONS

Fall Term, 2003



Quick Links
. Course Outline . Assignment Weightings . Percentage Conversions


Instructor: Dr. Jonathan Mohr  
 
Office: N104 Phone: 679-1514
 
Office Hours: click here E-mail: mohrj@augustana.ca


Calendar Description:

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).


Requirements:

See also the Calendar descriptions of all Augustana Computing Science courses.



Objectives:

  1. to introduce the principles and programming styles that govern the design and implementation of programming languages;
  2. to develop an understanding of the organization of programming languages, especially the run-time behaviour of programs;
  3. to introduce the formal study of programming language specification and analysis;
  4. to familiarize students with various programming language paradigms by using representative programming languages.

A language that doesn't affect the way you think about programming is not worth knowing. -- Unix fortune


Method of instruction:

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.

Textbooks:

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.

Attendance and Course Work Policy:

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.

Grading Policy:

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 Conversion Chart
   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.

Course Outline:

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.

Academic Integrity

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.

Guidelines for Academic Integrity in This Course

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.

 
 
Links
. Course Materials Index . Top of this Document . Instructor Contact Information

Copyright © 2002,2003, 2004 Jonathan Mohr