Note: Currently new registrations are closed, if you want an account Contact us

Difference between revisions of "Curriculum"

From FSCI Wiki
(Ideas from Santhish Thottingal)
 
(Sat with Abhijith to finalize this)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
We need to focus on these 3 areas:
=Course Objectives=
1. A curriculum that introduces the student to the free and
# Student knows the foss ecosystem and its philosophical and technical aspects
open-source ecosystem that exist in the current world.
# Student is capable for leading a foss project or working with a foss project
2. To get qualitative and quantitative contributions from the student
# Student knows the foss development workflow
to the FOSS ecosystem and projects by his creative and innovative
# Student is capable of designing, implementing, deploying, maintaining a FOSS based solution for the society for solving a problem
ideas
3. To strengthen the technical capabilities of the student
The curriculum provided by you focus only in the 3rd aspect and
completely ignores the first 2 parts. Knowing a server administration
or LAMP configuration doesn't serve the purpose of a improved FOSS
ecosystem other than solving a specific practical solution. FOSS is
not only a technical solution for a problem of society,  It is a way
of collaborative way of approaching and solving problems . A path for
innovative ideas in technology and society by working together and
sharing knowledge.
To be specific, I can point out some of the topics to be covered:
* A brief introduction to Free and Opensource software philosophy and
history so far. Practical aspects of FOSS: making money and running
busines
* 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
    a) Developer communities
    b) Mailing lists
    c) IRC
    d) Wiki
    e) Version control
    f) Bug tracking
    g) Non technical issue resolution
    h) Getting people to work in  a project
    i) 'Assigning' work or getting the work done
    j) Legal aspects- various licenses and compatibilities and compliance
All these above areas should be introduced with the help of case
studies and students should work with communities to get to know the
"Producing of OSS"
Student should know the technical aspects of the above items too. For
eg: installing a version control system and its use, Managing a wiki,
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
*Technical capability strengthening
    a) System administration
    b) network administration
    c) Website maintenance & design
    d) Database management
    e) Shell scripting+ intro to  programming languages like python, C/C++


* Exposure to the FOSS usage in society
==Theory Course==
    a) e-governance, library management, public websites, disaster management
===Unit 1: Free and Open Source Software philosophy and history [4]===
    b) language computing, l10n, i18n
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


At the end of the course, the following should be the expectations
===Unit 2: Legal, social aspects of FOSS and parallels in other fields [4]===
1. student know the foss ecosystem and its philosophical and technical aspects
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
2. Student is capable for leading a foss project or working with a foss project
 
3. Student know the foss development workflow
===Unit 3: Practical aspects of FOSS: business models [6]===
4. Student is capable of designing +implementing + deploying
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
+maintaining a FOSS based solution for the society for solving a
 
problem
===Unit 4: FOSS development process and tools [10]===
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
 
===Unit 5: Packaging applications [6]===
Package; Package management tools; Building a package; Packaging guidelines; Package acceptance criterion; Packaging for .deb and .rpm based distributions
 
===Unit 6: Case studies [8]===
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
 
==Laboratory Course==
===List of assignments===
 
* Mediawiki: Set up a mediawiki installation with configuration specified by the instructor.
* Version Control: Install, configure and create a project for the course using git version control system.
Note: this project will be used for all your work during the course
* Forums: Install, configure a php bulletin board with access control as specified by the instructor.
* Development:
** 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++
 
==Textbooks==
# 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)
# 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 (www.gnu.org/philosophy/fsfs/rms-essays.pdf)
 
==References==
# The Cathedral and the Bazaar (CatB), by Eric S. Raymond  Published by O'Reilly Media
# GNU Project Website http://www.gnu.org
# Free Technology Academy Materials http://ftacademy.org/materials
# Various online resources for learning the tools

Revision as of 22:31, 19 November 2010

Course Objectives

  1. Student knows the foss ecosystem and its philosophical and technical aspects
  2. Student is capable for leading a foss project or working with a foss project
  3. Student knows the foss development workflow
  4. Student is capable of designing, implementing, deploying, maintaining a FOSS based solution for the society for solving a problem

Theory Course

Unit 1: Free and Open Source Software philosophy and history [4]

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

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

Unit 3: Practical aspects of FOSS: business models [6]

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

Unit 4: FOSS development process and tools [10]

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

Unit 5: Packaging applications [6]

Package; Package management tools; Building a package; Packaging guidelines; Package acceptance criterion; Packaging for .deb and .rpm based distributions

Unit 6: Case studies [8]

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

Laboratory Course

List of assignments

  • Mediawiki: Set up a mediawiki installation with configuration specified by the instructor.
  • Version Control: Install, configure and create a project for the course using git version control system.

Note: this project will be used for all your work during the course

  • Forums: Install, configure a php bulletin board with access control as specified by the instructor.
  • Development:
    • 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)
    1. System administration
    2. network administration
    3. Website maintenance & design
    4. Database management
    5. Shell scripting and intro to programming languages like python, C/C++

Textbooks

  1. 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)
  2. Free/Open Source Software: A General Introduction, by Kenneth Wong and Phet Sayo, published by International Open Source Network and United Nations Development Programme
  3. Producing OSS (http://producingoss.com) by Karl Fogel
  4. Free Software, Free Society: Selected Essays of Richard M. Stallman (www.gnu.org/philosophy/fsfs/rms-essays.pdf)

References

  1. The Cathedral and the Bazaar (CatB), by Eric S. Raymond Published by O'Reilly Media
  2. GNU Project Website http://www.gnu.org
  3. Free Technology Academy Materials http://ftacademy.org/materials
  4. Various online resources for learning the tools