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
Grading
Quiz-I and II: 12 marks each
Final exam: 40 marks
Labs: 30 marks (best 6 out of 9 labs)
Class participation: 6 marks
Dates
Quiz-I: Aug 28
Quiz-II: Oct 13
Final exam: Nov 18
Labs: 12 Aug, 19 Aug, 9 Sep, 16 Sep, 23 Sep, 30 Sep, 1 Oct, 21 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. |
| 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. |
Most of these slides were prepared by my colleagues in CSE, IIT Madras. I have made a few minor modifications and additions.
