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

CourseCSE 201 · Object Oriented Programming · theory course
LanguageJava
Companion labCSE 202 Object Oriented Programming Lab
MaterialsThe 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

LecturesTopicSlides
1Introducing 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
2Iterative Statements
Repeating work with while, do-while, for and for-each loops, nesting loops, and controlling them with break, labeled break and continue.
Open
3Arrays, 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–6Classes, 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–8Overloading, 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–9Access 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–10Inheritance
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–12Overriding, 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–14Packages & 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–18Exception 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–21Multithreaded 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–23Strings & 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
24GUI, 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.