CSC-101 Programming with C and C++

Autumn 2024-25


Instructor: Balasubramanian Raman
Office: S-227, CSE Building
Class Meeting Time: Tuesdays (04:00-05:00 pm), Thursdays (3:00-4:00 p.m) and Fridays (04:00-05:00 pm).
Class Room: Abdul Kalam Block 407
Office Hours: Mondays, Wednesdays 11:00 a.m. - 1:00 p.m. and by appointment
TAs: Dr. Pradeep Singh (pradeep.cs at sric), Nitin Tyagi (nitin_t at cs), Shubhi Srivastava(s_srivastava at cs) and Shivam Thakur (shivam_t at cs) (PhD students)
Email: first four letters of first name at cs dot ac dot in

Announcements

September 11, 2024: MTE held.
August 13, 2024: 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 (13/08/2024)
02. Introduction to Computer Systems and Algorithms (16/08/2024)
03. Introduction to Flow Chart, Pseudo Code and Online Compilers (20/08/2024)
04. C Programming Structure and Introduction to Data Types (22/08/2024)
05. Data Types (23/08/2024)
06. Operators in C (27/08/2024)
07. More on Operators (29/08/2024)
08. More on Operators and switch-Case statement (30/08/2024)
09. Switch-Case statement and Loops (05/09/2024)
10. for loops, break, continue statements and Address Operator (06/09/2024)
11. Answer Sheets Distribution (19/09/2024)
12. Arrays (20/09/2024)
13. More on Arrays (21/09/2024)
14. One Dimensional Array with examples (24/09/2024)
15. More on One Dimensional Array and Introduction to Multi-dimensional Array (25/09/2024)
16. Surprise Quiz 1 (27/09/2024)
17. Two Dimensional Arrays (01/10/2024)
18 and 19. C Functions, Arrays and Functions, Recursion (02/10/2024, Extra Class 11 am to 1 pm)
20. More on Recursion and static Keyword (08/10/2024)
21. Pointers in C, Arrays and Pointers and Pass by Reference (09/10/2024)
22. Character Arrays and Pointers, Static and Dynamic Array (10/10/2024)
23. malloc() and calloc() functions, Pointer and reference variables, Void pointer in C and Type casting in pointer (15/10/2024)
24. More on Void Pointers, Dynamic Arrays in 2D and Function Pointers (17/10/2024)
25. More on Function Pointers and Structures (18/10/2024)
26. Pointers to Structures, Nested Structures, Self Referential Structures and Unions in C (22/10/2024)
27. Introduction to C++, C++ Arrays, Reference Operator, Pointers, Call by Value and call by reference in C++ (24/10/2024)
28. One Dimensional Arrays, Dynamic Arrays, Two-Dimensional Arrays, Charecter Array (25/10/2023)
29. Structures, Classes and Objects in C++ (26/10/2024)
30. C++ Strings, Constructors: Default and Parameterized (05/11/2024)
31 and 32. Overloading: Function, Operator and Constructor, Copy Constructor, Destructors, Access Specifiers and Encapsulation (06/11/2024)
33. Data Abstraction and Inheritance (07/11/2023)
34 and 35. More on Inheritance, Friend function and Friend Class, Function Overriding, Virtual functions, this keyword and Exception Handling (08/11/2024)


Assignments

01. Assignment 1 (Posted on 27/8/2024, Deadline 11/09/2024)
02. Practice Problems 1 (Posted on 29/8/2024)
03. Assignment 2 (Posted on 24/9/2024, Deadline 08/10/2024)
04. Practice Problems 2 (Posted on 02/10/2024)
05. Assignment 3 (Posted on 16/10/2024, Deadline 30/10/2024)
06. Practice Problems 3 (Posted on 22/10/2024)
07. Assignment 4 (Posted on 22/10/2024, Deadline 05/11/2024)
08. Assignment 5 (Posted on 08/11/2024, Practice)
09. Practice Problems 4 (Posted on 08/11/2024)
10. Practice Problems 5 (Posted on 08/11/2024)
11. Assignment 6 (Posted on 08/11/2024, Practice)
12. Practice Problems 6 (Posted on 08/11/2024)
13. Assignment 7 (Posted on 08/11/2024, Practice)


Examinations

01. MTE, Solution (11/09/2024, 12:45 - 2:15 pm)
02. Surprise Quiz 1 (27/09/2024)

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.