|
Session 1, 2004
Assignments
Assignments are to be submitted via give in the form of
three milestones. The deadlines are as follows:
- Milestone 1 [
23:58, Wednesday, 21 April
2004 23:58, Thursday, 22 April
2004; 10 marks]: Functional
specification of software to be developed (e.g., in the case of a
library, the documented library interface needs to be provided).
Please take into account that I will probably not be
contactable at all between, and including, Friday, 9 April
and Sunday, 18 April!
- Milestone 2 [23:58, Sunday, 16 May
2004; 15 marks]: Basic functionality
must be supported.
- Milestone 3 [23:58, Sunday, 6 June
2004; 15 marks]: Full functionality
must be supported.
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.
Milestone 1
Objective: Develop a specification of the software that you
develop in the assignment.
The submission format
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 ...
The content of the submission
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.
Milestone 2
Objective: Develop code implementing the basic functionality of
your project.
The content of the submission
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.
The submission format
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
Milestone 3
Objective: Develop code implementing the full functionality of
your project.
The content of the submission
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.
The submission format
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 Milestone3 topic-N.tar.gz
|