DIGITAL LIBRARY
BUILDING BRIDGES BETWEEN ACADEMY AND INDUSTRY: IMPROVING CRUCIAL DEVELOPMENT SKILLS THROUGH PARTICIPATING IN OPEN SOURCE PROJECTS
Eötvös Loránd University (HUNGARY)
About this paper:
Appears in: INTED2022 Proceedings
Publication year: 2022
Pages: 1716-1722
ISBN: 978-84-09-37758-9
ISSN: 2340-1079
doi: 10.21125/inted.2022.0515
Conference name: 16th International Technology, Education and Development Conference
Dates: 7-8 March, 2022
Location: Online Conference
Abstract:
Computer science trainings in Hungarian universities often get criticized for providing too many theoretical courses, and not enough practice to make students suitable for immediately producing value in a workplace after they graduate. This is partly legitimate, since universities intend to equip students with lots of theoretical knowledge which will later help them easily understand and engineer large software systems. However, long-standing practical skills should also be instilled. In this paper, we describe the workings of the Model-C++ software technology lab in the Faculty of Informatics, Eötvös Loránd University (ELTE), and how taking part in open source software development prepares students for industrial work.

Most students want to join real-life software development projects as soon as possible, in order to gain useful experience which they can easily utilize when they enter the world of work. We expect such inquiring students in our software technology lab.

Software development in the lab is built on inevitable skills, such as confident usage of at least one widely used programming language (C, C++, Python, Java, C# etc.), basic knowledge in version control systems (git, SVN) and compilers, and, since our students mostly come from trainings that are held in Hungarian, at least intermediate knowledge of English.

The two main projects in the lab that students can join are CodeChecker and CodeCompass. Both are open source, multi-language projects which are developed by ELTE and Ericsson. CodeChecker consists of more than 1000 files, and is mainly developed in Python. Students are first invited to join the development of Clang-Tidy, then they can also contribute to the more complex Clang Static Analyzer. Developers from major companies like Google and Apple take part in the review process of the submitted checkers. CodeCompass consists of more than 400 files. It is first and foremost developed in C++, but the pluginable framework allows a plugin to be written in any language. CodeCompass is used by multiple multinational companies, e.g. Ericsson, Intel, and Graphisoft. Both projects are developed in cooperation with the listed companies, which entails immediate feedback of the new functionalities through industrial usage. This way it is also guaranteed that no useless or unnecessary additions are made to the projects.

The students in the lab can learn about various version control strategies that are common practice in large software projects. They have to actively participate in the review process of each other’s code, thus they are introduced to the usual team work of software development, and learn to argue for their coding decisions and solutions. The projects they work on are also rather large and long-running, throughout which we teach architectural skills to students.

In the last 6 to 8 years, 10-15 students took part in either project through the lab a year on average. All of them got employed shortly after graduation at various workplaces, including multinational companies and smaller startups. In addition to their jobs, some of the students keep contributing to the projects even after graduation, which greatly helps the open source community.
Keywords:
Software technology, open source development, development skills.