Directory
Policies
Attendance
Attendance at lectures is expected but will not be recorded.
Students are, however, fully responsible for all material presented in
lectures. Class attendance is strongly recommended.
Assignments
All assignments are to be written in C, and should function properly when
compiled with the ugsparc gcc compiler. The assignments are designed
to give you as much flexibility as possible: key details will be set out
in the assignment specification, and the remaining decisions will be left
up to you.
Collaboration
Programming, like composition, is an individual creative
process. Individuals must reach their own understanding of the problem
and discover a path to its solution. During this time, discussions with
friends are encouraged. However, when the time comes to write the code
that solves the problem, such discussions are no longer appropriate --
the program must be your own work (although you may ask teaching assistants
for help in debugging). If you have a question about how to use some feature
of UNIX, etc., then you can certainly ask either your friends or the teaching
assistants.
Do not, under any circumstances, copy another person's
program. Writing code for use by another or using another's code in any
form is academic fraud and will be dealt with harshly.
You
are also responsible for ensuring that the code you write for the assignments
is not readable by others. You can use the chmod command to
change the protection of your files (type "man chmod" for more information).
All students should be familiar with the University's
Code of Behaviour, including the section on Academic
Offences. As well, the ECE department has adopted the following policy
on cheating: What
Happens When a Student is Caught.
Due Dates & Late Work
Programs are due at 11:59:59 PM on the date specified. Late
assignments get a mark of zero. Exceptions to these rules will be made
only under exceptional circumstances, and then only with an appropriate
written excuse.
Transportation and Weather
Problems with transportation or weather do not justify any
type of extensions. The only cases that will be considered are days that
the University is offically closed due to weather or other reasons.
Assignment Submission
To submit each assignment use the "submit" program. The syntax
is "submitece344s as# filename", e.g. "submitece344s 1 as1.tar". When submiting
a file make sure that the path to the file has the read and exec protection
bits set for the world for all path components. Since submit can only handle
a single submitted file per assignment, you should tar and gzip the directory
containing the files you want to submit. A submission is copied into a
specific (protected) directory, it is given the name of the user that does
the submission, and it is timestamped with the submission time. Assignments
can be submited multiple times. A resubmission is copied over any previous
submission for the same assignment. Late submissions (or resubmissions)
will be handled according to the course policies.
To submit an assignment, use "tar" (type "man tar" for
more information) to bundle the assignment directory in a single file named
as#.tar (i.e. as1.tar). Then use "submit" to submit the bundled tar file.
The bundlle should contain all source files and a working
makefile that are necessary to compile and run the assignment. You should
also include a briefREADME file that explains any implementation
decisions or reasonable assumptions that you have made, and how you have
tested your program. Do not include object or
executable files in your assignment submissions, since they only take space.
Assignment Marking
Assignments will be marked both for correctness and style.
Correctness means that the assignment adheres to the specification, and
in any case, it either performs according to the specification, or returns
an error. "core dumps", even with invalid inputs,
are not acceptable. (The use of assert statements, though,
is an acceptable means of checking for valid states in your program.) Assignments
should also include a working makefile.
Various guides to programming style can be found on the
web. A couple of documents on style can also be found here.
Also, you can use the "indent" utility to format C code (for more information
type "man indent").
Facilities
All assignments are to be done on the ugsparc machines. Information
on using the machines can be found here.
For all the assignments you should use the gcc compiler
(type "man gcc" for more help) and the gnu make utility (type "man gmake"
for more help). These are the default utilities used when you type make
and cc on the ugsparc machines (typing "cc -v" and "make -v" will give
you version information). Documentation on the GNU tools can be found on
the web. A sample link to documentation can be found here.