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.
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)
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.
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.
Always give credit for work that is not entirely your own (e.g., parts of programs or algorithms derived from a book).
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).
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.
The final examination will be combined with one or more other modules from CSC304S. More information will be provided at a later date.
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) :
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:
Ask yourself these questions ...
It is the responsibility of the student to submit programs that will successfully compile and execute on the standard departmental laboratory computers.
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: