Course outline
CSE 201 Object Oriented Programming — what the course covers and how it is organised, with every topic linked to its slide deck.
General information
| Course | CSE 201 · Object Oriented Programming · theory course |
| Language | Java |
| Companion lab | CSE 202 Object Oriented Programming Lab |
| Materials | The class lecture slides, rebuilt here as 13 interactive decks |
What you will be able to do
- Explain what object-oriented programming is and how it differs from structured programming.
- Write Java programs with types, operators, decisions, loops and arrays.
- Design classes and objects with encapsulation, constructors, overloading and recursion.
- Use access control, static and final members, inheritance, overriding, polymorphism, abstract classes, packages and interfaces.
- Handle errors with exceptions, run work in threads, process strings, and build simple GUI and database programs.
Lecture plan
| Lectures | Topic | Slides |
|---|---|---|
| 1 | Introducing OOP & Java Basics What object-oriented programming is, how it differs from structured programming, and the Java building blocks: data types, variables, operators and decisions. | Open |
| 2 | Iterative Statements Repeating work with while, do-while, for and for-each loops, nesting loops, and controlling them with break, labeled break and continue. | Open |
| 3 | Arrays, Sorting & Searching Storing many values in one array, 2-D and jagged arrays, how arrays live in memory, and the classic sorting and searching algorithms. | Open |
| 4–6 | Classes, Objects & Encapsulation Defining classes, creating objects with new, protecting data with encapsulation, writing constructors, using this, and how Java garbage-collects unused objects. | Open |
| 7–8 | Overloading, Objects as Parameters & Recursion Methods and constructors that share a name, how Java passes arguments (always by value — even references), returning objects, and solving problems with recursion. | Open |
| 8–9 | Access Control, static, final & Nested Classes Who may use a field or method (private, default, protected, public), members that belong to the class rather than an object (static), constants and fixed references (final), and classes inside classes. | Open |
| 9–10 | Inheritance Building new classes from existing ones with extends, drawing the hierarchy in UML, using super for constructors and members, multilevel hierarchies and the Object class. | Open |
| 11–12 | Overriding, Polymorphism & Abstract Classes Replacing inherited behaviour with method overriding, dynamic method dispatch, casting within a hierarchy, abstract classes, final classes and methods, and using library classes. | Open |
| 13–14 | Packages & Interfaces Organising classes into packages, how access modifiers work across packages, defining and implementing interfaces, default and static interface methods, and choosing between interfaces and abstract classes. | Open |
| 15–18 | Exception Handling What happens when something goes wrong at run time, the exception class hierarchy, try, catch, finally, throw and throws, and writing your own exception classes. | Open |
| 19–21 | Multithreaded Programming Running several tasks at once with threads: creating and starting them, the thread life cycle, race conditions and synchronization, and coordinating threads with wait and notify. | Open |
| 22–23 | Strings & Big Numbers The String class, the string pool and immutability, comparing and processing strings, StringBuilder, and doing arithmetic on numbers far too large for long. | Open |
| 24 | GUI, Graphics, Databases & Spring Building desktop interfaces with JavaFX components and layouts, handling events, drawing and animating graphics, connecting to a database with JDBC, and a first look at the Spring framework. | Open |
Class slides: the midterm set covers Module 1 (introduction to OOP), Module 2 (Java fundamentals) and Module 3 (arrays); the final set covers interfaces, exception handling, threads, strings, applets and file handling.