Course Content: Module 1 : (Introduction to Computing) - 6 lectures Fundamentals of Computing, Historical perspective, Early computers. Computing machine. Problems, Pseudo-code and flowcharts. Memory, Variables, Values, Instructions, Programs. Module 2 : (Introduction to C) 10 lectures The language of C : Phases of developing a running computer program in C. Data concepts in C :Constants, Variables, Expressions, Operators, and operator precedence in C. Statements : Declarations, Input-Output Statements, Compound statements, Selection Statements. Conditions, Logical operators, Precedences. Repetitive statements, While construct, Do-while Construct, For construct. Data types, size and values. Char, Unsigned and Signed data types. Number systems and representations. Constants, Overflow. Arrays. Strings. Multidimensional arrays and matrices. Module 3 : (Modular Programming and Example Problems) : 10 lecture Functions :The prototype declaration, Function definition. Function call : Passing arguments to a function, by value, by reference. Scope of variable names. Recursive function calls, Tail recursion. Analysing recursion, Tree of recursion, linear recursion. Sorting problem : Selection Sort, Insertion Sort, Comparison between sorting algorithms. Sorting in multidimensional arrays. Sorting in strings. Search problem : Linear search and binary search. Comparison between search procedures. Recursive and Iterative formulations. Module 4 : (More Data Types in C) 14 lectures Pointers : Pointer variables. Declaring and dereferencing pointer variables. Pointer Arithmetic. Examples. Accessing arrays through pointers. Pointer types, Pointers and strings. String operations in C. Structures in C : Motivation, examples, declaration, and use. Operations on structures. Passing structures as function arguments. type defining structures. Self-referential structures. Dynamic Data Structures. Linked Lists. Examples. File input-output in C. Streams. Input, output and error streams. Opening, closing and reading from files. Programming for command line arguments. Numerical errors due to data representations and machine precision. Approximation and error analysis. Illustration through examples.