Syllabus for the Course

Programme Name: Certificate Programme in Open Source

Conventions:

  1. [x weeks] duration of the specific part of the course. Assumes about 20 hours of study time per week.
  2. C/n: Content is at level n. 0 - no version given, 1 - draft given, 2 - edited version given
  3. A/n: Assignment is at level n. 0 - nothing given, 1 - version 1 given, 2 - nearly final version

Course 1: Computer Science Foundation [10 weeks]

Block 1: Operating Systems and Architecture [3 weeks][C/2,A/0]

Concept of operating system; basic structure of a computer; components and their functions; memory management covering virtual memory, cache memory, paging, etc; file system and management; device management; input/output handling

Block 2: Working with Linux [0.5 weeks][C/1,A/1]

Linux as an Operating system, Linux File Structure, Vi Editor, Basics of working with a shell.

Block 3: Basic Web Technology [2 weeks][C/1, A/0]

History of the Internet and World Wide Web, Basic web protocols – HTTP, SMTP etc; Domain Names; URL; HTML, CSS, Client and Server side Scripting

Block 4: Programming with PHP - Part I [3 weeks][C/0, A/0] — almost ready

Introduction to PHP, Variable, Constants, String handling, Operators, Functions, Classes and objects. Streams. HTML FORM creations and submission; basics of data structures and algorithms

Block 5: Basic Software Engineering [1.5 weeks][C/2, A/0]

Concept of software engineering, Software Process Models, Software Requirement Specifications, Data Flow Diagrams, Software Design, Software Testing.

Course 2: Database Management System

Block1: Basic Concepts [1.5 weeks][C/2, A/0]

Introduction to RDBMS, ER Diagram, Normalisation, transactions, querying, basic relational algebra.

Block 2: SQL [1.5 weeks][C/2, A/1]

Queries (select, delete, update), aggregate functions, selection/filtering operators, where clauses, group-by clause, join queries

Block 3: PostgreSQL [1 week][C/0, A/0] —almost ready

Managing database in PostgreSQL, Submitting Queries, Datatypes, Backup and Restore.

Course 3: Web application Development [6 weeks]

Block 1: Using a Web Server [0.5 week][C/2, A/1] — sent on 7th evening.

Introduction to Web Server, Installing and Running Apache, Virtual Hosts, Authentication, Authorization and Access Control, URL rewriting.

Block 2: Client side programming with JavaScript [2 weeks][C/2, A/1]

Introduction, Variable and Data Types, Operators and Expressions, Interecting with user, Looping, Function, JavaScript Object, Event and Event Handlers, Interactive forms, cookies, Security.

Block 3: Programming with PHP- Part II [3 weeks][C/0, A/0] — due by 10th

Session handling in PHP, file manipulation, working with XML, support of HTTP authentication, Exception Handling

Block 4: IDE using Eclipse [0.5 week] [C/2, A/1]

PHP development environment in Eclipse, creating PHP project and debugging PHP program in eclipse.

Course 4: FOSS Development methodology [3 weeks]

Block 1: Introduction to FOSS [1 week][C/1, A/1]

Concept of Open Source Software, Benefits, Open Standards, Free/open source software Movement, Government initiatives for FOSS , Some examples of FOSS, Licensing issues.

Block 2: FOSS Development Methodology [1 week][C/2, A/1]

Bazaar and Cathedral Model, Essential elements of FOSS Development Methodology, Case studies, FOSS Communities

Block 3: Version Control using SVN [0.5 week][C/2, A/1]

Concept of Version Control, Introduction to Subversion, Branching and Merging, Repository Administration and configuration

Block 4: Bug Tracking using Bugzilla [0.5 week][C/0, A/0] — due by 9th

Types of bugs, Concept of bug tracking, bug tracking lifecycle, using Bugzilla to track bugs, other bugtracking systems.

Course 5: Project [6 weeks]

details to be worked out

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License