联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2024-05-04 01:28

1 Introduction

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.

The objectives of this Assignment are to provide you with the opportunity to develop your skills

in implementing a computational model of a complex system, using it to conduct experiments,

reporting on the design of the model and the results of these experiments, and working in a

group context.

2 Motivation: Replication

“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.

3 Process

1. Select one of the following NetLogo models (available from the NetLogo Model Library

in the File menu of NetLogo):

ˆ Ethnocentrism (Social Science);

1

ˆ 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 implementing 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 original 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. Formulate a question about the NetLogo model you have selected that requires an extension

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 model, and thought about the

breakdown of tasks and how you will allocate these amongst the members of your group.

4.1 Proposal submission

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);

2

ˆ

ˆ

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);

The proposal is worth 0 marks. However, failure to submit it by the deadline will

incur a 1 mark deduction in your final m ark. T he p roposal w ill a lso c onstitute a ‘first

draft’ of your report for final assessment.

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.

3

1.ˆˆˆˆ

4

A Criteria

A.1 Report

Note that achieving full marks for a criterion requires that it is satisfied to an exceptional level!

Criterion Description Marks

Background & Model 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 describing the components and interactions, how the model relates

to the real world, and how you have designed your Java or

Python implementation.

5 marks

Replication & Extension 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 extended model allows you to address, and used your model

to address this question.

5 marks

Results & Discussion 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.

5 marks

Writing Your writing is well-expressed, clearly proof-read and

demonstrates a coherent development of ideas. Your appendix outlines the successes and challenges involved in

achieving your group’s plan.

3 marks

Total 18 marks

A.2 Code quality

Criterion Description Marks

Design The design of the model is of high quality – clear and succinct – and

is potentially extensible (illustrated by the extension you choose to

implement)

3 marks

Code formatting The implementation adheres to the code format rules (Appendix B). 2 marks

Executability The submitted code builds and runs, and generates output consistent

with the results provided in the report.

2 marks

Total 7 marks

5

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 behaviour. 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 consistently.

ˆ Each line should contain no more than 100 characters.

6


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp