Session 1, 2004
Assignments are to be submitted via give
in the form of
three milestones. The deadlines are as follows:
You can earn up to 10 bonus marks for an implementation that exceeds the core functionality of your assignment. However, for every assignment, the details of any bonus part has to be negotiated with me in advance (preferably before Milestone 1 is submitted). You cannot receive any bonus marks until the core functionality is reasonably well implemented.
The late penalty, as already stated on the course introduction page, is as follows: The penalty for late submission of a milestone will be a 4% reduction of the maximum possible mark (for this milestone) per day of being late. No milestone will be accepted later than one week after the deadline.
Objective: Develop a specification of the software that you develop in the assignment.
The specification must be written in HTML. You must submit at
least one file called topic-N.html
where
N
is your topic number (these are
disambiguated in the topics list,
where two people chose the same topic). In addition, you may
submit further files named
topic-N-EXTRA.html
where
EXTRA
is any non-empty string. These
additional pages must be hyperlinked from
topic-N.html
(please use relative links
only). Moreover, you may submit graphics files using the same
naming convention as for the EXTRA
files,
but ending on .png
, .jpg
, or
.gif
.
Each specification must contain the name of the author as well as
the topic number and a suitable headline at the top of
topic-N.html
. The specification for each assignment
will be linked into the course web page.
Submit using the command
~cs4132/bin/classrun -give Milestone1 topic-N.html ...
Each submission should be around 1200 words including (a
reasonable amount of) HTML tags when run through
wc
. If the submission contains useful diagrams or
graphics, its word count may be lower. In any case, the
specification must be technical and to the point. (Just to give
you an idea of the expected length, the topics list has close to 1400 words by
the above measure.)
The specification must describe what your software will do and outline how it will do it. In particular, I would like to encourage the inclusion of a decomposition of the implementation into modules. Briefly describe the interface of the principal modules and provide type signatures and descriptions for the central functions where possible. (It's no problem if you change these later in your implementation; this is just a first draft.) If you are developing a library, the first version of the library API has to be included in the specification. Don't waste space by reviewing the background or similar things. Just specify your program and outline its implementation.
If you plan to implement a bonus part (to receive bonus marks), the specification must clearly state which features belong to the core and which belong to the bonus part.
Objective: Develop code implementing the basic functionality of your project.
You must submit working code. The code should implement between 35% and 50% of the features that you have planned for your Milestone 3 submission, except that no bonus features need to be supported (if you are attempting any bonus features at all).
The submitted code should be reasonably clean and it must be well documented. (I believe that the "I comment my code after I am finished" attitude is fundamentally flawed as a software engineering practice, so I won't accept it as an excuse for insufficiently commented code.)
The submission must also include brief build instructions and ideally a makefile that automates the build process.
Due to the different structure of individual submissions, we will
standardise on gzipped tar files. Please include all source files,
documentation, and make files into a file
topic-N.tar.gz
and submit using
~cs4132/bin/classrun -give Milestone2 topic-N.tar.gz
Objective: Develop code implementing the full functionality of your project.
You must submit working code as well as a summary (about 600 words) of the main problems and achievements. The summary should describe which parts of your specification (as submitted for Milestone 1) you actually implemented and, for those parts that you didn't implement, it must explain why those parts weren't implemented. Moreover, you should list the main challenges that you faced during your work at the assignment and describe all features that are implemented in an effort to score bonus marks.
The submitted code must be clean and well documented. Where your code is based on existing code, you should clearly indicate which portions of the code are yours and which have been derived from other sources.
The submission must also include brief build instructions and ideally a makefile that automates the build process.
Due to the different structure of individual submissions, we will
standardise on gzipped tar files. Please include all source files,
documentation, and make files into a file
topic-N.tar.gz
and submit using
[an error occurred while processing this directive]~cs4132/bin/classrun -give Milestone3 topic-N.tar.gz