Topics¶
You can find the course project topics under this topic in the course index. The projects are divided into big and small projects. Big projects are obviously worth more points, and their aim is to make a complete small game or program with a graphical user interface. In contrast, small projects implement some program logic that could be part of an actual program, and a simple terminal interface to test it.
The big projects have build-up exercises on each exercise page besides the first one. These tasks give you important pieces that are needed to complete the project. The smaller projects can be completed with knowledge obtained form the generic exercise tasks.
Each topic has a detailed explanation on its own page. Choose one of the topics.
Information below has been updated but not yet translated¶
Collaboration¶
We like collaboration on this course. These weekly nice little exercises are actually made in cooperation with several different assistants. It's also probably much more pleasant to solve them together. Your friend may have a better understanding about something, and two pairs of eyes spot bugs more easily anyway. In most cases you realize your mistake when you start to complain to someone that your program doesn't work. Usually things work more smoothly in your head, compared to what it sounds like when you start to explain it to someone else. That's why we don't by any means want to take away the joy of collaboration from you and we actually encourage you to ask help not only from assistants, but your friends as well. We are quite good at giving advice, but your friend is more likely on the same wavelength with you and may be able to give you even better advice than we can.
However, on this course it's required that every student learns to write programs independently. This aspect is good to keep in mind when you are writing code with one or more friends. You shouldn't use code in your program if you don't know what it does. Ask your friend to explain if you don't understand the given piece of advice! Of course, if your friend is a good team player and has read this guide, then maybe he or she can instruct you in a way which you too understand what the code is doing. When you copy someone else's code everyone loses. The one who copies doesn't get any smarter when they can't understand what the copied part of the code does, and the one who allowed their code to be copied can't get to deepen their understanding of the issue by shaping it to a more comprehensible format.
Unfortunately these cases are encountered annually, so along with the beautiful thoughts we also have explicit and easily understandable rules concerning collaboration on this course. By following these rules you avoid problems - problems usually means, that your course credit can be postponed to the undefined future while the case is being resolved. In the worst case you may have to retake the whole course. These rules can be wrapped up to a few sections:
- Don't copy code from anywhere or anyone and make sure you understand everything you write to your program
- If you take an example from somewhere else (internet), tell this in comments above the code and tell where you found it
- Any solutions that are directly taken from elsewhere do not award you points. They will be reducted from the "Problem solving" category in scoring.
Borrowed code must always be clearly marked. If the evaluator decrees that the borrowed code results in more points from a category, you will not get these points because they were not from your own work. If we find borrowed code that is not honestly referred, your project can be entirely rejected.
All projects are ran through a tool that inspects code similarity rather extensively. If we find too high similarity between two or more projects, all involved parties will be questioned before deciding how to proceed. If no clarity is found, all involved projects will be rejected. If you feel like it is impossible to collaborate without copying directly, choose another project topic. The small project topics are designed in a way that changing your topic mid-course is not an issue.
Evaluation¶
Your course work will be accepted if it fulfills the core requirements specified in this document. Unless your code is extremely obnoxious, any functional programs are accepted.
Your project is only graded once. If it's not in acceptable condition, it will be rejected and your grade for the course will be 1. Check your work very carefully before your final submission. The latest version that was submitted before the deadline will be evaluated.
You can find the evaluation criteria by clicking the "Evaluation Criteria" link from the left hand side of the return box in the project topic page.