Certificate course in FOSS Programming

Overview

The idea is that a graduate of the course should be up and running as a FOSS programmer by the time he/she has finished the course. So what are the characteristics of a FOSS programmer that the course is supposed to inculcate?

  • Collaborative programming
  • Not reinventing the wheel - building on other's code, either by joining projects or by branching
  • Creative and extensive use of SVN repositories, mailing lists, wikis and IRC
  • Ability to read and learn from the manuals/docs
  • Ability to install software with various dependencies and get all the parts working together
  • Fluency with various code editors - either general purpose like vim/emacs or specific language oriented ides like eric3, quanta+
  • Competence in at least one scripting language, one GUI toolkit, one web framework and one networking framework/toolkit
  • A basic knowledge of etiquette to be observed on mailing lists, devel lists, IRC and wikis
  • Some background on FOSS licenses and the comparative merits of the various licenses available. Basic background on copyright and patent issues.
  • i18n and l10n awareness and the realisation that this should be implemented from ground up

The course also needs a modern scripting language to illustrate the concepts. Python fits the bill here and will be used for this purpose.

Duration

30 hours theory, 30 hours practical sounds good. There will be interim and final exams and a project. All exams will be open book.

Modules

In no particular order

  • Python programming
  • Subversion and trac
  • Apache and postgresql
  • Django web framework
  • wxPython gui toolkit
  • twisted networking framework
  • zope application server
  • Javascript
  • Netiquette, licensing, copyright and patents
  • Project