T05  PROGRAMMING & PROBLEM SOLVING Through "C"

 

1.         Problem Solving and Algorithm Design                                                         6 hours

 

1.1        Introduction to Computer based Problem Solving.

1.2        Program Design concepts : {Top-down design and stepwise refinement, loops basic programming constructs}.

1.3        Programming Environment: {Assemblers, compilers, interpreters, linkers, loaders}.

 

I [1-3]

 

2.        Algorithm Design                                                                                           9 hours

 

2.1        Algorithm design Issues.

2.2        Complexities of Algorithms.

2.3        Development of  Algorithms for various Examples : {Summation of set of numbers and series, sine function computation, Fibonacci sequence,  Reversing digits of an integer, Square root of a number, Smallest divisor, Raising a number to a large power, generation of prime numbers}.

 

I [4, 5]

 

3.         Overview of C Programming                                                                         9 hours

 

3.1               Data types.

3.2               Constants and Variables.

3.3               Expressions and Operators.

3.4               Basic I/O.

3.5               Control Constructs.

3.6               Arrays.

3.7               Examples of arrays:       {Array order reversal, Removal of duplicates from an ordered array, Binary search, Matrix manipulations, finding kth minimum element in an array)

3.8        Simple sorting techniques : {insertion sort, bubble sort, sorting using partitioning}.

 

I [4, 5]; II [1-7]

 

4.      Advanced Programming Techniques                                                             12 hours

 

4.1               Handling Strings.

4.2               Scope Rules.

4.3               Functions (Parameter passing: call by value, call by reference, calling functions with arrays, nesting of functions}.

4.4               Recursive functions.

4.5               Structures and union : {Arrays of structures, Arrays within structures, Structures within structures, Structures and functions}.

 
II [8-10]

           

5.         Dynamic Data Structures in C                                                                        18 hours

 

5.1        Dynamic Memory Allocation.

5.2        Pointers (Pointer arithmetic, pointer vs arrays, pointers to functions, functions with  variable number of arguments).

5.3               Linked list concepts

5.4               Various linked list operations : {Insertion and deletion in a singly linked list,  Traversal, counting number of nodes, reversal of linked list }

5.5               Applications of linked lists

5.6               File Management in C

5.6.1          Input / Output operations

5.6.2          Error handling during Input / Output operations

5.6.3          Random access files

 

II [11-13]

 

6.         The Preprocessors                                                                                         3 hours

 

6.1        Macro Substitutions

6.2        File inclusions

6.3        Compiler Control Directives

 

    II [14]

 

7          Program testing & Documentation                                                                3 hours

 

7.1        Coding style- variable names, declarations, statement construction

7.2        Test case design - Basic path testing, Black box testing

7.3        Principles of Documentation                  

 

II [15]

 

 

Text Books

 

I.       R.G. Dromey, "How to Solve it by Computer", Prentice Hall of India, 1992.

II.    E Balagurusamy, Programming in ANSI C, edition 2.1, Tata McGraw-Hill, reprint 2002.

 

Reference Books

 

1.       B.W. Kernighan & D.M. Ritchie, "The C Programming Language", Prentice Hall of India, 1989.

2.       Cooper,Mullish, "The Spirit of C", Jaico Publishing House, New Delhi, 1987.

3.       Richard Johnson-Baugh & Martin Kalin, "Application Programming in C", Macmillan International editions, 1990.

4.       Kenneth A.,C,  "Problem Solving and Programming", Prentice Hall International.