Skip to main navigation Skip to main content Skip to page footer

Department of Physics

18204

18204  Object Oriented Programming   

Course Webpagehttps://eclass.uoa.gr/courses/PHYS304/ 

Course Content

  • Introduction to Object Oriented Programming, programming paradigms, different approaches to handling and organising state
  • Java programming language syntax
  • Types, classes, objects, class fields and methods, object initialization, Encapsulation, method Overloading, field and method modifiers, null and this, method calling in Java
  • Inheritance, base class initialization, method overriding, subclasses and subclass limitations, Polymorphism, dynamic and static binding, abstract classes, sealed classes, the Object class
  • Enumerations, Interfaces, Interfaces and Inheritance, default methods, callback as a programming technique, static and private methods, cloning objects, lambda expressions, functional interfaces, method references, introduction to threads
  • Inner classes, anonymous classes, local inner classes, Builder design pattern
  • Generic programming, type constraints and type limits, erasure, how the compiler handles generic types, type erasure and inheritance.
  • Exceptions and Exception Handling, Collections in the standard library: Lists, Sets, Queues, Maps, collection views
  • Multithreaded programming, threads, thread states, Locks, Conditions, Collections in multithreaded programs
  • Java facilitiew for multi-threaded programming: ThreadPools, Executors, CompletableFutures. Problems in multithreaded programms: data dependencies, race conditions. Approaches used in other programming paradigms
  • Introductiot to Graphical User Interfaces, principles of UI systems, Abstract Window Toolkig (AWT) and Swing, basic UI elements in Swing, Model-View-Controller pattern
  • Streams, stream processing, streams and collections, suppliers, reducers, transforming streams
  • Basic Design Patterns in OOP: builder, abstract factory, adapter, composite, decorator, flyweight, chain of responsibility, command, interpreter, mediator, memento, observer, state, visitor pattern
  • Network programming, Asynchronous I/O, Java NIO, Reactor Pattern
  • Introduction to Java Database Connectivity (JDBC)