Home

Programming concepts using Java

This is an online textbook for the course Programming concepts using Java.

Note to students: This book is meant to be used as a reference. You may find content that has not been covered in the video lectures. Likewise, there may be some content that is present in the lectures which is not covered here. Additional content appearing in this book will not be considered for grading. In summary, please refer to chapters that you feel are relevant for the course. But you are under no obligation to read the entire book cover to cover. Interested students are always welcome to read the entire thing!

 

INDEX

WeekContentSummary and Implementations
1Programming concepts: Programming styles, Memory management, Abstraction and modularity, Object oriented programming, Classes and objectsOpen
2Introduction to Java: Basic datatypes, Control flow, Defining classes and objects, Basic input and outputOpen
3Subclasses and inheritance: The philosophy of OO programming, Subclasses and inheritance, Dynamic dispatch and polymorphism, Java class hierarchy, Subtyping vs inheritance, Java modifiersOpen
4Abstract classes and interfaces: Abstract classes, Interfaces, Private classes, Controlled interactions with objects, Callbacks, IteratorsOpen
5Generics: Polymorphism revisited, Generics and subtyping, Wildcards, Generics at runtime, ReflectionOpen
6Collections framework: Benefits of indirection, Concrete collections, MapsOpen
7Exception handling and packages: Dealing with errors, Exceptions in java, Packages, Assertions, LoggingOpen
8Cloning and streams: Cloning, Type inference, Higher order functions, Streams, Optional types, Collecting results from streamsOpen
9File handling and serialization: Input/Output streams, SerializationOpen
10Concurrent programming-1: Threads and processes, Race conditions, Mutual exclusion, Test and set, MonitorsOpen
11Concurrent programming-2: Monitors in java, Thread in java, Thread safe collectionsOpen
12Event-driven programming and GUI programming using swings: Graphical interfaces and Event-driven Programming, Swing ToolKit, Swing examplesOpen