Unit OPEN SOURCE LABORATORY

Course
Programming and management of computer systems
Study-unit Code
A003651
Curriculum
In all curricula
Teacher
Marina Latini
Teachers
  • Marina Latini
Hours
  • 36 ore - Marina Latini
CFU
3
Course Regulation
Coorte 2023
Offered
2023/24
Learning activities
Altro
Area
Tirocini formativi e di orientamento
Academic discipline
NN
Type of study-unit
Obbligatorio (Required)
Type of learning activities
Attività formativa monodisciplinare
Language of instruction
Italian
Contents
The Open Source Lab course is designed to provide students with a thorough nderstanding of the concepts and practices related to the world of open source. During the course, we will explore the basic principles of open source, its implications in technology and society, and the practical skills needed to actively participate in open source projects.
Reference texts
Materials provided by the teacher
Educational objectives
By the end of this course, students will be ready to enter the world of open source with a thorough understanding of the principles, practices and skills needed to participate meaningfully in open source projects, ready to contribute and make a difference in the open source community.
Prerequisites
Basic knowledge of programming (preferably in languages such as Python, Java or C++) and familiarity with basic code management concepts through platforms such as Git.
Teaching methods
The course includes theoretical lectures, class discussions, hands-on lab exercises, and direct involvement in open source projects such as LibreOffice. Students will have the opportunity to actively contribute to the LibreOffice project, applying the skills acquired during the course.
Other information
The teacher is available to deliver lectures, tutorials and exam sessions in English. The teacher is available to take the examination in English.
Learning verification modality
Verification will be through the presentation of a project in written and oral modes.
Extended program
Introduction to Open Source.
Definition of open source and its historical context.
Benefits and challenges of open source.
Analysis of open source licensing.
Open Source Development Models.
Discussion of collaborative development models, such as the “bazaar” model and the “cathedral” model.
Roles within an open source project: developers, maintainers, contributors, etc.
Relevant Open Source Projects.
Case study of success stories in the open source world, such as Linux, LibreOffice, Mozilla, etc.
Social and economic impact of open source projects.
Contribution and Collaboration.
Use of project management platforms such as GitHub and GitLab.
Forking, branching, pull and merge requests.
Conflict resolution and code review with GitHub, GitLab and Gerrit.
The process of developing, releasing and maintaining code.
Platforms for creating and distributing binary packages from source in an automated, consistent and reproducible manner such as Open Build Service.
Development of Technical Skills.
Hands-on problem reporting and analysis exercises with Bugzilla and git bisect.
Implementation of small improvements to LibreOffice code to understand how to make initial contributions to the project.
Software deployment using .spec files and software build recipes.
Localization of the software with Weblate.
Effective communication within open source communities.
Standards of behavior and adherence to community guidelines.
Obiettivi Agenda 2030 per lo sviluppo sostenibile
This teaching contributes to the realization of the UN goals of the 2030 Agenda for Sustainable Development.
Condividi su