[[PageOutline]] = 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