CS2005 · Diploma / Programming · 4 credits

Programming Concepts using Java

Object-oriented programming from first principles, taught through Java — classes, memory, abstraction, and the JVM underneath it all.

Instructor Prof. Madhavan Mukund Term Every term Prereq CS1002

§ 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

Notes3

TA resources4

Code and practice2

CS2005 · Diploma / Programming · 4 credits

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

§ 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.

CS2005 · Diploma / Programming · 4 credits

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

Week 4: Abstract classes and interfaces2

Quiz 1 PYQs1

Week 5: Generics1

  • Session 1 · 20 Mar 2026

    Basic generics, multiple generic arguments and wildcards.

    drive.google.comIITM login required

Week 6: Collections framework1

OPPE 1 practice (weeks 1 to 6)3

Week 7: Exception handling1

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

CS2005 · Diploma / Programming · 4 credits

OPPE

Past questions and practice for the Programming Concepts using Java online proctored programming exams.

§ 1Practice and past questions

Practice1

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