1 Introduction
This handout specifies Assignment 2, which is worth 25% of your final mark.
Your task is to replicate an existing grid-based NetLogo model in Java or Python, perform experiments to verify that its behaviour matches that of the original model, adapt your model to answer a new research question, and prepare a report on your findings.
2 Motivation: Replication
Copyright By PowCoder代写 加微信 powcoder
“Replication is a critical component of the scientific method and a core practice of scientists.” Wilensky & Rand (2007), JASSS 10(4):2
The idea that a scientific experiment should be reproducible in order to be credible has a long history in science, dating back to early Greek philosophers. Because computational models of complex systems are used as the basis of scientific claims about the behaviour of those systems, it is essential that they are subject to the same level of rigorous evaluation.
Replication of a computational model demonstrates that the results of the original model were not an exceptional occurrence, helps to increase our confidence in the validity of its behaviour, and is a first step toward extending the model to address a novel question. Replicating a model in a different computer language to the original model can also help ensure that model behaviour is independent of any implementation details specific to a particular programming language.
1. Select one of the following NetLogo models (available from the NetLogo Model Library in the File menu of NetLogo):
Ethnocentrism (Social Science);
Rebellion (Social Science);
Muscle Development (Biology);
2. Explore the behaviour of the NetLogo model you have selected. How does it work? What behaviours can this model exhibit? Which outputs of the model can be measured? What assumptions does the model make about the system that it represents?
3. Design and implement an equivalent model in Java or Python. You should start by im- plementing the simplest possible prototype of the system and ensure that it works well before proceeding with more complex designs.
4. Experiment with your new model. Can you replicate the same behaviours as the orig- inal NetLogo model? Why/why not? Your experiments should investigate the effects of model parameters on model behaviour. Appropriate statistical analysis of the output of both models, the original NetLogo model and the one you implemented, is expected; e.g., reporting and comparing some output measures of the models across multiple model runs and parameter values; this includes choosing sensible approaches to measuring the behaviour of the models by measuring their outputs.
5. FormulateaquestionabouttheNetLogomodelyouhaveselectedthatrequiresanextension to the model in order to be answered (the suggestions in model documentation may provide some ideas, but I encourage you to generate your own question). Extend your model accordingly by adding a novel feature/behaviour. Design and run one or more experiments that enable you to answer the question you formulated. Finally, present and discuss the results of the experiments.
6. Write a report on your Assignment, as described below.
Please note marks will not be allocated for the development of new libraries or GUI interfaces – your model only needs to generate numerical output (e.g., as a CSV file).
By the proposal deadline, you should have chosen a NetLogo model, done background reading on the real world system represented by the model, explored the behaviour of the NetLogo model, started thinking about the design of your Java or Python mode
4 Submission
4.1 Proposal submission
needs to submit the ro osal final report, and
The proposal is to be submitted via LMS by the proposal deadline (above). The proposal (named A B C proposal.pdf, where A, B, and C are the last names of each group member) is expected to be 1-2 pages (11pt font, reasonable margins) and contain:
A descriptive overview of the model you are replicating (e.g., purpose, users); The design of the existing model (e.g., states, update rules);
The design of your model (e.g., classes, attributes, methods);
The experiments that you intend to run (optionally, some results from the NetLogo model
or early results from your model);
A plan of how you intend to break down your Assignment into tasks and assign them to group members, and a timeline for completing these tasks. NB: the contribution of each group member should be evenly spread across the tasks and duration of the Assignment.
The proposal is worth 0 marks. However, failure to submit it by the deadline will incur a 1 mark deduction in your final mark. The proposal will also constitute a ‘first draft’ of your report for final assessment.
4.2 Final assignment submission
We will use the LMS for the final assignment submission. You are expected to submit the assignment in two parts:
1. A PDF copy of your report (named A B C report.pdf, where A, B, and C are the last names of each group member):
The first page of your report must contain the names and student IDs of all group members, and the number of words contained in the report.
Your report should describe the background for the model, the design of your model and extension, the results of your experiments, and a discussion of your findings. The criteria below (Appendix A) provide an indication of the content expected in your report, and should be used to structure the sections of your report.
Your report should also include an appendix (maximum length 1/2 page) outlining how your group worked together to achieve the project; e.g., successes and challenges confronted, any modifications to the plan outlined in your initial proposal, etc.
The report must be no longer than 8 pages (including all tables and figures; 11pt font, with reasonable margins), and contain no more than 1,500 words of text (including figure and table captions). NB: marks will be deducted for reports that exceed these limits. Your reference list (bibliography) and appendix are not included in these page or word limits.
2. A zip file (named A B C code.zip, where A, B, and C are the last names of each group member, in the same order as in the zip file name) containing:
All source code developed in your Assignment.
Any scripts required to run the experiments documented in your report.
Clear instructions describing how to build and run your model (see note below about not requiring 3rd party dependencies).
Code will be tested in a Java SE 22 or Python 3.12 environment, and hence must be compliant with Java SE 22 or Python 3.12. NB: marks will be deducted if it is not clear how to build and run your model, or your model does not build and run without external dependencies! For example, running your code should not require the use of any third party libraries, IDEs, or build tools. If you use an IDE to develop your code, you must check to ensure that it can be built and run independently of the IDE.
Late submissions: Late submissions will attract a penalty of 1 mark for every day that they are late. If you have a reason to request an extension, email Artem well before the due date to discuss this. Note that late or no submission of a proposal will also incur a 1 mark deduction as described previously.
5 Group contribution feedback
At the conclusion of the project, you are required to complete a short questionnaire on LMS rating your own contribution to the group’s efforts and that of your fellow group members against the criteria listed below. I hope that all groups experience a positive and collaborative working relationship. However, where there is substantial disparity in contribution, this may be used as a basis for weighting marks assigned to individual group members.
Group contribution feedback criteria:
1. Motivation, time management and responsibility: attends meetings on time, accepts fair share of work, and reliably completes work on time.
2. Creativity, originality: initiates new ideas, initiates group decisions.
3. Communication skills: good listener, effective contributor to group discussions.
4. General team skills: positive attitude, supports group decisions and helps to achieve con- sensus.
5. Technical skills: provides technical solutions to problems.
For each criterion, you will be asked to rate your/others contributions on the following scale:
4: better than most of the group;
3: about average for the group;
2: less good than most of the group; 1: no help at all to the group; or
0: a hindrance to the group.
A Criteria
A.1 Report
Note that achieving full marks for a criterion requires that it is satisfied to an exceptional level!
Background & Model
Replication & Extension
Results & Discussion
A.2 Code quality
Description
You have clearly stated the aims and objectives of your study and provided an appropriate review of background material on your chosen model, including justifying why the system modelled is of interest and is a “complex” system. You have clearly described the design of your model, including describ- ing the components and interactions, how the model relates to the real world, and how you have designed your Java or Python implementation.
You have designed and executed appropriate experiments to explore and compare the behaviour of your Java or Python model and the original NetLogo model. You have described a range of scenarios used in your experiments. You have designed and implemented an appropriate extension to your Java or Python model, specified a question that this ex- tended model allows you to address, and used your model to address this question.
You have clearly presented the results of your investigations using clear and appropriate tables and figures. You have interpreted and discussed the results of your experiments, the outcome of the replication exercise, and the answer to the question addressed by your model extension.
Your writing is well-expressed, clearly proof-read and demonstrates a coherent development of ideas. Your ap- pendix outlines the successes and challenges involved in achieving your group’s plan.
2 marks 2 marks
Code formatting Executability
Description
The design of the model is of high quality – clear and succinct – and is potentially extensible (illustrated by the extension you choose to implement)
The implementation adheres to the code format rules (Appendix B).
The submitted code builds and runs, and generates output consistent with the results provided in the report.
B Code format rules
Your implementation must adhere to the following simple code format rules:
Every Java or Python class must contain a comment indicating its purpose.
Every function or method must contain a comment at the beginning explaining its be- haviour. In particular, any assumptions should be clearly stated.
Constants, classes, and instance variables must be documented.
Variable names must be meaningful.
Significant blocks of code must be commented.
However, not every statement in a program needs to be commented. Just as you can write
too few comments, it is possible to write too many comments.
Program blocks appearing in if-statements, while-statements, etc., must be indented con- sistently.
Each line should contain no more than 100 characters.
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com