-
Introduction to Computing
-
CS101 at IITG by R. Inkulu
-
This is a core course for first-year undergraduates (1000+ students) from all departments, and it is co-taught.
From the 4th of March to the 26th of April, I teach the second half of the lectures in L2 to half of the students (spread into two sections): D slot (Mon 11-11:55, Th 9-9:55, Fri 10-10:55) and D1 slot (Mon 2-2:55, Th 4-4:55, Fri 3-3:55).
The days on which classes are scheduled is here.
My email is rinkulu at iitg.ac.in.
And my office is H-005.
Depending on the merit of the need, with a prior appointment, I can schedule a meeting in my office.
The topics to be covered in this part of the course include advanced C programming constructs, implementing elementary data structures and sorting procedures in C.
Topics presented in lectures are listed below:
- More on arrays
- Intro to pointers
- Dynamic memory
- Function arguments
- Strings
- More on strings
- Function pointers
- Structures
- More on structures
- Unions
- Bit-fields
- File handling
- Asymptotic time
- Searching: linear, binary
- Sorting: bubble, selection, insertion, quick
- More sorting: counting, radix
- Dynamic array
- Stack and its applications
- Queue
- Singly linked list
- Doubly linked list
- More on lists
- Multiway search trees ← homework: self-learn and implement in the upcoming summer break
The following is the suggested text:
The C Programming Language by B. W. Kernighan and D. M. Ritchie, Second Edition [chaps 5-7, B1, B3, B5, B7].
Any resource will do for the topics on data structures.
I use blackboard in scheduled classes and a pen tablet in video lectures.
It is strongly recommended and encouraged that students take notes in classes.
I emphasize that there are no perfect alternatives to class notes and being attentive enough to participate in class discussions.
In attending any lecture, students are expected to have closely reviewed the notes taken in recent lectures, experimented with the constructs presented in previous lectures by writing standalone programs, and analyzed both the compile- and run-time errors and warnings encountered from those codes.
This is also the homework from every lecture; attending classes without doing enough homework, merely attending for the sake of attending, or intermittently attending fetch nothing.
Spring '24