Course Structure

This diploma course covers the following topics in depth:

Basic computer and software concepts
Using the Windows 98/2000 and Unix Environments
Programming Fundamentals in Java, C and C++
Data structures
Algorithms
Computer Architecture
Operating Systems Principles
Computer Networking and Internet
Database Management
Object Oriented Analysis and Design (using UML)
Graphical User Interface Development
Web Programming
Software Engineering
Component-Based Software Development

This is done in the form of the following twelve modules covered over a period of 52 weeks. Each module involves a minimum study of approximately 160 hours consisting of lectures, tutorial, quizzes, hands-on evaluations, project work, assignments and self-study.

This year we have slightly revised the FPGDST course structure. The first 10 weeks of FPGDST 2001 will be used to cover the following topics:-

Programming Fundamentals: problem solving using computer
Object-oriented programming: objects, classes, inheritance, encapsulation, polymorphism
Data structures: arrays, lists, stacks, queues, trees, graphs
Algorithms: time and space complexity, complexity classes, searching, sorting, algorithm design
Programming languages: Java, C and C++

These will be covered in three separate modules named Object-oriented Programming using Java (OOPJ), Data Structures and Algorithms (DSAL) and Programming using C and C++ (PCCP).

The earlier Object-oriented Programming and Design (OOPD) module is changed to focus exclusively on object-oriented analysis and design using UML (OOAD).

The Graphical User Interface development module (GUID) now includes programming with Microsoft MFC, GUI programming in Java using SWING in addition to GUI programming using Win32 SDK.

The WEB programming module (WEBP) focuses exclusively on web applications programming and design.

The computer networks module (NWAP) contents has been slightly revised and includes network programming in Unix and C, network programming in Java and an overview of networking devices in addition to the earlier contents.

The remaining modules do not have any major changes.

An overview of the modules:

OOPJ: Object-Oriented Programming using Java

The objective of this module is to provide a solid foundation in problem-solving using computers and in programming techniques. It covers concepts and techniques of object-oriented programming using Java.

DSAL: Data Structures and Algorithms using Java

The objective of this module is to provide a solid foundation in data structures and algorithms in software development. It lays emphasis on design and performance issues involved in various data structures (lists, trees and graphs) and space-time complexity measures of various (searching and sorting) algorithms.

PCCP: Programming with C and C++

This module introduces procedural programming techniques and highlights the features of C and C++.

COOS: Computer Organisation and Operating Systems

The objective of this module is to provide a broad overview of the architecture and functioning of computer systems.

GUID: Graphical User Interface Development

The objective of this module is to enable the participant to first grasp the basic human machine communication design principles and issues that need to be addressed in the development of any interactive information technology application. This module will cover graphical user interface development for the Windows platform using Microsoft as well as Java technologies

DBMS: Database Management

The objective of this module is to provide a strong formal foundation in database concepts, technology.

OOAD: Object-Oriented Analysis and Design

The objective of this module is to provide a strong and formal foundation in object-oriented analysis and design. Having been introduced to object-oriented concepts and programming languages in the first 3 modules, this module teaches the participant the underlying principles of object-oriented analysis and design, including documentation of the design using UML and a UML-enabled CASE tool.

NWAP: Computer Networks

The objective of this module is to provide basic networking concepts and teach students issues related to computer network technologies and application.

WEBP: Tools, Techniques and Languages for programming Web applications

The objective of this module is to teach the participants the tools, techniques and languages for programming applications for running on the World Wide Web. This module includes coverage of HTML, Dynamic HTML, CGI and Web Scripting, but emphasis is on Web application architecture. Participants will be introduced to the complexities arising out of the inherently distributed nature of a web application and to the technologies employed to address these issues.

SCOT: Software-Component Technology

The objective of this module is to teach the participant component software design and programming using three popular component models namely: Microsoft COM, JavaBeans and CORBA technologies.

SENG: Software Engineeing

The objective of this module is to make the participant familiar with the principles, management and practical methodology followed in any software engineering project development, its implementation and maintenance.

PROJ: Project Module

The objective of this module is to give the participants practical experience in applying all the software engineering techniques, standards and technologies taught in the earlier modules by performing all the software development LC activities for a large software project.


More details on these modules, including text and reference books, syllabus, suggested project topics, and sample questions are given in later sections.

The course is designed to be highly practice-oriented, and expects at least 30-36 hours of work each week. That means that you need to put in at least 15 to 18 hours of additional effort for every module in addition to the lecture sessions.

Tutorials

In addition to the scheduled lectures, for each module, there will be one or two tutorials. These will normally be before the quizzes. The dates for the tutorials are given in the course schedule, but may be adjusted to suit the convenience of local centres. The tutorial will give you an opportunity to interact with the faculty closely and discuss topics that you have not understood. Normally, we keep the format flexible to be decided based on the response from the participants. So if you would like some specific topics to be discussed - especially topics that were covered at a surface level in keeping with the overall course plan - please let the faculty know in advance. It will help both the faculty as well as participants, if a list of queries/clarifications sought are prepared and made available to the concerned faculty member in advance.

External Talks

During the course we will arrange for some talks on technology and/or management-oriented topics by industry experts and prominent academicians. These talks will be scheduled as per the convenience of the local centres. Lectures scheduled on that day will be taken in the afternoon. The date, topic and speaker for these talks will be announced in the class during the course.