Course Archives Theoretical Statistics and Mathematics Unit
Course: Fundamentals of Computing and Programming
Level: Undergraduate
Time: Currently not offered
Syllabus
Past Exams


Syllabus:

BASICS:
i) Elementary complexity motivation, concrete complexity, big O notation.
ii) Integer representation, swtisions, values and variables, types, lvalue, rvalue, unary, binary, ternary operations.
iii) Numerical errors due to data representations and machine precision. Approximation and error analysis. Illustration through examples.
iv) Linux tools. Introduction to shell programming.

COMPUTING:
i) Fundamentals of Computing, Historical perspective, Early computers. Computing machine. Problems, Pseudo-code and flowcharts. Memory, Variables, Values, Instructions, Programs.
INTRODUCTION TO C:
i) The language of C: Phases of developing a running computer program in C
ii) Data concepts in C: Constants, Variables, Expressions, Operators, and operator precedence in C
iii) Statements: Declarations, Input-Output Statements, Compound statements, Selection Statements. Conditions, Logical operators, Precedences. Repetitive statements, While construct, Do-while Construct, For construct.
iv) Conditionals, if-then, if-then-else, nested conditionals, switch-case. Loops, for, while, repeat, loop invariants, precondition, postcondition.
v) Data types, size and values. Char, Unsigned and Signed data types. Number systems and representations. Constants, Overflow.
vi) Arrays. Strings. Multidimensional arrays and matrices.

FUNCTIONS, RECURSIONS, SORTING AND SEARCH:
i) The prototype declaration, Function definition
ii) 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
iii) Sorting problem: Selection Sort, Insertion Sort, Comparison between sorting algorithms. Sorting in multidimensional arrays. Sorting in strings.
IV) Search problem: Linear search and binary search. Comparison between search procedures. Recursive and Iterative formulations.

DATA TYPES IN C:
i) Pointers: Pointer variables. Declaring and dereferencing pointer variables. Pointer Arithmetic. Examples. Accessing arrays through pointers. Pointer types, Pointers and strings. String operations in C.
ii) Structures in C: Motivation, examples, declaration, and use. Operations on structures. Passing structures as function arguments. type defining structures.
iii) Self-referential structures. Dynamic Data Structures. Linked Lists. Examples
iv) File input-output in C. Streams. Input, output and error streams. Opening, closing and reading from files. Programming for command line arguments

Reference Texts:
(a) O J Dahl, E W Dijkstra, C A R Hoare: Structured Programming
(b) David Gries: The Science of Programming
(c) E W Dijkstra: A Short Introduction to the Art of Programming
(d) Dromey: How to solve it by Computer
(e) Goodrich: Data Structures and Algorithms in Java
(f) Thomas A Standish: Data Structures in Java.

Evaluation:
Midterm 30 marks
Assignments 20 marks
Final Exam 50 marks
Total 100 marks


Top of the page

Past Exams
Semestral
22.pdf
Supplementary and Back Paper
22.pdf

Top of the page

[ Semester Schedule ][ Statmath Unit ] [Indian Statistical Institute]