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

Check here

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.