[Ilugc] [NRC-FOSS] RFC: Syllabus v0.2.0

  • From: sanand@xxxxxxxxxx (Sridharan Anand)
  • Date: Thu May 12 06:43:23 2005

Based on feedback received in the previous thread on this topic, here is
a revised outline of the draft syllabus.  Many thanks to all those who 
contributed to the discussion.

This is the first iteration of what will hopefully be a useful set of
suggestions to take to the meeting on Saturday as the consensus position 
of ILUG-C.  We can now debate the utility of each of the points below.

The additions/modifications are divided into sections to facilitate easier
referencing.  Every point is up for discussion, except II.0 which cannot
be modified.

For background information on the NRC, see http://www.au-kbc.org/nrcf/.
These pages will be superseded by C-DAC's FOSS portal when it comes on 
line.

Just to give you an idea of the sort of curriculum followed by most AU
students in their BE (CSE) course, I've also included the curriculum 
taught at the MIT Campus of AU in semesters I-VI.  CEG and AC Tech. may 
have a slightly different curriculum.  Please note that this curriculum 
is representative, not definitive.  The course under discussion will be 
offered as one of the electives for semester VI.

This is a unique opportunity for the community to do something about
university curricula in India in an area that is of vital interest to
everyone.  Let us provide constructive feedback so that we can achieve
this goal.

Many thanks and best regards,

Anand.


RFC: FOSS Course Syllabus v0.2.0

Action is required on:
1. Further pruning the syllabus, Section IV, to satisfy the 45-hour requirement.
2. Dividing contact hours for classroom/lab sessions for each unit.
3. Any other changes found necessary.

-------------------------------------------------
Proposed changes to the syllabus. 

I. Objectives
=============
0. To develop a broad understanding of FOSS activities and methodologies.
1. To enable the student to become proficient in the use of FOSS tools and
   development methods to the extent that she is able to make useful
   contributions to FOSS projects.

II. Structure and scope
=======================
0. Total contact hours: 45 (NB: this is really a constraint!)
1. The course will have regular classroom sessions as well as associated
   laboratory work approximately in the ratio 1:3.
2. Students who opt for this course will be expected to do their final year
   and pre-final year projects in a FOSS-related area using FOSS tools
   and methods.

III. Canonical Platform
=======================
0. The distribution used to illustrate and implement examples and
   exercises will be Debian 3.0r5 (`Woody') (or whichever is the latest
   stable version at that point) for GNU/Linux systems, and FreeBSD 5.4 (or
   the latest stable version) for BSD systems.
1. Where it makes sense to do so, the canonical platforms will be assumed
   to be i386-pc-linux-gnu and i386-pc-freebsd.

IV. Syllabus
============
0. Overview and history of FOSS -- the UNIX heritage of GNU and BSD; FS
   licences; some prominent FOSS projects and resources. (1 hr.)

1. System Administration -- installation; the boot process; shell 
   scripting; user management; device management; network configuration;
   setup and configuration of mail/web/telnet/ssh/samba/dhcp/DNS servers.
   (? + ? hrs.)

2. FOSS Programmers' Tools -- make, flex, bison, m4, sed,
   gawk, bfd, ctags/etags, binutils, textutils, diffutils, etc.  (? + ? hrs.)

3. FOSS Development Methodology -- versioning (cvs); build and
   configuration (autotools); bug tracking (gnats); l10n and i18n (gettext);
   introduction to savannah/*forge; testing (DejaGnu); brief introduction to
   porting and cross compilation tools (crosstool); brief introduction to
   POSIX.  (? + ? hrs.)

4. The Linux Kernel -- compiling the kernel, kernel tuning; what are
   kernel modules, simple exercises; overview of the source (après Lions' 
   commentary but scaled down drastically).  (? + ? hrs.)


End of proposed changes.
------------------------------------------------


Representative BE (CSE) Curriculum at MIT:
------------------------------------------
Legend: LH=lecture hrs/wk; TH=theory hrs/wk; PH=practical hrs/wk;
P=practial/lab course; T=theory/classroom course. (Don't ask me what's the
difference between `lecture hours' and `theory hours!'  I think that was a
typo in the original that probably stands for `tutorial hours.')
-----------------------------------------------------------
Sem. Type Title                                  LH  TH  PH
I     P   Computer Practice I                    1   0   3
                                                        
II    T   Programming and Data Structures        3   1   0
      P   Programming and Data Structures Lab    0   0   3
                                                        
III   T   Database Management Systems            3   0   0
      T   Digital Systems                        3   1   0 
      T   Introduction to Analysis of Algorithms 3   1   0 
      T   System Software                        3   0   0
      P   Digital Lab                            0   0   3
      P   System Software and DBMS Lab           0   0   4
                                                        
IV    T   Artificial Intelligence                3   0   0
      T   Computer Architecture I                3   1   0
      T   Interactive Computer Graphics          3   0   0
      T   Object Oriented Programming            3   0   0
      P   Object Oriented Programming Lab        0   0   3
                                                        
V     T   Digital Signal Processing              3   0   0
      T   Elective I                             3   0   0
      T   Microprocessors                        3   1   0
      T   Operating Systems                      3   0   0
      T   Theory of Computation                  3   0   0
      P   Microprocessor Lab                     0   0   4
      P   Operating Systems Lab                  0   0   3
                                                        
V Electives
      T   Numerical Methods                      3   1   0
      T   Neural Computing                       3   0   0
      T   Multimedia                             3   0   1
      T   Advanced Databases                     3   0   0
      T   Visual Programming                     2   0   3
      T   Advanced Java Programming              3   0   0

VI    T   Computer Architecture II               3   0   0
      T   Computer Networks                      3   0   0
      T   Elective II                            3   0   0
      T   Engg. Economics and Fin. Accntg.       3   0   0
      T   Principles of Compiler Design          3   0   0
      T   Software Engineering                   3   0   0
      P   Compiler Lab                           0   0   4
      P   Network Programming Lab                0   0   3

VI Electives
      T   Advanced Operating System              3   0   0
      T   Design of Algorithms                   3   0   0
      T   Real Time Systems                      3   0   0
      T   Digital Speech and Image Processing    3   1   0
      T   Pattern Recognition                    3   0   0
      T   High Performance Microprocessors       3   0   0
      T   Robotics                               3   0   0
      T   Graph Theory                           3   0   0
      T   UNIX Internals                         3   0   1
      T   The Java Virtual Machine               2   0   2
      T   C# and .NET Framework                  3   0   1
-----------------------------------------------------------

Other related posts: