CSC-101 Programming with C and C++

Autumn 2023-24


Instructor: Balasubramanian Raman
Office: S-227, CSE Building
Class Meeting Time: Tuesdays (03:00-03:55 pm), Wednesdays and Fridays (2:00-2:55 p.m).
Class Room: Gargi Block 205
Office Hours: Mondays, Thursdays 11:00 a.m. - 1:00 p.m. and by appointment
TAs: Dr. Pradeep Singh (pradeep.cs at sric), N. Kishor Babu(kbabu89 at cs), Anshul Pundhir (anshul_p at cs), Nitin Tyagi (nitin_t at cs), Anushka Joshi (anushka_j at cs) (PhD students), Priyal Jain and Piyush Dhamdhere (M.Tech students)
Email: first four letters of first name at cs dot ac dot in

Announcements

November 24, 2023: ETE will be held.
September 16, 2023: MTE held.
August 25, 2023: Surprise Quiz held.
August 02, 2023: Classes have begun.

Course Objectives, Learning Outcomes and Prerequisites

To understand the basic concepts of procedural and object-oriented programming.
To use object-oriented programming concepts to design and develop software applications.
To implement real-world entities like Inheritance, Data hiding, polymorphism, etc.

Prerequisites: NIL.

Evaluation Components


Lecture Notes

01. Introduction to Programming (02/08/2023)
02. Introduction to Computer Systems and Programming (04/08/2023)
03. Introduction to Algorithms, Flow Chart, Pseudo Code and Online Compilers (08/08/2023)
04. C Programming Structure (10/08/2023)
05. Data Types (11/08/2023)
06. Conditional Statements (16/08/2023)
07. Revisiting Data Types (18/08/2023)
08. Type casting, Operators in C (19/08/2023)
09. More on Operators (22/08/2023)
10. More on Operators, Switch-Case statement and While loop (23/08/2023)
11. Surprise Quiz 1, Solution (25/08/2023)
12. do-while, for loops, break and continue statements (29/08/2023)
13. Address Operator and One Dimensional Array with examples (31/08/2023)
14. One Dimensional Array with examples (01/09/2023)
15. More on One Dimensional Array and Introduction to Multi-dimensional Array (05/09/2023)
16. Two-Dimensional Array (06/09/2023)
17. C Functions (08/09/2023)
18. MTE Answer Sheets Distribution (26/09/2023)
19. Arrays and Functions, Recursion (29/09/2023)
20 and 21. Recursion using Stacks, Pointers (30/09/2023, Extra class, 11 am to 1 pm)
22. Arrays and Pointers and Pass by Reference (3/10/2023)
23. Charecter Arrays & Pointers, Static Keyword and Dynamic Arrays (04/10/2023)
24. More on Dynamic Arrays, Memory Allocation Functions and Void Pointers (06/10/2023)
25. More on Void Pointers, Dynamic Arrays in 2D and Function Pointers (07/10/2023)
26. More on Function Pointers and Structures (10/10/2023)
27. Arrays of Structures, Pointers to Structures and Nested Structures (11/10/2023)
28. Self Referential Structures, Unions in C and Introduction to C++ (17/10/2023)
29. C++ Arrays, Reference Operator, Pointers and Call by Value in C++ (18/10/2023)
30 and 31. Call by reference, One Dimensional Arrays, Dynamic Arrays, Two-Dimensional Arrays, Charecter Arrays, Structures in C++ and Doubt Clarifying Session (19/10/2023, 11 am to 1 pm, Extra Class)
32. Classes and Objects in C++ (20/10/2023)
33. C++ Strings, Constructors: Default and Parameterized (25/10/2023)
34 and 35. Parameterized Constructor, Defining the member function outside the class, Overloading: Function, Operator and Constructor (26/10/2023, 11 am to 1 pm, Extra Class)
36. Surprise Quiz 2, Solution (31/10/2023)
37. Copy Constructor, Destructors and Access Specifiers: public (7/11/2023)
38. Access Specifiers: private and protected, Encapsulation, Data Abstraction and Inheritance (8/11/2023)
39. Inheritance and Friend function (10/11/2023)
40. Quiz 3, Solution (10/11/2023, 3-4 pm, Extra Class)
41 and 42. Friend function and Friend Class, Function Overriding, Virtual functions, this keyword and Exception Handling (11/11/2023, 3-5 pm, Extra Class)
43. Quiz 2 and 3 Answer Sheets Distribution (14/11/2023)

Assignments

01. Assignment 1
02. Assignment 2
03. Practice Problems 1 (Posted on 2/9/2023)
04. Assignment 3 (Posted on 7/9/2023)
05. Practice Problems 2 (Posted on 8/9/2023)
06. Practice Problems 3 (Posted on 4/10/2023)
07. Assignment 4 (Posted on 6/10/2023, Deadline 27/10/2023)
08. Practice Problems 4 (Posted on 12/10/2023)
09. Assignment 5 (Posted on 20/10/2023, Deadline 9/11/2023)
10. Practice Problems 5 (Posted on 31/10/2023)
11. Assignment 6 (Posted on 31/10/2023, Practice)
12. Practice Problems 6 (Posted on 11/11/2023)
13. Assignment 7 (Posted on 13/11/2023, Practice)


Examinations

01. Surprise Quiz 1, Solution (25/08/2023)
02. MTE, Solution (16/09/2023, 12:45 - 2:15 pm)
03. Surprise Quiz 2, Solution (31/10/2023)
04. Quiz 3, Solution (10/11/2023, 3-4 pm, Extra Class)

Recommended Study Material

The following will be used as a reference/text book for this course:
1. C Programming Language, Kernighan Brian W. and Dennis M. Ritchie,, 2nd edition Pearson 2015.
2. C: The Complete Reference, Herbert Schildt, 4th Edition, McGraw Hill Education 2017.
3. Understanding Pointers in C, Yashavant Kanetkar, 2003.
4. Let Us C: Authentic guide to C programming language, Yashavant Kanetkar, 19th Edition 2022.
5. Exploring C, Yashavant Kanetkar, BPB Publisher 2004.
6. C++: The Complete Reference, Herbert Schildt, 4th Edition, McGraw Hill Education 2017.
7. Object Oriented Programming in C++, Robert Lafore, 4th Edition, 2001.