Programming Project with Open Source Code
Examination
Course examination
Passing the course requires fulfilling a number of criteria as listed
below. A passing grade requires students to score at least on the
lowest level in all categories and achieve a minimal score of 22
points.
The overall grade is determined by your score in the categories for
each criterion. Each criterion is weighted, and the sum
translates to your final grade.
Grading criteria
The
project rating is calculated based on a number of
categories as described below. Each category (Technical
difficulty,Process difficulty) has three levels ("Easy", "Medium",
"Hard") that translate into points according to the table
below.
Level |
Technical difficulty |
Process difficulty |
Development process |
Individual contributions |
Easy
|
6
|
3
|
4
|
8
|
Medium
|
12
|
6
|
8
|
16
|
Expert
|
18
|
9
|
12
|
24
|
Each category is further described by a number of attributes,
and at the start of the project, the project-related attributes are
translated to a common assessment for all projects. When choosing the
level for each category, the
most fitting descriptions will
be selected. The course staff will assess whether your estimates of
difficulty or contributions are accurate.
The sum of points will translate into
a grade as follows:
- Grade 3: 21-34 points
- Grade 4: 35-48 points
- Grade 5: 49-63 points
Failure to meet the lowest criterion on any attribute, in any
category, will result in failure to pass. You must at least fulfill
the minimum requirements for each attribute.
Technical difficulty
|
Build and test environment
|
Domain knowledge requirements
|
Size
|
Easy
|
No configuration needed
|
No expertise apart from course-level knowledge required
|
50-400 KLOC, 0-3 external static libraries required.
|
Medium
|
File settings and manual build steps
|
A few specific new algorithms or tools to learn
|
400 KLOC-1MLOC, several components built and tested against both internal and external components
|
Hard
|
Custom configuration languages, build tools
|
Several weeks or months of study estimated for initial contributions
|
More than 1 MLOC, several components shipped in multiple versions with dependencies on each other as well as external components.

|
Process difficulty
|
Issue tracker
|
Documentation
|
Communications
|
Easy
|
Contains issues tagged as suitable for beginners
|
Contains guides and tutorials for new developers
|
Contains specific communication channels for new developers
|
Medium
|
Contains issues marked with difficulty
|
Contains introduction chapters and suggested readings in documentation
|
Contains open communication channels
|
Hard
|
No metadata on difficulty in issue tracker
|
No clear introduction to new developers
|
Restricted communication channels
|
Development process
|
Group contributions
|
Planning and reflection
|
Engineering practice
|
Easy
|
Shares code, tutorials and development tips to other members of the team. Actively participates in project meetings.
|
Creates a plan for each sprint with sufficient details to guide the work, amounting to a number of hours that correspond the amount of credits given by the course.
|
Uses the required set of tools and suggested practices for code contributions in the host project
|
Medium
|
Shares documentation and material, and also gives valuable feedback on others' contributions
|
Uses the plan actively and updates the plan to take into account new information and events
|
Takes care to follow established good practices in continuous development and testing
|
Hard
|
Actively helps team members improve, and provides tutorials or other help to team members
|
Uses external sources from the host project to validate the feasibility of the plan and to update accordingly
|
Contributes with general quality improvements for the process of developing, building and testing software in the project
|
Individual contributions
|
Quantity of code contributions
|
Complexity of code contributions
|
External communications
|
Easy
|
At least one contribution that has been accepted by the project.
|
Non-trivial code contribution
|
Has been able to communicate successfully with at least one developer in the external project on a suggested contribution
|
Medium
|
Several contributions that has been accepted by the project
|
Code contributions that solve different problems or a moderately challenging problem
|
Has participated in several discussions with project members before and after own contributions
|
Hard
|
Several types of contributions (e.g. new features, bug fixes or documentation) that has been accepted by the project
|
Code contributions that solve a challenging problem
|
Has successfully proposed new features to the project
|
Page responsible: Daniel Varro
Last updated: 2022-11-14