1 Preamble
Fundamentals of Programming
Assignment Semester 2, 2019 v1.0
Discipline of Computing Curtin University
In practicals you have implemented and learned about simulations, object-orientation and (soon) how to automate the running of multiple simulations. In this assignment, you will be making use of this knowledge to extend a given simulation to provide more functionality, complexity and allow automation. You will then report on the results generated by the simulation.
2 The Problem
You have been provided with some basic code to simulate a population of Brine Shrimp. Your task is to extend the code and then conduct an experiment, varying the input parameters, to see how they impact the overall simulation.
The required extensions are:
1. Life Cycle: Extend to have additional life stages, e.g. egg hatchling juvenile adult. This should be implemented via the objects methods and attributes.
2. Visualisation: Enhance the output to vary the representation of animals by their life stage. You may choose an image representation, to improve on using coloured dots.
3. Movement: Movement should vary by life stage and needs to be constrained to the swimming space. The Base code movement is highly unrealistic. You should consider how the shrimp might move, e.g. they keep going in the same direction unless they
have a change direction event at some level of probability.
4. Collisions: The animals are swimming in a two dimensional space. Your code should
recognise when collisions occur and modify the path of the shrimp accordingly.
5. Reproduction: Typically, the brine shrimp are purchased as dry eggs, however, their lifecycle changes in a water environment. You may simplify this to be asexual
reproduction, but that wont get full marks.
Note: Your program should allow command line arguments to control the experiment/simulation.
Your code should include comments to explain what each section does and how. It is useful to keep track of your changes in the comments at the top of the program. Feel free to re-use the code and approaches from the lectures and practicals. However, remember to cite and self-cite your sources. If you submit work that you have already submitted for a previous assessment (in this unit or any other) you have to specifically state this.
1
Beyond the working program, you will submit two documents: a User Guide to your code and a Report on your experiment. There will be bonus marks for additional functionality and the use of more advanced programming techniques (e.g. interactivity, high quality visualisation, 3D space, parameter sweep etc.) but only if theyre sensible and done well. Make sure to discuss the additional work in your User Guide and Report, this will be easy if you make notes and keep old (incremental) versions of your code.
3 Submission
Submit electronically via Blackboard. Make sure to submit early. You can submit multiple times we will only mark the last attempt. Take care not to submit your last version late though. Read the submission instructions very carefully.
You should submit a single file, which should be zipped (.zip). Check that you can decompress it on lab machines. These are also the computers that your work will be tested on, so make sure that your work runs there. The file must be named FOP_Assignment_
The file must contain the following:
Your code. This means all files needed to run your program. That includes input files used as part of the assignment if that is required to run your program.
README file including short descriptions of all files and dependencies, and information on how to run the program.
User Guide and Report for your code, as described in Section 3.1.
A signed and dated cover sheet. These are available on Blackboard. You can sign a
hard copy and scan it in or you can fill in a soft copy and digitally sign it.
Make sure that your zip file contains what is required. Anything not included in your submission will not be marked, even if you attempt to provide it later. It is your responsibility to make sure that your submission is complete and correct.
3.1 User Guide and Report
You need to submit your User Guide and Report in docx, pdf or Jupyter Notebook format. Your User Guide will be minimum 2-4 pages and should include the following:
An overview of your programs purpose and features.
A guide on how to use your simulation and parameter sweep code, if applicable.
A discussion of your code, explaining how it works, any additional features and how
you implemented them.
The Report will follow the structure of a standard academic report or paper. It should be at least 4-6 pages long. Required sections are:
Abstract: Explain the purpose of the report and state the parameters you have investigated, and the outcomes/recommendations.
Background: Discuss the purpose of the simulation and your choice of parameters. 2
Remember : Think before you code!
Methodology: Describe how you have chosen to set up and compare the simulations, and why. Include commands, input files, outputs anything needed to reproduce your results.
Results: Present the results of your simulations.
Conclusion and Future Work: Give conclusions and what further investigations could
follow.
3.2 Marking
Marks will be awarded to your submission as follows:
[50 marks] Code Features. 10 marks per extension, implemented and documented
[10 marks] Demonstration. Students will demonstrate their code and respond to
questions from the markers.
[10 marks] User Guide. As described in section 3.1.
[30 marks] Report. As described in section 3.1, with the majority of marks for the
methodology and results sections.
Marks will be deducted for not following specifications outlined in this document, which includes incorrect submission format and content. If the cover sheet isnt provided with your submission, your submission will not be marked and you will be awarded zero (0) marks. If you forget to submit the cover sheet you will be allowed to submit it separately to the unit coordinator (by e-mail or in person) but will lose 5 marks.
3.3 Requirements for passing the unit
Please note: As specified in the unit outline, it is necessary to have attempted the assignment in order to pass the unit. As a guide, you should score at least 15% to be considered to have attempted this assignment. We have given you the exact mark breakdown in Section 3.2. Note that the marks indicated in this section represent maximums, achieved only if you completely satisfy the requirements of the relevant section.
Plagiarism is a serious offence. This assignment has many correct solutions so plagiarism will be easy for us to detect (and we will). For information about plagiarism, please refer to http://academicintegrity.curtin.edu.au.
In the case of doubt, you may be asked to explain your code and the reason for choices that you have made as part of coding to the unit coordinator. A failure to adequately display knowledge required to have produced the code will most likely result in being formally accused of cheating.
Finally, be sure to secure your code. If someone else gets access to your code for any reason (including because you left it on a lab machine, lost a USB drive containing the code or put it on a public repository) you will be held partially responsible for any plagiarism that results.
3.4 Late Submission
As specified in the unit outline, you must submit the assignment on the due date. Acceptance of late submissions is not automatic and will require supporting documentation proving that the late submission was due to unexpected factors outside your control. See the unit outline for details as to the procedure for requesting that an assessment be accepted after the due date.
Note that external pre-scheduled commitments including, but not limited to, work, travel, scheduled medical, sporting, family or community engagements are not considered
3
unexpected factors outside your control. If you know you have, or are likely to have, such engagements and that they may affect your ability to complete the assignment, you will be expected to have planned your work accordingly. This may mean that you need to start and/or complete your assignment early to make sure that you are able to hand it in on time.
Also note that IT related issues are almost never a valid excuse.
In the event that you submit your assignment late and are deemed to have a valid excuse, you will be penalised 10% (that is, 10% out of 100%, not out of what you would have received) per calendar day that you are late, up to a maximum of seven (7) calendar days. Any work submitted after this time will not be marked and you will automatically fail the unit. Note that if you are granted an extension you will be able to submit your work up to the extended time without penalty this is different from submitting late.
3.5 Clarifications and Amendments
This assignment specification may be clarified and/or amended at any time. Such clarifications and amendments will be announced in the lecture and on the units Blackboard page (not necessarily at the same time and not necessarily in that order). These clarifications and amendments form part of the assignment specification and may include things that affect mark allocations or specific tasks. It is your responsibility to be aware of these, either by attending the lectures, watching the iLecture and/or monitoring the Blackboard page.
4
Reviews
There are no reviews yet.