Welcome to the webpage of the COL100 course !!

Course Description

In this course we intend to teach the fundamentals of computer programming to the undergraduate students in the Computer Science department.

Credits : 4   [3-0-2] (L-T-P)

L - Two lectures of 1 hour 15 minutes each will be conducted every week. Venue for the lectures is LHC 108.

P - The practical component of the course involves lab work.

TextBook:

Programming with C, Byron Gottfried, Third Edition. (McGrawHill)

Slides:
(Thanks to Prof. Partha Pratim Das from IIT Kharagpur for his original slides)

### 1. Introduction to Computers and Programming (link)

Notes: Proof of the result for converting from binary to hex, and binary to octal (link)
My first C program (link)
printf and scanf (link)

2. Conditional operators and Loops. Slides (conditional operators, loops)
Programs: continue:example, exponentials, Fibonacci, Floyd's triangle, Floyd's Triangle (single loop), Loops, Primes

3. Functions and Recursion: slides (functions, recursion)
Programs: Factorial, Fibonacci, General functions, GCD, Integer Reverse, Primes

4. Arrays: slides (1D arrays) (2D arrays)
Programs: Simple arrays, max-min, palindrome, array concepts, screen decorator

5. Pointers (Basic Pointers, Pointers and Arrays, Parameters and Strings)
Programs: Pointer basics, Swap Integers, Arrays-Pointers, Pointer Arithmetic,      String Handling

6. Sorting and Searching: (Sorting)
Programs: Insertion Sort, Selection Sort, Merge Sort, Partition, Quick Sort

7. Structures, Unions, and Enumerations (slides)
Programs: Example with structures, Unions, Structure union comparison, Enums

8. File Handling and the Command Line (slides) : File reading, File writing

9. Examples: String Swaps, Reading a paragraph, Calculating the day of the week,     String swap advanced

10. Bitwise operations: Swapping with bitwise operators

11. Minor 2: Sample solutions: 19 bits, array reversal, current time, ip address parsing, raising m^n

12. Linked Lists (slides): heap-stack (intro. to malloc), train-bogey, stack paranthesis matching

13. Stacks: link (with header files, classes, and with inheritance)

14. Miscellaneous:   Floating-point anomaly, Macros

15. Object-oriented Programming: Rectangle object, Example with shapes, Inheritance and virtual functions