Curriculum: Difference between revisions

No edit summary
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
We need to focus on these 3 areas:
=Course Objectives=
# open-source ecosystem that exist in the current world.
# Student knows the foss ecosystem and its philosophical and technical aspects
# To get qualitative and quantitative contributions from the student to the FOSS ecosystem and projects by his creative and innovative ideas
# Student is capable for leading a foss project or working with a foss project
# To strengthen the technical capabilities of the student
# Student knows the foss development workflow
# Student is capable of designing, implementing, deploying, maintaining a FOSS based solution for the society for solving a problem


FOSS is not only a technical solution for a problem of society,  It is a way
==Theory Course==
of collaborative way of approaching and solving problems . A path for
===Unit 1: Free and Open Source Software philosophy and history [4]===
innovative ideas in technology and society by working together and
FOSS definition; Free and Open Source Software; GNU project; History of GNU/Linux development; Development process of important FOSS software; Development process of various GNU/Linux distributions
sharing knowledge.


Some of the topics to be covered:
===Unit 2: Legal, social aspects of FOSS and parallels in other fields [4]===
Various licenses including GPL, LGPL, BSD, etc; Copyleft; Patents, copyrights and trademarks; Concept of free culture with reference to Wikipedia, Creative Commons, Open Street Map; Open Movies; Open Access Journals; Open Standards; Open Hardware


# A brief introduction to Free and Opensource software philosophy and history so far. Practical aspects of FOSS: making money and running busines
===Unit 3: Practical aspects of FOSS: business models [6]===
# The community based FOSS development process: The book 'Producing OSS'(http://producingoss.com/) can be a good reference for this. Students should be introduced to the foss ecosystem, such as
Sharing the burden; Augmenting services; Supporting Hardware Sales; Undermining a competitor;  Dual licencesing; Donations; Support service; Study of examples of each type of business model


* Developer communities
===Unit 4: FOSS development process and tools [10]===
* Mailing lists
Development environments: Eclipse, Anjuta, Kdevlope, Netbeans; Version control; Bug tracking; Wiki; Mailing lists; Forums; Developer communities; IRC; Non technical issue resolution; Promotion; Communication: You are what you write, structure and content, tone, face, pitfalls, best practices; Process:Benevolent dictators, do-ocracy, consensus based democracy
* IRC
* Wiki
* Version control
* Bug tracking
* Non technical issue resolution
* Getting people to work in a project
* 'Assigning' work or getting the work done
* Legal aspects- various licenses and compatibilities and compliance


All these above areas should be introduced with the help of case
===Unit 5: Packaging applications [6]===
studies and students should work with communities to get to know the
Package; Package management tools; Building a package; Packaging guidelines; Package acceptance criterion; Packaging for .deb and .rpm based distributions
"Producing of OSS"


Student should know the technical aspects of the above items too. For
===Unit 6: Case studies [8]===
eg: installing a version control system and its use, Managing a wiki,
Following projects: Linux kernel, GNU Project, Open office, Mozilla Firefox, Gimp, Inkscape, Scribus, Silpa, LaTeX, Vlc, Mplayer, Virtualbox,  MySQL, Postgresql, Sugar, Gnome, KDE, Blender, Google Chrome, Vuze, Scilab, Octave, Pidgin, Evolution, Thunderbird
Running a mailing list, Hands own experience with a bug tracking
system


A practical evaluation based on the involvement in a foss project will be good
==Laboratory Course==
===List of assignments===


* Technical capability strengthening
* Mediawiki: Set up a mediawiki installation with configuration specified by the instructor.
    a) System administration
* Version Control: Install, configure and create a project for the course using git version control system.
    b) network administration
Note: this project will be used for all your work during the course
    c) Website maintenance & design
* Forums: Install, configure a php bulletin board with access control as specified by the instructor.
    d) Database management
* Development:
    e) Shell scripting+ intro to programming languages like python, C/C++
** Start participating in at least 1 known FOSS project
** Take up a task as specified by the instructor
** Test the software and report bugs to the community
** Improve the software as per the specification and with quality acceptable to the community.
* Packaging
** Demonstrate your packaging capabilities by maitaining packages in upstream distributions
* Technical capability strengthening: One of the following (in discussion with the instructor)
*# System administration
*# network administration
*# Website maintenance & design
*# Database management
*# Shell scripting and intro to programming languages like python, C/C++  


* Exposure to the FOSS usage in society
==Textbooks==
    a) e-governance, library management, public websites, disaster management
# Introduction to Free Software, by David Megías Jiménez and David Megías Jiménez (coordinator) et.al., Published by SELF Project (http://www.selfproject.eu/en/Coursebook_Intro_Free_Software)
    b) language computing, l10n, i18n
# Free/Open Source Software: A General Introduction, by Kenneth Wong and Phet Sayo, published by International Open Source Network and United Nations Development Programme
# Producing OSS (http://producingoss.com) by Karl Fogel
# Free Software, Free Society: Selected Essays of Richard M. Stallman (http://www.gnu.org/philosophy/fsfs/rms-essays.pdf)


At the end of the course, the following should be the expectations
==References==
1. student know the foss ecosystem and its philosophical and technical aspects
# The Cathedral and the Bazaar (CatB), by Eric S. Raymond  Published by O'Reilly Media
2. Student is capable for leading a foss project or working with a foss project
# GNU Project Website http://www.gnu.org
3. Student know the foss development workflow
# Free Technology Academy Materials http://ftacademy.org/materials
4. Student is capable of designing +implementing + deploying +maintaining a FOSS based solution for the society for solving a problem
# Various online resources for learning the tools