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.