Assignments

 

The assignments are divided into two examinations parts, the reading group assignment worth 1.5 credit and the programming assignment worth 3 credits. The reading assignments will be done in groups of four, and the programming assignments will be done in groups of two.

Deadline for the assignment parts can be found in the assignment descriptions, which in turn can be found in the git repository:

git clone ssh://{user-name}@git.dsv.su.se/git/prop/info

If you hand assignments in late, you cannot score higher than grade E (lowest possible pass).

Reading Group Assignment

The reading group assignment consists of three parts, one per programming paradigm covered during the course and the assignment descriptions can be checked out from the course's git repo.

Programming Assiment

The programming assignment consists of three parts, one per programming paradigm covered during the course and the assignment descriptions can be checked out from the course's git repo.

1. OO Implementation
In order to receive the grade E you have to implement inheritance and reflect on your implementation. To receive a grade better than C, you also have to implement delegation, and reflect on the differences.

Grading programming is more an art than a science. In the general case, it is extremely difficult to impossible to say that one program is better than the other. For the obvious reasons, it is impossible to cover the grading criteria completely. In any case, the points below are not totally black/white. This is why you should also should reflect on you implementation.

For the programming assignment for block 2 the following table will be used when grading the assignments.


Table 1: Grading scheme OO Assignment
Grade Inheritance Delegation Reflections
A Good Good Good
B Good Good OK
C Good Missing/OK OK
D OK Missing/OK- OK-
E OK- Missing/OK- OK-
Fx Missing/OK- Missing Missing/OK-
F Missing Missing Missing


To get a Good, your program/answer must:

For every point above that is not satisfied, the program/answer takes one step down the grade ladder from Good down to Missing/Fail.

2. Prolog

The prolog assignment is graded as follows:
A | Good implementation of basic functionality and 2 well
executed extensions
B | Good implementation of basic functionality and 1 well executed extension
C | Good implementation of basic functionality
D | Acceptable implementation of basic functionality
E | Sufficient implementation of basic functionality

3. Clojure

In order to receive the grade E you have to implement the safe macro and write the reflection on macros. To receive a grade better than C, you also have to implement the SQL macro.

Grading programming is more an art than a science. In the general case, it is extremely difficult to impossible to say that one program is better than the other. For the obvious reasons, it is impossible to cover the grading criteria completely. In any case, the points below are not totally black/white. This is why you should also should reflect on you implementation.

For the programming assignment for block 4 the following table will be used when grading the assignments.


Table 3: Grading scheme Clojure Assignment
Grade Safe macro SQL macro Reflections
A Good Good Good
B Good Good OK
C Good Missing OK
D OK Missing OK-
E OK- Missing OK-
Fx Missing/OK- Missing Missing/OK-
F Missing Missing Missing


To get a Good, your program/answer must:

For every point above that is not satisfied, the program/answer takes one step down the grade ladder from Good down to Missing/Fail.