Programming Concepts using Java
A comprehensive course on core programming paradigms using Java, focusing on Object-Oriented Programming, generics, exception handling, and concurrent programming.
This course used the Java language to provide a deep understanding of several core programming paradigms. It began with a thorough exploration of Object-Oriented Programming, covering class hierarchies, inheritance, polymorphism, and abstract classes in detail. We then moved to essential Java features like the Collections framework, generics, I/O serialization, and robust exception handling. A significant portion of the course was dedicated to concurrent programming, providing the critical skills needed to build multi-threaded and responsive applications, a key requirement in modern software development.
Instructor
Prof. Madhavan Mukund, Director, Chennai Mathematical Institute
Course Schedule & Topics
The course is structured over 12 weeks, focusing on OOP principles before moving to advanced topics like concurrency.
| Week | Primary Focus | Key Topics Covered |
|---|---|---|
| 1 | OOP: Class Hierarchy | Understanding the basics of classes, objects, and how they form hierarchies. |
| 2 | OOP: Inheritance & Overriding | Implementing inheritance to create specialized classes and overriding methods for custom behavior. |
| 3 | OOP: Polymorphism | Leveraging polymorphism to write more flexible and reusable code. |
| 4 | OOP: Abstract Classes | Defining abstract classes and methods to create templates for subclasses. |
| 5 | Collections & Iterators | Working with Java’s built-in data structures and using iterators to traverse them. |
| 6 | Generics & Callbacks | Implementing type-safe collections with Generics and understanding the callback pattern. |
| 7 | Advanced Java Features I | Object cloning, I/O serializations for object persistence, and organizing code with Packages. |
| 8 | Advanced Java Features II | Continued practice and deeper dive into cloning, I/O, and packages. |
| 9 | Exception Handling | Techniques for building robust applications by handling runtime errors and exceptions. |
| 10 | Concurrent Programming I | Introduction to multi-threaded programming and concurrency fundamentals. |
| 11 | Concurrent Programming II | Intermediate concepts and patterns in concurrent programming. |
| 12 | Concurrent Programming III | Advanced topics and practices for building robust concurrent applications. |
Material used
-
Java: The Complete Reference (Eleventh Edition)by Herbert Schildt