TDDE14 Large-Scale Software Development: Contributions and Evolution
Course goalsThe course goals, as stated in the Study Guide, are
- Use existing conventions and follow established processes to contribute through software to a distributed, large-scale development project.
- Present changes and updates so external parties may approve submissions.
- Create a time plan and monitor progress through a common development project
- Use appropriate tools for contemporary, large-scale software development
- Independently acquire new knowledge and skills in order to contribute to a large-scale software project.
Course formatThe first week of the course, you will get to select from among a set of projects one that you wish to contribute to. Students get to select two projects each that they would like to contribute to, based on a curated list of projects from TDDE06, or another one. Note that we have made a slightly more compact categorization here compared to in TDDE06. The projects will then be assigned a group of students based on your preferences by the course staff. The course features weekly seminars, where each group of three to four students will get to demonstrate their progress. The first week, you get to write contribution plans that describe how to contribute to a project. Every second week, there will be a sprint review, where the plan for the sprint is compared to the outcome of the sprint. Each sprint will also contain a mid-sprint meeting, where participants are required to participate to report on their progress and discuss issues during development.
Course examinationPassing 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 criteriaThe project rating is calculated based on a number of categories as described below. Each category (Technical difficulty,Process difficulty) has three levels ("Easy", "Medium", "Expert") that translate into points according to the table below. 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: 22-36 points
- Grade 4: 37-51 points
- Grade 5: 52-66 points
ProjectsProjects that students select to work in during the course will have to fulfill some basic criteria on their size. Currently, we define a "large-scale project" as being one that is
- actively developed, by
- at least 50 developers, who have contributed
- at least 3000 commits
## Web - Django: - Github: https://github.com/django/django - Documentation for contributors: https://docs.djangoproject.com/en/dev/internals/contributing/ - Rails - Github: https://github.com/rails/rails - Documentation for contributors: http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html ## Game - cocos2d-x - Github: https://github.com/cocos2d/cocos2d-x - Contribute: https://github.com/cocos2d/cocos2d-x/blob/v3/CONTRIBUTING.md - libgdx - Github: https://github.com/libgdx/libgdx - Contribute: https://github.com/libgdx/libgdx/wiki/Contributing ## Dev - Docker - Github: https://github.com/docker/docker - Contribute: https://github.com/docker/docker/blob/master/CONTRIBUTING.md - Chef - Github: https://github.com/chef/chef - Contribute: https://github.com/chef/chef/blob/master/CONTRIBUTING.md - Eclipse - Git repositories: https://git.eclipse.org/c/ - Contribute: https://eclipse.org/contribute/ - IntelliJ - Plugin Repository: http://plugins.jetbrains.com/ - Core repository: https://github.com/JetBrains/intellij-community - Contribute: http://www.jetbrains.org/display/IJOS/Contribute ## Machine Learning - Scikit - Github: https://github.com/scikit-learn/scikit-learn - Contribute: https://github.com/scikit-learn/scikit-learn/blob/master/CONTRIBUTING.md - Caffe - Github: https://github.com/BVLC/caffe - Contribute: http://caffe.berkeleyvision.org/development.html ## Text editors - Atom - Github: https://github.com/atom/atom - Contribute: https://github.com/atom/atom/blob/master/CONTRIBUTING.md - Textmate - Github: https://github.com/textmate/textmate - Contribute: https://github.com/textmate/textmate/blob/master/CONTRIBUTING.md - Neovim - Github: https://github.com/neovim/neovim - Contribute: https://github.com/neovim/neovim/blob/master/CONTRIBUTING.md ## General - Libreoffice - https://www.libreoffice.org/about-us/source-code/ - Blender - https://www.blender.org/get-involved/developers/ - D3 - Github: https://github.com/d3/d3 - Contribute: https://github.com/d3/d3/blob/f2347b4ea1e25f18ff1864576d8e0180e823ba38/CONTRIBUTING.md - Linux - Github: https://github.com/torvalds/linux - OpenBazaar - Github: https://github.com/openbazaar - Contribute: https://docs.openbazaar.org/06.-Developers/
Page responsible: Ola Leifler
Last updated: 2017-08-28