 |
About
program-FPGDST
|
|
The software professionals of today face challenges that earlier
generations did not. We live and work in an era of rapidly
growing and shifting paradigms, constantly posed with the
task of keeping pace with the growth and changes.
This
educational programme of NCST is designed to prepare the participant
to deal with situations in which things threaten to change
faster than one can assimilate them. The approach adopted
has evolved over a number of years. This approach primarily
ensures that the participant:
|
| i. |
learns
the basics of our craft in this field of software technology,
|
| ii. |
is
provided with the best foundation for a good software professional,
that is, a solid knowledge of those things that underpin every
development technology, no matter how different or how advanced,
and
|
| iii. |
is
equipped with the capabilities to understand the fundamentals
irrespective of the programming methodology, language, the
development platform, the software tools, etc.
|
|
The following is the list of such basic concepts and skills,
which this course is designed to impart to its participants.
Beginning with data, it proceeds with programs, platforms,
technologies, methodology, the software user and finally personal
skill development; not necessarily in that order. This is
done through the 12 modules of the course referred to by their
acronyms, namely, OOPJ, DSAL, PCCP, COOS, GUID, DBMS, OOAD,
CNET, WEBP, SCOT, SENG and PROJ.
|
| 1. |
Data
Structures (part of the DSAL module) |
| |
Data
structures are containers that contain objects of data types.
There are several common data structures, and each has its
own behaviour and application. Common data structures are:
arrays of one or more dimensions, stacks, linked lists (singly
and doubly linked), queues, and trees (balanced, binary, and
so on). There are others. Understanding data structures helps
the student understand most of them, how they behave, and
when to use which of them.
|
| 2. |
Data
Abstraction and Encapsulation (part of the OOPJ,
DSAL, PCCP, OOAD, DBMS and WEBP modules) |
| |
Data
abstraction is the design of a user-defined data type. Encapsulation
is the process wherein one combines a user-defined type?s
data representation and its behaviour into one encapsulated
entity that has an implementation and an interface. Encapsulation
is taught in detail in the OOPJ module. Data abstraction and
encapsulation are two of the most important properties of
object-oriented programming. The others include inheritance
and polymorphism. The OOPJ and OOAD modules together teach
one to apply data abstraction and encapsulation irrespective
of the language and the programming model.
|
| 3. |
Database
Organisation (part of DBMS module) |
| |
Managing
a large numbers of objects is an important component of many
applications. Traditional database technology defines three
basic models: hierarchical, network, and relational databases.
Most contemporary database projects use some form of relational
database. Sound database design involves a process called
normalisation, which tries to eliminate redundancy and inefficient
data paths. The DBMS module helps understand relational database
design theory, which is very important to effectively design
databases.
|
| 4. |
Program
Structure (part of OOPJ, PCCP, WEBP, GUID, OOAD,
SENG, SCOT and DBMS modules) |
| |
One
fundamental principle, which embodies the disciplines of both
structured and object-oriented programming, originated with
the concept of modular programming: the design of small, functionally
strong, loosely coupled program modules. Virtually all of
the modules lay strong emphasis on understanding program structure.
|
| 5. |
Algorithms
(part of all modules) |
| |
All
the modules, and OOPJ in particular, ensure that the student
learns the fundamental algorithms for processing data; understands
recursion, its behaviour and application; knows how to sort
and search data structures; understands well known algorithms
like quicksort, bubble sort, binary search, expression evaluation,
and structured query languages (SQL, for example). The discussion
also includes how and when to optimise code.
|
| 6. |
Debugging
(part of all modules) |
| |
Writing
the program is only the beginning. After that, one has to
get it running, which means debugging written code. A good
programmer knows how to debug a program. It is something that
can be learned only with experience. Debugging is the act
of finding bugs and fixing them. Fixing a bug is not usually
as difficult as finding it. Every program of any consequence
is most likely to have bugs. All modules require the student
to design and implement reasonably complex programs and demonstrate
their proper working. In particular, the machine-graded programming
tests, assignments and projects all ensure that the participant
carries out ample debugging exercises.
|
| 7. |
User
Interfaces and Requirements (part of GUID, WEBP,
SCOT and also through project work in different modules) |
| |
Most
contemporary programming assignments involve the user interface,
which is the command and data entry architecture that a user
uses to run and interact with the program. A major part of
any interactive program is the user interface. Separating
the design of the problem domain algorithms from that of the
user interface is important. The other important point emphasised
is the need for clear and unambiguous understanding of the
user's requirements for the program. Both kinds of requirements,
functional and performance, are to be addressed in project
work.
|
| 8. |
Computer
Organisation, Operating Systems & Networking (COOS,
CNET and WEBP modules) |
| |
Students
need to understand the hardware, not necessarily at the electronic
level, but in terms such as its memory components, cache,
processor speeds, peripherals and networking components. Operating
system concepts are also important, including the difference
between pre-emptive and non-pre-emptive scheduling, and concepts
like multitasking and concurrency.
|
| 9. |
Personal
Skill Development (all modules) |
| |
Problem
solving, knowledge application, self-study, teamwork, presentation
and documentation skills are also given importance in the
educational programme. Regular on-line tests, assignments
and quizzes ensure problem solving and knowledge application
skills. By its very nature the programme expects considerable
amount of time to be spent by the student in studying the
textbooks and doing hands-on practice sessions on the computer.
Projects are executed by groups of three or four students
working as a team. The ability to present their work through
demonstrations, viva-voce and written reports is also part
of the evaluation mechanism.
|
| |
|
|
|