CSC304S: Comparative Programming Languages

Second Semester 2003


Course Description

This course presents a framework within which to analyse and integrate knowledge of various programming languages to increase the understanding of differences and similarities among them. General concepts and underlying design theories will be discussed in relation to languages studied in the various paradigms.


Instruction

Instructor: Hussein Suleman (hussein@vt.edu)
Office hours: MWF 2-3pm
Office: 310 Computer Science Building

Lectures: 15, as per calendar

Teaching Assistant: John Lewis (jlewis@cs.uct.ac.za)


Textbook/Notes

There is no prescribed textbook, but the following is recommended for supplementary reading:

Concepts of Programming Languages
(third/fourth edition) by Robert W. Sebesta

Class notes (copies of slides) will be made available at the Computer Science reception.


Course Topics


Grade Weighting and Tentative Dates

1 Programming Assignment (2/3 of 35%), given at first lecture, due in 10th lecture

1 Tutorial (1/3 of 35%), given at 10th lecture, due in 13th

1 Class test, or part thereof (15%)

Final Exam (50%)

DP Requirements will be published for CSC304 as a complete course.


Collaboration and Referencing

All assignments, tutorials and exams must be done strictly on an individual basis. Design and coding of programming assignments must be done strictly on an individual basis. It is acceptable to discuss the question with classmates but not the solution (neither algorithmically nor programmatically). In no way should the individual statements of a program or the steps leading to the solution of the problem be discussed with or shown to anyone except the teaching assistants, the instructor and the tutors. Any discussion of your program source code must be limited to these people.

Always give credit for work that is not entirely your own (e.g., parts of programs or algorithms derived from a book).


Assignments and Grading Policies

General

All graded work (whether in paper or electronic format) must be kept until the end of the semester.

In general, queries about grades MUST be made within a week of graded work being returned. No queries about any grades will be entertained after the final examination.

ALL students will be expected to complete ALL assigned work (assignments, tutorials and examinations). If you miss ANY assigned work with a legitimate reason, speak to the instructor within a week or as soon as possible thereafter. Note that there are few legitimate reasons that will be accepted - these include condoned absences for recognised religious observances and hospitalisation or serious illness (with certificate).

Tutorials

Solutions to tutorials must be typeset using a word processor and printed out on paper. No handwritten work will be accepted.

All tutorials must be handed in to the instructor at the beginning of the class period indicated. No late submissions will be accepted.

Examinations

The final examination will be combined with one or more other modules from CSC304S. More information will be provided at a later date.

Programming Assignment

All questions for assignments, along with all related requisites, will be available online on the course website.

Grading of programming assignments will be based on the following criteria (an approximate marking scheme is indicated in brackets) :

  1. Correctness of program [50%].
  2. Output from program that adequately demonstrates correctness [10%].
  3. Documentation, internal and external, included as appropriate [15%].
  4. Efficient use of algorithms and appropriate data structures [10%].
  5. Stress - program must function correctly under all and/or extreme and unusual combinations of input [10%].
  6. Creativity - credit for innovation in interface, implementation, style, etc [5%].

All programming assignments are due at the date and time specified. No late submissions will be accepted unless a general extension has been granted. In very rare instances, exceptions may be made at the discretion of the instructor on an individual basis. Requests for extensions must be made at least 24 hours in advance of the due date.

All programming assignments will be submitted electronically. The online submission system used to receive your assignments will provide the official timestamp used to determine whether a program is on time.

NOTE: You are not allowed to use the goto statement for any programming done in this course !

What constitutes Output ?

Output refers to screen dumps of the output generated by your assignment, also indicating input where relevant. These are typically cut-and-pasted into word-processor documents. The basic reason for them is so that the person grading your assignment need not have to run the program to see exactly what the output looks like.

Screen dumps are usually acquired on Windows systems by pressing the PrtScrn button on the keyboard and then "pasting" the clipboard's contents into a program such as "Microsoft Word". A similar cut-and-paste operation can be used on *nix systems. The file containing your output must be included with your submission.

A cleaner alternative is to structure programs such that input is obtained from one file and output is sent to another - both files should then be included with your submission. Where this is not possible the above solution should be adopted.

In all cases, all files in your submission must be appropriately named, with a README file provided if necessary, so the purpose of each file is obvious to markers.

What constitutes Creativity ?

Creativity is any substantial improvement beyond the basic solution - it can be applied to any part of the project. For example, the following are relevant to data structures assignments:

  1. User Interaction
  2. Visualization
  3. Testing
  4. Efficiency

Ask yourself these questions ...


Equipment and Programming Language

It is the responsibility of the student to submit programs that will successfully compile and execute on the standard departmental laboratory computers.


Information Dissemination and Communication

This is a lecture course. While attendance at lectures is not mandatory after the first day, all graded work (assignments, tutorials, tests, exams) will be based on material covered in the lectures.

If you send email to the TA/tutor and dont get a response, send a reminder ... if all else fails, contact the instructor.

Information will be added on a regular basis to the class website. All students will be expected to consult the website on a daily (Monday-Friday) basis for updates on assignments, tutorials, grades, hints, deadlines, etc.

All discussion of a general nature will take place on the class newsgroup. At the discretion of the instructor or TA, responses to individual email messages may be posted in the newsgroup if the responses are relevant to all students.

Please refrain from posting anything of the following nature on the newsgroup, or in other fora set up for the class, as it may form the basis for a violation of university policy and/or a legal transgression:


Last updated : 2 September 2003 10:38pm