Corso Vittorio Emanuele II, 39 - Roma 0669207671

MOOC Massive Open Online Courses (Academic Year 2018/2019)

Object Oriented Programming



Slides

Lesson n. 1: Introduction
   Course presentation

   Setting up the toolchain

   Writing the first program
Go to this slide Giovanni Malnati
Lesson n. 2: The Java programming language
   Basic concepts

   Control Statements

   Types and variables
Go to this slide Giovanni Malnati
Lesson n. 3: The Java Objects and classes
   Classes and objects

   Attributes adn methods

   Object references
Go to this slide Giovanni Malnati
Lesson n. 4: Objects and classes II
   Composing object

   Modifiers

   Object life cycle
Go to this slide Giovanni Malnati
Lesson n. 5: Inheritance and polymorphism
   Inheritance

   Polymorphism
Go to this slide Giovanni Malnati
Lesson n. 6: The Java Class Hierarchy
   Object

   String

   Arrays

   Interfaces
Go to this slide Giovanni Malnati
Lesson n. 7: Unified Modeling Language
   Introduction to UML

   Structural diagrams

   Behavioral diagrams
Go to this slide Giovanni Malnati
Lesson n. 8: Exception handling
   Dealing with errors

   Exception handling in Java

   Modeling exceptions
Go to this slide Giovanni Malnati
Lesson n. 9: Data collections
   Lists

   Sets

   Maps
Go to this slide Giovanni Malnati
Lesson n. 10: Collections in practice
   The phone book example
Go to this slide Giovanni Malnati
Lesson n. 11: Files and file systems
   Files and filesystem

   Accessing the file content
Go to this slide Giovanni Malnati
Lesson n. 12: Low level binary IO
   Low level binary I/O

   Object serialization

   Random access file
Go to this slide Giovanni Malnati
Lesson n. 13: Data IO in practice
   Persistent objects

   Character based user interface

   The command pattern
Go to this slide Giovanni Malnati
Lesson n. 14: Graphical user interfaces
   User interface paradigms

   The main window

   GUI class libraries
Go to this slide Giovanni Malnati
Lesson n. 15: User interaction
   Laying out content

   Listening to events
Go to this slide Giovanni Malnati
Lesson n. 16: Event handling
   GUI events

   Action

   Menus
Go to this slide Giovanni Malnati
Lesson n. 17: 2D Graphics
   2D graphics introduction

   The graphic pipeline

   Painting shapes
Go to this slide Giovanni Malnati
Lesson n. 18: Architectural patterns
   Model view controller

   Example

   Observer

   Handling multiple views
Go to this slide Giovanni Malnati
Lesson n. 19: Structured Data IO
   Dialog boxes

   List and tables

   Styled text documents
Go to this slide Giovanni Malnati
Lesson n. 20: GUI in practice
   Sketching the GUI

   Defining model behaviour

   Building the view
Go to this slide Giovanni Malnati
Lesson n. 21: Concurrent programming
   Inctroducing concurrency

   Threads mechanism

   Accessing shared data
Go to this slide Giovanni Malnati
Lesson n. 22: Synchronization
   Mutual exclusion

   Guarded blocks

   Producer and consumers
Go to this slide Giovanni Malnati
Lesson n. 23: Concurrent programming techniques
   Cancelling execution

   Concurrent collections
Go to this slide Giovanni Malnati
Lesson n. 24: High level synchronizers
   High level syncronizers

   Thread pools

   Interacting with GUI
Go to this slide Giovanni Malnati
Lesson n. 25: Concurrency in practice
   Problem requirements

   System design

   Handling termination
Go to this slide Giovanni Malnati