Hide menu

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