Becoming an Open-Source Software Contributor seminar (BOSS)

Supervisors

Fedor Smirnov

Module description:

Univis

ECTS information:

2 SWS (5 ECTS)

Fields of study:

Informatik, CE und I&K

Initial Meeting

Wednesday, 30.10.19. 14:15, in room 02.133-128

Registration

The registration is done via StudOn, and opens on the 15.09.2019. The number of participants is limited to 12. The registration is done following the first-come-first-served principle.

Documents:

You can find useful documents in StudOn

Useful Links

TBD

Description:

Within the last decade, open-source software has become increasingly important. Nowadays, open-source tools like, e.g., the Apache HTTP server, Mozilla Firefox, or the GNU/Linux operating system have become essential for both the private use and the industry. Especially for programmers at the beginner or intermediate level, participation in open-source projects offers an excellent opportunity to improve their programming and collaboration skills, while making a valuable contribution to the development of real software projects.

In this seminar, the students are offered the the opportunity to gain experience in developping open-source software by extending two existing and mature open-source frameworks for design automation, Opt4J [1] and openDSE, by new features. After choosing a feature (a list of possible features will be provided, but own ideas are very welcome) for implementation, the students are to explore the existing code base, develop ideas for the implementation of the feature and implement these ideas. The final goal of this seminar is a full integration of the developed software into the Opt4J/openDSE framework. Depending on the number of participants and the complexity of the chosen feature, the seminar task can be carried out alone or within small groups. The grades are hereby given based on fulfilling (and ideally, surpassing) the feature specification, the quality and the documentation of the written code, as well as a short presentation of the final results.

What students shall learn:

  • Working with large open-source projects
  • Working with tools for continuous integration/assuring code quality
  • Formulating and reviewing pull requests

Literature:

  • [1] M. Lukasiewycz, M. Glaß, F. Reimann and J. Teich. Opt4J – A Modular Framework for Meta-heuristic Optimization. Proceedings of the Genetic and Evolutionary Computing Conference (GECCO 2011), pp. 1723–1730, Dublin, Ireland, Jul. 12–16, 2011.
    [doi:10.1145/2001576.2001808]