--The proposal has been submitted on behalf of the speaker--
The open-source movement has matured over the last few decades and open-source software (OSS) is now an
important and integral part of the software ecosystem. Development of any software now, even in the
commercial world, will probably use some OSS. Injecting open source in teaching of software engineering is a
challenge, as teaching generally focus on concepts, processes and methods and their application for various
tasks in a software project. As open source has not only provided us OSS but also processes and approaches
for doing different tasks, they provide the approach for injecting open source in teaching. This is what the
course Software Development Using Open Source, at IIIT-Delhi does. The goal of the course is to develop in
students the skills and knowledge needed to develop a modest-size application in a small team while
employing open-source software and open source and other methodologies.
The course has a team project whose goal is to develop a working prototype of a full-fledged system using OSS
modules, while writing minimal code. Projects have to use GitHub platform, and use standard open-source
practices of source code control and light weight project management. They are also required to use OSS
technology stacks and tools for implementation.
Lectures focused on concepts and processes for important tasks in a project (e.g. requirements, planning,
architecture, design, etc.) a little before they are required to be used in the project. We start with
requirements specification so they can do it for their project very early in the sem. From then on lectures are a
week ahead of the corresponding activity in the project. In the last few weeks each team makes a presentation
on an open-source software project – its evolution, how it manages the team and project, usage, etc.
The course was introduced a couple of years back and has since become very popular – last year over 300
students wanted to register (though we were able to finally accommodate only 90). Almost all groups
successfully completed their projects. Project evaluation considered the SRS, architecture and design, code
organization in GitHub, record of their commits, testing scripts, etc.
This talk will share further information about the course and experience and challenges in teaching it. Will also
discuss possible efforts to promote this view of teaching software engineering more widely.