Programming Concepts using Java
Object-oriented programming from first principles, taught through Java — classes, memory, abstraction, and the JVM underneath it all.
§ 1Calendar
- Quiz 1—
- Quiz 2—
- End-term examination—
§ 2Previous Year Questions
-
Concept-wise PYQs, last 6 terms
Questions grouped by concept, with exam analysis, repetition analysis and short notes.
drive.google.comby Abhishek GuruIITM login required
§ 3Resources
Course material2
-
Supplementary content (Drive folder)
drive.google.comIITM login required
-
Course YouTube channel
youtube.com
Notes3
-
Course notes
Notes and study material for this course.
iitmbsdegree.inby IITM BS Students' Corner -
Java notes on Medium
Written notes for the Programming Concepts using Java course.
medium.comby Pratham Bhalla -
Week-by-week revision notes
Short revision notes for every week, from the TA team.
bsjavacs2005.github.io
TA resources4
-
Week-by-week resources
Sheet of resources for each week.
docs.google.com -
TA sessions, May 2026 term
Sheet of the Java TA sessions held in the May 2026 term.
docs.google.comIITM login required -
TA session materials
Slides and files shared in the TA sessions.
drive.google.comIITM login required -
Quiz 2 session class notes
Notes from the Quiz 2 previous year questions session.
drive.google.comIITM login required
Code and practice2
-
TA session source code
Code written in the TA sessions. Read the README first.
github.comby Kaushal00Vaid -
Practice questions
Questions on function overloading, getters and setters, and copy constructors.
docs.google.com
Syllabus
The official course syllabus, transcribed from the IITM BS Data Science & Applications course booklet.
§ 1Course Description
This course uses Java to develop an understanding of core concepts such as object-oriented programming, exception handling, event-driven programming, concurrent programming, and functional programming.
Lectures-Tutorials-Practicals-Credits: 4-0-0-4
§ 2Faculty
- Prof. Madhavan Mukund, Director, Chennai Mathematical Institute
§ 3Week-by-week
Week 1: Orientation; Java basics - types, memory; OOP - abstraction, classes and objects.
Week 2: Java basics; Data types; Control flow; Classes and objects; Input and output.
Week 3: OOP - inheritance, polymorphism; Class hierarchy; Subtyping; Modifiers.
Week 4: Abstract classes and interfaces; Encapsulation and controlled interaction; Private classes; Callbacks; Iterators.
Week 5: Polymorphism; Generic programming; Generics and subtyping; Runtime behavior of generics.
Week 6: Indirection and abstraction; Collections - abstraction, concrete collections, maps.
Week 7: Error handling - exceptions, assertions; Packages; Logging.
Week 8: Cloning; Type inference; Functional programming (higher-order functions, streams).
Week 9: Optional types; Stream processing and result collection; Input/output streams; Serialization.
Week 10: Concurrency - threads, race conditions; Synchronisation (mutual exclusion, test-and-set, monitors).
Week 11: Concurrency in Java - threads and monitors; Concurrent programming examples; Thread-safe collections.
Week 12: Graphical user interfaces; Event-driven programming; Swing toolkit; GUI examples.
TA sessions
Recordings of the January 2026 term TA sessions, week by week, with what each one covered.
§ 1Session recordings
Week 1 and 2: Intro to Java programming3
-
Session 1 · 12 Feb 2026
Input and output, memory management, conditions, operators, datatypes and variables.
drive.google.comIITM login required -
Session 2 · 15 Feb 2026
Switch, loops, arrays, functions, constructors, overloading and copy constructors.
drive.google.comIITM login required -
Session 3 · 19 Feb 2026
Type casting, getters and setters, deep and shallow copy, practice coding questions.
drive.google.comIITM login required
Week 3: Inheritance and subtyping2
-
Session 1 · 22 Feb 2026
Inheritance, subtyping and dynamic dispatch.
drive.google.comIITM login required -
Session 2 · 26 Feb 2026
Practice assignments for weeks 2 and 3.
drive.google.comIITM login required
Week 4: Abstract classes and interfaces2
-
Session 1 · 5 Mar 2026
Abstract classes and interfaces.
drive.google.comIITM login required -
Session 2 · 8 Mar 2026
Private classes, week 4 practice assignment and a Quiz 1 PYQ paper.
drive.google.comIITM login required
Quiz 1 PYQs1
-
Session 1 · 12 Mar 2026
Last year's paper and the Jan 2025 term paper.
drive.google.comIITM login required
Week 5: Generics1
-
Session 1 · 20 Mar 2026
Basic generics, multiple generic arguments and wildcards.
drive.google.comIITM login required
Week 6: Collections framework1
-
Session 1 · 22 Mar 2026
ArrayList and HashSet.
drive.google.comIITM login required
OPPE 1 practice (weeks 1 to 6)3
-
Session 1 · 26 Mar 2026
OPPE 1 practice.
drive.google.comIITM login required -
Session 2 · 29 Mar 2026
OPPE 1 practice.
drive.google.comIITM login required -
Session 3 · Instructor session
OPPE 1 practice with the instructor.
drive.google.comIITM login required
Week 7: Exception handling1
-
Session 1 · 3 Apr 2026
Exception handling and custom exceptions.
drive.google.comIITM login required
Quiz 2 PYQs1
-
Session 1 · 9 Apr 2026
Papers from the last two terms. Class notes are in the Resources section.
drive.google.comIITM login required
Week 9: Optional types and streams2
-
Session 1 · 16 Apr 2026
Optional types, collecting results from streams, input and output streams.
drive.google.comIITM login required -
Session 2 · 19 Apr 2026
Practice and graded assignments for week 9.
drive.google.comIITM login required
Week 10: Threads and concurrency2
-
Session 1 · 23 Apr 2026
Threads, the Runnable interface, race conditions and how to avoid them.
drive.google.comIITM login required -
Session 2 · 26 Apr 2026
Practice and graded assignments for week 10.
drive.google.comIITM login required
Weeks 11 and 12: Threads and Swing1
-
Session 1 · 30 Apr 2026
Week 11 practice assignment discussion and week 12 practice assignment, with a bird's eye view of Swing.
drive.google.comIITM login required
End term PYQs2
-
Session 1 · 3 May 2026
The Sept 2025 paper.
drive.google.comIITM login required -
Session 2 · 7 May 2026
More end term papers.
drive.google.comIITM login required
OPPE
Past questions and practice for the Programming Concepts using Java online proctored programming exams.
§ 1Practice and past questions
Practice1
-
HackerRank Java practice
Competition used for OPPE 1 practice.
hackerrank.com
OPPE 11
-
OPPE 1 resources
Past OPPE 1 questions and a practice set.
drive.google.comIITM login required
OPPE 21
-
OPPE 2 resources
Practice material for OPPE 2.
drive.google.comIITM login required