Grading¶
The grade of the course consists of weekly exercise tasks and programming projects. In addition, a final exam organized as an electronic exam needs to be passed.
You can see the maximum points of these categories as well your collected points in both views Course materials and Your points.
Sectors affecting the grade¶
The grade is formed from the following:
Normal programming exercises (N): Exercise points are collected by completing exercise tasks – typically coding tasks – each week. The amount to be at least gathered is (about) half of the maximum of this category. (Precise point limits can be seen in the table below.)
Projects (P = P1 + P2): Project points are collected from the course programming projects. There are two projects on the course, and both of them are mandatory. You must gather at least 50 points from these two projects together, i.e. at least half of the all project points.
Bonus (B): You can get bonus points (max. 10) by giving course feedback. This can be found at the very end of the course material. These points are really bonus points, i.e. they summed with the ẃeekly exercise points, but they do not increase the maximum points of weekly exercises.
Exam: The electronic final exam is graded numerically with the scale 1-5. You must pass the exam in order to get a final grade from the course. The exam questions cover the key theoretical and C++ related learning outcomes. The more technical learning outcomes are covered by the projects.
Grading is not affected by the following items:
Category M consists of multiple choice questions, which are meant for you to check your own skills. Answering to multiple choice questions (which requires reading theory sections and watching videos) helps you in preparing for the exam.
Category GDPR contains only a permission for using course data in research.
Grading has the additional rule:
With the exam grade 1, your maximum total grade is 3.
Grading items more precisely¶
Accepted weekly exercises and projects give you scores as shown in the table below. Numbers in the column N (normal exercises) are in percents (%). They are calculated by summing the points from the category N and by dividing the sum by the sum of the total points of this category. Numbers in the column P (projects) are also percents, as well as points (p), namely the maximum of projects is hundred. The column P considers points from the projects, i.e. the sum of the points from categories P1 and P2.
Scores from weekly exercises and from projects¶
Scores |
N (%) |
P (% = p) |
|---|---|---|
1 |
50 |
50 |
2 |
60 |
60 |
3 |
70 |
70 |
4 |
80 |
80 |
5 |
90 |
90 |
The table above gives you two (possibly different) scores: one for weekly exercises and the other for projects. These score values as well as the (possible) exam grade have effect on the final grade in the way described below.
To pass the course, you must collect at least half of the maximum points of the weekly exercises (column N) and at least 50 points from two projects (column P). (Even if you collect 50 points from one project and 0 points from the other one, you have not enough points to pass the course, since both the projects are mandatory.) In addition, you must pass the exam (get grade 1-5). The final grade is the average of three numbers: exam grade, score from the weekly exercises, and score from the projects. The average is rounded to nearest integer, whereupon e.g. 2.33 is rounded to 2, but 2.67 is rounded to 3.
Exception: In counting the mean, there is the exception that if the exam grade is 1, total grade cannot be more than 3.
Grading calculator¶
If the above rules for calculating the total grade are confusing and if you
understand things more easily from the program code, it is a good idea to
look at the example examples/00/grading.
To avoid bigger problems, copy the example into the directory
student/00/grading before executing it.
The example can be found in Git almost in the same place as the template codes for the assignments. However, it is better to first complete and submit the first exercise on the current round (2.3.1 First submission). In this way, you will be more familiar with version control and Git.
Even if reading code is difficult, you can run the example program with different scores and exam grades to see which grade you will get with your inputs. The program can be executed as follows:
The program uses the following values for constants:
MAX_P_POINTS: 100
MAX_N_POINTS: 650
MAX_B_POINTS: 10
Update the values, if they do not match with those in Plussa.
Enter points from categories N, P1, P2, B, and exam grade: 650 50 50 10 1
-> Score from weekly exercises: 5
-> Score from projects: 5
-> Total grade: 3
The program uses the following values for constants:
MAX_P_POINTS: 100
MAX_N_POINTS: 650
MAX_B_POINTS: 10
Update the values, if they do not match with those in Plussa.
Enter points from categories N, P1, P2, B, and exam grade: 650 20 30 10 5
-> Score from weekly exercises: 5
-> Score from projects: 1
-> Total grade: 4
The program uses the following values for constants:
MAX_P_POINTS: 100
MAX_N_POINTS: 650
MAX_B_POINTS: 10
Update the values, if they do not match with those in Plussa.
Enter points from categories N, P1, P2, B, and exam grade: 650 50 0 10 5
-> Score from weekly exercises: 5
-> Score from projects: 0
-> Total grade: 0
As the first input, you shall give five numbers separated by empty spaces.
Check that the program uses exactly those maximum points that can be
found from Plussa.
Necessarily, you can update the values for the constants in the file
main.cpp.
About projects¶
Projects are larger programming tasks than the weekly exercises. Their aim is to ensure that you can apply the topics of the course independently (and you have gained the knowledge needed in the exam). We have the following rules for working in groups:
There are two projects on the course. Implementing both of them is required. One project is not enough, even if you get 50 points or more from it.
Projects are allowed to (not have to) be done in groups with two students at most. In such cases, write clearly at the top of each source code file, who are the two students that have worked together (student number, name, email).
For a pair project, there is a link “Form a group” on the left-side menu in the course platform. This enables students to create groups. In addition, the submit box of a pair project shows two choices: “Submit independently” / “Submit in a group”. You should be careful in selecting the choice, because you cannot change it afterwards.
If you are working in pairs, all submissions must be made as pair submissions, so you cannot, e.g. in training purposes, submit first alone.
Working in groups requires self-discipline. Especially such a way of working that one student codes and the other do not understand anything, will lead to a catastrophe. Most probably, the latter student will not learn course content deeply enough to be able to continue to later courses.
Caution
If your aim is to continue programming after this course, it is import know that the prerequirements of next courses (both Data Structures and Algorithms 1 and Programming 3: Interfaces) have grade 3 from this course.
Projects will be considered in weekly exercise hours on the week in question. By following exercises, it will be easier to start working with a project.
As told above, assistants evaluate projects, whereupon they pay attention e.g. to style issues and use of version control. After assistants have evaluated a project, feedback given by them will be added in Plussa as one of the project submissions. This will also be announced as a Plussa news. If you have remarks about the evaluation, you can contact the assistant who evaluated your project, within a week after the Plussa news. You can find assistant’s e-mail address in the feedback document.
Special arrangements¶
Special arrangements require justifiable documented reasons such as medical certificate or individual study arrangements. If you need extra time for doing exercises, send email to course’s email account (prog2@tuni.fi) as soon as possible, preferable before the deadline, to discuss the situation.