Tasks and grading¶
There is no exam. You pass the course by completing five homework assignments and a small project.
Each homework is worth 12 points and the project is worth 40 points, for a total of 100 points. In addition, completing the course feedback will give you a couple of extra points. You pass the course at 50 points and every additional 10 points gives you a higher grade. To score the top grade, you will need 90 points.
General remarks¶
The programs you submit are only allowed to use core Python libraries plus numpy, scipy and matplotlib. There are many nice scientific libraries, but the evaluator might not have installed the one you like.
You can use LLMs (“AI”) to help you code. University resources are recommended.
You should still try to solve the problems yourself first. You won’t learn otherwise, and what good are your skills, if you can only prompt a computer? As a rule of thumb, put in at least two hours of good effort in an assignment before asking a bot for help.
If you need help, don’t just ask for a full solution right away. Try asking for small hints first and gradually more if necessary.
If you rely on the work of others, be it people or bots, you must always honestly report and credit your sources. So if you ask an AI or a buddy for help, explain in your report what is your own work and what is not. This will not reduce your points, but failing to do so is plagiarism.
In any case, it is your responsibility to thoroughly check that your code does exactly what is asked and analyze the results. Debugging and analysis are more important than the ability to just generate code.
Homework assignments¶
Each lessons is followed by a homework assignment. You have a couple of days to work on the task, after which you must submit your code and report as a single zip, gz or tar archive via Ville.
The assignments are:
Grading¶
For every assignment, you get a simulation template, which is missing features. Your task is to implement the missing features, run the required simulations, and report your results.
Your code must
be a single .py file (not .ipynb etc.)
only contain ascii characters (no ä or ö, just in case)
obey the specifications given in the template.
The requirements are strict because the code is evaluated using automated tests. These tests will fail if your code does not perform exactly as described in the documentation, so make sure it does! Read the instructions carefully and test your code. When in doubt, ask the teacher for advice. The computer will not show mercy if your program does not work.
You can write your report in Finnish or English. The report should
be brief and concise
answer the given questions
justify the answers with simulation results or theory.
The assignments are graded according to the following rubric.
Solutions are explained at the beginning of the next lesson. If your code did not work properly, it is possible to resubmit a new version even after the deadline has passed. The resubmission window is 48 h past the original deadline. Note however, that resubmissions are evaluated only using the automated tester. Report will always be evaluated based on the original submission. This means that a late submission is at maximum worth 6 points.
Tips¶
The assignments get more difficult as the course goes on. Make sure you get lots of points from the first couple of tasks.
You must always critically analyse how your program works. For instance in a dynamic simulation, you should draw an animation of your system to see how it behaves. Your program may execute and do something, but if that something turns out to be complete nonsense, you will not get many points.
You can start working on the homework directly after the lesson. The teacher will be available and you can ask for advice.
If you need advice on other days, send a message to the teacher. He’s nice.
Start early and schedule more time than you think you’ll need. Sometimes it is not obvious what works, and you need to try different things. Usually debugging takes a lot longer than actual coding. And in some cases, just running the simulation takes a while. None of these are valid reasons for missing a deadline.
All answers must be backed by simulation results or theory. Do not expect full marks from correct statements if it is not clear how they relate to your simulation results.
You can resubmit new code after the deadline. If your code didn’t fully work, ask the teacher for advice on how to fix it.
No extensions will be allowed on reports, because example solutions will be made available. If you know you cannot work before a certain deadline, ask for advice and complete the assignment early.
Even if your program fails, you may score points for your report. If you know your program doesn’t work, report how and why you know your code fails and what steps have you taken in trying to fix it. Report resubmissions are not accepted, so you need to show thought in your original report.
Project¶
By the time the last assignment is submitted, everyone should pick a project topic. The topic can be pretty much anything, as long as it involves a physical simulation. However, some topics are much simpler than others. If you pick a very easy project, you might not eligible for full points. On the other hand, it is also easy to be too ambitious. Therefore everyone should discuss their choice of topic with the teacher before starting the project!
Here are some nice topics:
Grading¶
The project is evaluated based on the complexity and correct working of your program, the use of good programming style and reporting of results according to the following rubric.
Reporting will be done in two parts: by a written report and a presentation. Although the score is mainly based on the written report, the presentation is also mandatory. You will get 0 points for reporting if you skip either of the two.
The report is a written document adhering to normal academic writing standards. Think of it similar to a lab report. In the report, you should explain your results and demonstrate your understanding of the chosen simulation and analysis methods. The report should
be elaborate, 3-10 pages
be written for the teacher, i.e., at expert level
thoroughly explain the theoretical background of the studied physics, mathematics and algorithms
cite sources according to academic reporting standards
show meaningful analysis of results and conclusions based on them
The course ends with a project seminar, where everyone is expected to give a short presentation on their project. Usually people give traditional oral presentations with slides, but you can use other techniques too if you like. If you cannot participate, you must prepare something to be shown at the fair, such as a video, in advance.
The presentation should explain what you have done and learned to your fellow students. Don’t make your presentation technical, make it interesting. Also think about what you learned during the project and try to convey that to others. The presentation should
be short, about 5-10 min
be aimed at other students, i.e., at beginner level
explain why your topic is interesting
describe the methods you use and the results you obtain at a general level
contain one or two simple take-home-messages for the audience
Tips¶
The program is scored based both on correctness and scope. A full simulation of the Ising model is inherently more interesting and more challenging than the simulation of a pair of dice. When choosing a topic, you should also discuss the scope of your project with the teacher.
The project can fail. If you know that your program does not work, you can gain compensating points by clearly reporting how the program fails, how you know that it does and what steps you have taken in trying to fix it.
Producing a simulation is only a small part of the project. You also need to analyse the results in some meaningful way. It is not always obvious how this should be done, so ask the teacher for advice if you are unsure.