MA 511    Computer Programming (3 0 2 8)          Pre-requisites: Nil

Class Timings: Tue (8-8:55), Wed (9-9:55), Thu (10-10:55);    Room: 1G1
Lab Timings: Mon (14:00-16:00)

Instructor: Ashok Singh Sairam (ashok@iitg.ac.in)
TAs: Puspanjali Ghosal (g.puspanjali@iitg.ac.in)

Syllabus :
Introduction - the von Neumann architecture, machine language, assembly language, high level programming languages, compiler, interpreter, loader, linker, text editors, operating systems, flowchart;
Basic features of programming (Using C) - data types, variables, operators, expressions, statements, control structures, functions;
Advance programming features - arrays and pointers, recursion, records (structures),
memory management, files, input/output, standard library functions, programming tools, testing and debugging;
Fundamental operations on data - insert, delete, search, traverse and modify;
Fundamental data structures - arrays, stacks, queues, linked lists;
Searching and sorting - linear search, binary search, insertion-sort, bubble-sort, selection-sort; Introduction to object oriented programming.

Programming laboratory will be set in consonance with the material covered in lectures. This will include assignments in a programming language like C and C++ in GNU Linux environment.
Texts :
1. A. Kelly and I. Pohl, A Book on C, 4th Ed., Pearson Education, 1999
References :
1. P.J.Deitel & H.M.Deitel , C How To Program, 7th Ed 2. H. Schildt, C: The Complete Reference, 4th Ed., Tata Mcgraw Hill, 2000.
3. B. Kernighan and D. Ritchie, The C Programming Language, 2nd Ed., Prentice Hall of India, 1988.
4. B. Gottfried and J. Chhabra, Programming With C, Tata Mcgraw Hill, 2005.