Computational essay i fys1120 - tellende prosjektoppgave
I fys1120 skal du levere et computational essay som teller 50% av den endelige vurderingen i faget.
Du kan lese en beskrivelse av hvordan du skal skrive et computational essay og hvordan det vurderes nedenfor. Merk at mindre endringer i oppgaveteksten kan forekomme frem til 24. oktober. (Denne beskrivelsen er siste gang oppdatert 2021-11-18 med presisering av at fristen for innlevering er 22.11 kl. 23:59)
Du leverer et prosjektutkast til din gruppelærer på canvas innen 22. oktober 2021 på canvas eller avtaler en samtale med din gruppelærer (trykk her for å gjøre en avtale). Dette er et tilbud til deg og er ikke et krav for å kunne levere det endelige essayet. Fristen er soft, men jo tidligere du leverer, jo tidligere vil du få tilbakemedling.
Innlevering av essay på inspera
Endelig innlevering av computational essay skjer på inspera innen 22. november 2021 kl. 23:59.
Vi vil opprette veiledningstimer hvor du kan få hjelp til prosjektet av en gruppelærer. Tidspunktene for denne veiledningen blir offentliggjort etterhvert og vil intensiveres frem mot innlevering. Du kan også spørre din gruppelærer om spørsmål knyttet til computational essay i de siste 15 minuttene av gruppetimen.
Prosjektet vurderes med en score (0-100%) som inngår og teller 50% sammen med den skriftlige avsluttende eksamen i den endelige vurderingen i emnet.
Du kan bli innkalt til en kontrollsamtale om ditt essay hvor du forventes å kunne forklare ditt essay eller ditt bidrag til et essay du har levert sammen med en partner.
One of the most common activities of professional scientists, regardless of field, is to write computer simulations. They use these simulations to predict the behavior of new systems, to figure out the mechanism behind a system they don’t understand, and to verify (or disprove) predictions made by other people.In previous semesters of your physics courses, you have been asked to write programs to simulate the behavior of physical systems. However, most of these assignments have likely been highly structured, with step-by-step instructions on how to write the simulation. This project will give you the opportunity to use the techniques you’ve learned to do something closer to what actual scientists do: to use a simulation to answer a question that is interesting to you, without the steps specified in advance.
In this project, you will be provided with several simulations of systems that involve the physics principles you have been learning about such as: firing neurons; polar molecules in a liquid; electric dipole antennas; storm clouds and lightning; particle accelerators; magnetic traps; or railguns.
These simulations will include some of the basic physics involved and a description of what the code does, but not much else; they are meant for you to build on. You can choose to use one of these simulations, or use another simulation you’ve worked on (like an oblig), or write a new simulation if none of these seem especially interesting to you. You will then modify your chosen simulation to answer a question about the system, like “how much charge would a cloud need to create a lightning strike in the desert?” or “how much current would a railgun need to launch a package to the International Space Station?”
What to do?
In order to be successful in this project, you will have to do the following:
- Choose one of the offered simulations and familiarize yourself with how it works, use another existing electromagnetism simulation, or write a new simulation yourself
- Choose a question that you find interesting which can be answered with that simulation
- Identify which assumptions you have to make or values you will need in order to answer the question, and look up information from articles or websites to justify those assumptions or values (Wikipedia is a useful source here). For example, how big is a normal storm cloud? What are reasonable dimensions for a cyclotron? What kinds of charged particles are typically trapped in magnetic bottles?
- Play around with the simulation to answer the question. Here, you will need to substantially expand on the provided code (adding new physics, like forces or objects, for example); it’s not enough to just change a few of the variables but leave most of the code untouched
- Write up a report in the form of a Jupyter Notebook.
Note that the goal of this project isn’t necessarily to generate a perfect simulation - every simulation makes assumptions and ignores things that are actually very important in real life. Instead, the goal is to add enough new physics to one of these simulations that you can use it to learn something that you didn’t understand before.
You can find computational essay templates that you may use as a basis for your own project here: https://uio-ccse.github.io/computational-essay-showroom/index. Notice that you need to extend significantly on these templates to get a good score on the project.
You can download computational essay template projects here.
This project will be modeled after the way professional physicists work. You will therefore write your report as a Jupyter notebook. This allows you to combine text, figures, mathematics, code, plots, and dynamic elements in a structured text using a simple markdown language. Notebooks are widely used in modern research and development workflows and as a tool in the research process they have largely replaced static documents.
Deliverable 1: A project proposal
We encourage you to first present a project proposal to your group teacher. This project proposal should answer the following questions:
- Whether you plan to do the project single or with a partner (if so, give the name of the partner)
- Do you plan to build off of an existing simulation (oblig, example code, or something you found online), or do you plan to write your own? If you plan to build off existing code, what code will you be using?
- What question will you be investigating in this project? Define the question as clearly as you can. (Note: you are free to change the question later on if you need to)
- What physics will you add to the simulation in order to answer this question, that you have learned about in Fys1120? (Note: you can use physics from other courses as well, but it is a requirement that you also show us that you can use some of the physics learned in Fys1120 in this project)
Deliverable 2: The full computational essay
By the final deadline provided on the course web-page, you must submit your full computational essay as a Jupyter notebook. The notebook should be written so that a fys1120 student can read the report to understand the physics, what you did, why you chose to do it, and what you found out.
Your computational essay should at least include the following elements
- A written introduction to the question or phenomenon you will be investigating
- A theory section explaining the physics you will be using. Note that this can build off of the existing theory section of any computational essay you will be using, but to avoid plagiarism you should rewrite any existing theory section in your own words. Note that this theory section can be distributed throughout the notebook.
- A computational model that simulates the phenomenon you are investigating (i.e., charges moving in a magnetic bottle, lightning strikes, etc.). If you are building off of an existing model, you will need to make significant changes to that model by adding new physics to it or using it in a novel way. It is also preferable for you to develop the model over several steps, so you start with an initial model (for example, a non-relativistic cyclotron) and then add in extra factors to improve it and make it more realistic (i.e., relativistic effects)
- A discussion of what you found, and how it answers your question. You should also discuss any limitations in your modeling technique, and how realistic this model is.
- A conclusion, where you summarize in a few sentences the entire project
- A references section, where you cite any sources you used, including the code you built your model off (if you didn't build it from scratch). You can choose any reference style you like. (Notice that Jupyter notebooks do not support in-text references in the standard distribution).
- (if you are working with a partner) A section where you state what each person contributed to the project (theory, coding, model development, reading articles on the subject, writing, etc.)
Additionally, if you build off of any existing code, make sure to mark which parts of the code you're using that comes from an existing essay/simulation/etc. and which parts you have written yourself, in comments within the code blocks.
You can do this project alone or with a partner. If you work with a partner, you will only submit one essay, but you need to specify the exam id numbers of both project partners and how each person (described only by their exam id) has contributed to the project. (See point 7 above on what you need to describe). You will only receive one, common score.
We will provide support by (i) providing guidance and feedback on your project proposal, (ii) we will have question-and-answer sessions where we will answer specific questions you may have while working on the project.
The computational essay will be graded using the rubric below, which may help you in designing your essay. (You can find a full pdf of the rubric here).