CS1100: Introduction to programming
Course information
When: Jul-Nov 2026
Lectures: Slot F1
Lab: Slot R1
Where: CS15
Teaching Assistants: Surya Harshith Balla (CS23B010), Aditya Saini (CS25M008), Athmakuri Govardhan (CS26M007), Ayush Dixit (CS26M008), Bathula Venkata Naga Harshith Reddy (CS26M011), Cheemala Jagan Babu (CS26M012), Harsh Yadav (CS26M016), Huzaifa Bharmal (CS26M017), Jadi Ganesh (CS26M019), Munawwar Abdul Muneer (CS26M026), Niranjan Sharma (CS26M029)
Course Content
Computing basics, number systems, and data representation.
C data types, operators, input/output, conditionals, and loops.
Arrays, strings, matrices, searching, sorting, and algorithm complexity.
Functions, variable scope, recursion, and numerical methods.
Pointers, dynamic memory allocation, structures, and file handling.
Macros, enumerations, function pointers, and command-line arguments.
Grading
Quiz-I and II: 12 marks each
Final exam: 40 marks
Labs: 30 marks (best 5 out of 7 labs)
Class participation: 6 marks
Dates
Quiz-I: Aug 28
Quiz-II: Oct 13
Final exam: Nov 18
Labs: 12 Aug, 2 Sep, 16 Sep, 30 Sep, 14 Oct, 28 Oct, 4 Nov
Quiz and exam dates as per the academic calendar.
References
Paul Deitel and Harvey Deitel. ’'C: How to Program’’. Pearson.
V. Rajaraman. ’'Computer Programming in C’’. PHI Learning.
R. G. Dromey. ’'How to Solve It by Computer’’. Pearson.
Brian W. Kernighan and Dennis M. Ritchie. ’'The C Programming Language’’. Prentice Hall.- Michael T. Goodrich, Roberto Tamassia, and David M. Mount. Data structures and algorithms in C++. John Wiley & Sons, 2011.
Schedule
| Lecture | Topics |
|---|---|
| Lecture 1 | Introduction to computing, Turtle programs, and computer architecture. |
| Lecture 2 | ASCII, number systems, and signed integer representations. |
| Lecture 3 | Two's complement, overflow, and first C programs. |
| Lecture 4 | Practice: binary representations, addition, and overflow. |
| Lecture 5 | Arithmetic, swapping variables, assignment, and increment/decrement. |
| Lecture 6 | C data types, binary fractions, and floating-point representation. |
| Lecture 7 | Practice: binary fractions and IEEE 754 representation. |
| Lecture 8 | Floating-point types and formatted input/output. |
| Lecture 9 | if-else, relational operators, and nested conditions. |
| Lecture 10 | Program execution, machine language, and compilation. |
| Lecture 11 | Logical operators, dangling else, and switch. |
| Lecture 12 | while and for loops: digit reversal and summation. |
| Lecture 13 | for variations, do-while, break, and continue. |
| Lecture 14 | Program correctness, termination, Collatz sequence, primes, and GCD. |
| Quiz 1 | 28 Aug |
| Lecture 15 | Taylor series, sine approximation, and bisection. |
| Lecture 16 | Newton-Raphson method, arrays, and frequency counting. |
| Lecture 17 | Array initialization, polynomial evaluation, and Horner's method. |
| Lecture 18 | Strings: null termination, length, comparison, and palindromes. |
| Lecture 19 | Palindrome debugging, array maximum, and selection sort. |
| Lecture 20 | Selection sort, multidimensional arrays, and matrix operations. |
| Lecture 21 | Matrix multiplication, insertion sort, and improved insertion sort. |
| Lecture 22 | Insertion sort complexity; functions: declarations, definitions, arguments, and calls. |
| Lecture 23 | Blocks, variable scope, static variables, and functions for tic-tac-toe. |
| Lecture 24 | Modular tic-tac-toe implementation; recursion, factorial, and recursive control flow. |
| Lecture 25 | Recursion tracing, binomial coefficients, Pascal's triangle, and Virahanka numbers. |
| Lecture 26 | Recursion versus iteration, recursive GCD, and finding the largest array element. |
| Lecture 27 | Recursive insertion sort, merge sort, and merging sorted arrays. |
| Lecture 28 | Recursive binary search and algorithm complexity. |
| Quiz 2 | 13 Oct |
| Lecture 29 | Pointer declarations, addresses, and dereferencing. |
| Lecture 30 | Pointer arguments, double pointers, and arrays. |
| Lecture 31 | Pointer arithmetic, string copying, and dynamic allocation. |
| Lecture 32 | Dynamic arrays and structure basics. |
| Lecture 33 | Arrays of structures, nested structures, and structure pointers. |
| Lecture 34 | Structure padding, typedef, and file I/O. |
| Lecture 35 | Update streams, file positioning, and copying files. |
| Lecture 36 | Conditional and bitwise operators, and operator precedence. |
| Lecture 37 | Precedence, macros, enumerations, and function pointers. |
| Lecture 38 | String arrays, dynamic matrices, and command-line arguments. |
Most of these slides were prepared by my colleagues in CSE, IIT Madras. I have adapted some of their slides and added examples and in-class quizzes.
