COMP1730/6730 2023 Semester 1, Project
WARNING: There may be wording changes and other typo fixes in the first few days. Please make sure to check the assignment specification again in a couple of days to ensure your understanding of the requirements is correct. We will not accept assignment wording changes within the first few days as a reason for marks appeal.
It was a tradition (like in many other courses) in COMP1730/6730 to offer students one well defined problem to solve as an Assignment Project. This time we are trying something different. Because students who take “Programming for Scientists” course major in a diverse range of scientific disciplines, we are offering you three different topics to choose from, each with a different background required.
These projects are:
-
Studying rational numbers by computing a trajectory, “a walk” which requires a mathematical background. Project-1
-
Counting the collisions to compute the number \(\pi\), which requires a physics background. Project-2
-
Calculating the probabilities of gene mutation in RNA sequences which requires little background (all bioinformatics facts are presented in the paper). Project-3
Projects 1 and 2 are primarily for COMP6730 students, since they assume knowledge from the corresponding disciplines (mathematics or theoretical computer science, physics and/or engineering), and therefore students who choose them will not need spending additional time and effort on making sense of the problem for solution of which they will design and write code. Project 3 is simpler, and is designed for the undergraduates of COMP1730 — it is explained in greater detail (that is, it is more self-contained). You only need to study the problem as it is described in the paper.
You are required to choose and implement only one project. COMP6730 students must choose either Project 1 or Project 2. COMP6730 students may NOT choose Project 3. COMP1730 students may choose either of the three Projects.
We recommend Project 3 for COMP1730 students. But if they want a challenge, they too may consider either first or second project, especially if they already possess knowledge from the associated disciplines.
Some details#
Regardless of your choice, you will need to submit a computer program, which
comprises a single Python file containing
all functions (and optionally classes) to enable your solution. You may use any
package which comes with the Anaconda distribution. Your program will also contain
the test code (a number of test functions defined in way similar to how test code was defined
in the homework assignments). Finally, your program will include an executable part
(preferably in the __main__
conditional block)
to enable its use as a stand-alone application which allows to obtain the results defined
in the chosen project. You will design, implement and document your solution following
the principles of good code quality which you have been taught.
The file names will have to be:
walk_on_number.py
for Project 1,collide_for_pi.py
for Project 2,bioprolegomena.py
for Project 3.
Except for the program file name, you are free to choose the names and signatures of all functions (and classes, if you choose to define your own types) needed in your program. In addition to documenting your functions with docstrings, you will be expected to include a module docstring which describes the chosen problem, the method you use to solve it, and your name and university ID.
Memo, the Viva report#
Apart from the computer program, you will have to write a short report, referred here as memo, up to 3 pages long (including images and references), which will describe the process of how you researched the problem, designed and implemented the program (what challenges you had to overcome), and report the key findings. It will also include implementation details — why your program has this structure, how did you choose the data structures and how you created the test data. Some of these details maybe part of your program documentation and comments, and they need not be repeated in the memo text.
Deliverables, submission, assessment, marking#
Deliverables and submission protocol#
You may start with deciding on what project to choose, background study and design and implementation of your program as soon as the Assignment Project is publicly released (the beginning of 1st break week).
Your choice of project is not locked in and does not have to be entered in anywhere. You are free to change your choice of project at any time (as long as you have time left to complete the project). Your code submission should however clearly indicate which project it is for.
The delivery will be done in two stages:
-
The Wattle submission containing the program (a Python file named according to the chosen project — see above) and the memo, which can be in either plain text or markdown format (with the extensions
.txt
or.md
correspondingly), or, if you include images, in pdf format. The base name should bememo
(so the full name of the report file should be eithermemo.txt
,memo.md
ormemo.pdf
). Your memo report should be a single file. For submission, the program file(s) and the memo report should be zipped into an archive file calledproject.zip
. This submission is due on Week 9, Saturday May 6, 23.55pm. The documents must include the project chosen, your name and university ID. -
A short oral Viva, which will be assessed during your assigned lab in week 10 which you must attend. The viva will be assessed by one of your lab tutors. It will be a conversation with the tutor, of approximately 5-7 minutes (and under 10 minutes for most). During this conversation, you will be asked to give an overview, description or explanation of your program workings, research you have done for the project, and how you have designed, implemented and tested your program. The tutor may also ask other questions on your submission as they deem appropriate. No special presentation materials, such as slides, are required for the viva. Your submitted memo acts as preparation/a presentation outline for the viva.
The marking scheme and criteria#
The total mark of 30 for the Project will be sum of these components:
- The viva assessment and memo report together will contribute 25% of the project mark.
- The program (with data) will contribute by two components:
- functional behaviour (correctness, fitness for purpose): 50%. This mark will also include the tests and test data.
- code quality of your Python program: 25%.
The viva assessment is mandatory as it is in part for academic integrity verification purposes.
If you do not attend your viva assessment, your mark for the entire assignment may be set to 0.