CSN-103 Fundamentals of Object Oriented Programming

Autumn 2021-22


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: Microsoft Teams
Office Hours: Mondays, Thursdays 11:00 a.m. - 1:00 p.m. and by appointment
TAs: N. Kishor Babu, Anshul Pundhir, Nitin Tyagi (PhD students), Km Khushbu, Preeti, Pushpamanjari Ramesh Jupudi and Sajal Chourasiya (M.Tech students)
Email: first four letters of first name at cs dot ac dot in

Announcements

March 20, 2022: Grades have been displayed.
March 8, 2022: End Term Examinations.
March 7, 2022: Quiz marks and solutions have been posted.
February 25, 2022: Quiz has been conducted.
February 19, 2022: Assignment 9 has been posted.
February 15, 2022: Assignment 8 has been posted.
February 01, 2022: Assignment 7 has been posted.
January 28, 2022: MTE marks have been uploaded
January 27, 2022: Assignments 5 and 6 have been posted.
January 19, 2022: MTE Solutions have been uploaded
January 13, 2022: Mid-Term Examination.
January 02, 2022: Assignments 3 and 4 have been posted.
December 20, 2021: Assignment 2 has been posted.
December 06, 2021: Assignment 1 has been posted.
November 26, 2021: Classes have begun.

Course Objectives, Learning Outcomes and Prerequisites

To understand the basic concepts of object-oriented programming.
To get a clear understanding of basics of Java Programming.
To Analyze the concepts of Inheritance, Exception and Packages in Java.
To implement real-world entities like Inheritance, Data hiding, polymorphism, etc.

Prerequisites: NIL.

Evaluation Components


Lecture Notes

01. Introduction to Programming (26/11/2021)
02. Assembly and Machine Languages (30/11/2021)
03. Introduction to Algorithms and Flow Chart (01/12/2021)
04. Flow Chart, Pseudo Code and Online Compilers (03/12/2021)
05. Introduction to JAVA (04/12/2021)
06. JAVA Program Structure and JAVA Tokens (07/12/2021)
07. Literals, JAVA Statements and Constants in JAVA (08/12/2021)
08. Constants, Variables, Data Types (10/12/2021)
09. More on Data Types, Scope of Variables and Type casting (11/12/2021)
10. Operators (14/12/2021)
11. More Operators (15/12/2021)
12. More Operators (17/12/2021)
13. Casting and Precedence of Operators (21/12/2021)
14. Decision Making: Branching and Looping Statements (22/12/2021)
15. Nested Loops, Enhanced for loop and Jumps in loop and Java as Virtual Machine (24/12/2021)
16. printf statements, Introduction to One Dimensional Arrays (29/12/2021)
17. Identity hash map and Two Dimensional Arrays (31/12/2021, Extra Class)
18. Charter Arrays, Strings and Introduction to Classes in JAVA (31/12/2021)
19. Methods, Call by Value, Method Overloading and Recursion in JAVA (04/01/2022)
20. Recursion in JAVA (05/01/2022)
21. Creating Objects and Constructors in JAVA (07/01/2022)
22. Static Keyword and Objects as Arguments (18/01/2022)
23. Methods returning objects, Passing arrays to methods and this keyword (19/01/2022)
24. More on this key word, Nested and Inner Classes and introduction to Dynamic memory handling in C++ (21/01/2022)
25. Static Array, References and Pointers in C++ (25/01/2022)
26. References and Pointers in C++, Arrays and Pointers (28/01/2022)
27. Pass by Reference in C++ and Arrays (29/01/2022)
28. Static and Dynamic Arrays (01/02/2022)
29. Arrays & Pointers, Two dimensional Arrays in C++ and Pointer to Pointer (02/02/2022)
30. Two dimensional Arrays in C++, Character String in C++ and Garbage Collection in JAVA (04/02/2022)
31. More on Garbage Collections in JAVA (08/02/2022)
32. Inheritance and super Keyword in JAVA (09/02/2022)
33. More on Inheritance, Access Modifiers, Method overriding, Run Time Polymorphism (11/02/2022)
34. More on Run Time Polymorphism and Abstract Class (12/02/2022)
35. More on Abstract Class, final and Introduction to Packages (15/02/2022)
36. Sub-Packages, Protected and Default Access Modifiers (16/02/2022)
37. Interface, Multiple Inheritance and Introduction to Exception handling (18/02/2022)
38. Exception handling in JAVA and Multiple Catching (19/02/2022)
39. Nested Try, explicit throw and throws in JAVA (22/02/2022)
40. Finally, Creating Exception Subclasses and Java Applet (23/02/2022)
41. Quiz (25/02/2022)

Assignments

01. Assignment 1 (Posted on 06/12/2021, due on 27/12/2021)
02. Assignment 2 (Posted on 20/12/2021, due on 07/01/2022)
03. Assignment 3 (Posted on 02/01/2022, due on 28/01/2022)
04. Assignment 4 (Posted on 02/01/2022, due on 04/02/2022)
05. Assignment 5 (Posted on 27/01/2022, due on 10/02/2022)
06. Assignment 6 (Posted on 27/01/2022, due on 17/02/2022)
07. Assignment 7 (Posted on 01/02/2022)
08. Assignment 8 (Posted on 15/02/2022)
09. Assignment 9 (Posted on 19/02/2022)


Examinations

01. Mid Term Examination (Held on 13/01/2022, 10:00 to 11:30 am), Solution (19/01/2022)
02. Quiz (Held on 25/02/2022, 2:00 to 3:00 pm), Solution (07/03/2022)
03. End Term Examination (Held on 08/03/2022, 2:00 to 5:00 pm),

Recommended Study Material

The following will be used as a reference/text book for this course:
1. Dietel H.M, Dietel P.J, "Java: How to Program", Prentice-Hall, 7th Edition, 2006.
2. Flanagan D, "Java in a Nutshell", O'Reilly Media, Inc., 5th Edition. 2005.
3. Eckel B, "Thinking in Java", Prentice-Hall. 1998.
4. Gosling J, Joy B, Steele G., Bracha G., "The Java Language Specification", Prentice-Hall, 2nd Edition, 2000.
5. Xavier C, "Java Programming - A Practical Approach", Tata McGraw-Hill, 2011.