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.

_images/grades.png

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. Asking for help will not reduce your points, but failing to tell about it 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 a single .pdf file (not .docx, .txt etc.)

  • be brief and concise

  • answer the given questions

  • justify the answers with simulation results and theory

  • adhere to good academic reporting style.

The assignments are graded according to the following rubric. Solutions are explained at the beginning of the next lesson.

_images/assignment_rubric.png

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.

  • No extensions will be allowed, 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 in some way, you may score points for your report. If you know your program doesn’t work, report how and why you know this 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.

_images/project_rubric.png

Reporting will be done in two parts: by a written report and a presentation.

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 can prepare something to be shown at the fair, such as a video, in advance. Such presentations will be evaluated with a bit more scrutiny than those given in-person.

The presentation should explain what you have done and learned. The audience is your fellow students. So, 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 project 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.