OOP with Java, Course presentation Thomas Broussard

Global summary

This page describes the two main parts of this course. The whole course should bring the student to an effective level in OO conception and Java programming, enough to be autonomous in a professional environment

The course is divided is organized in several lectures, they are presented below with an incremental difficulty

Practising

During all these lectures, the student will be brought practise a lot : a combination of exercises and semester project are integrated with the course content

Java has been my starting point. I practise it every day as my job and I'm very fond of this language. I find it so powerful and at the same time so simple! A newbie can make great things in Java, although the produced code would be in this case most inefficient and not optimized nor reusable.

Pre-requisites

If you start from the beginning, there is no minimal skill to have

Advanced section requires at least OO concepts and Java language knowledge

During all these lectures, the student will be brought practise a lot : a combination of exercises and semester project are integrated with the course content

OO Concepts and Java

OO Concepts 1 : OO approach and UML

During this lecture, you will learn the Object Oriented approach to design your applications

  • Course content (not available yet)
  • Slideshow
Skills

OO Concepts, UML


OO Concepts 2 : Class Diagrams, Object Relationships

This lecture presents the UML Class Diagramming, and especially how to represent objects, and relationships between those objects

  • Course content (not available yet)
  • Slideshow
Skills

UML Class Diagrams, Object Relationships


Java programming 1 : OO Concepts in Java

During this lecture, we will see how to use Eclipse and to write our first Java program, and will begin to see the numerical data in java

Skills

Eclipse, Java Core, Numerical data


Java programming 2 : Java environment, compilation, execution

What is the Java Virtual Machine? How does it work? How the written code is executed in Java? These questions will be answered in that lecture

Skills

Java Environment, Java Core


Java programming 3 : Java control and repetition statements

How to control the execution flow (if-else, switch) ? How to repeat instructions in Java? We will practice through Numerical data manipulation

  • Course content (not available yet)
  • Slideshow
Skills

Java Environment, Java Core, UML Activity Diagrams


Java programming 4 : Instantiation, Inheritance, Abstraction

How to create and use objects efficiently in Java? How to use inheritance? What is an Interface? This lecture will teach you how to organize your code into an efficient Object-Oriented approach

Skills

Inheritance, Abstraction (abstract/interface)


Java programming 5 : Java Data Manipulations

How to make your own Logger class? The realization of this feature will help the student to improve her/his skills manipulating Date, String and File Objects.

Skills

Date, String, Files, Logging


Java programming 6 : Java Data Structures

What are the different built-in data structures in Java? We will see how to handle sets of data through examples

Skills

List, Set, Map, Stack, Queue


Java and XML

How to Handle XML through the Java Programming language?

Skills

XML, DOM, XPath, Breadth/Depth algorithms


Java and Data Bases

How to connect to a Data Base through Java?

Skills

Databases, JDBC, DAO pattern

Advanced Java Programming

Introduction to JEE + tools

This course will open the path for further JEE developments, allowing to handle tools like maven and Junit

Skills

Maven, Junit, JEE


JEE : Dependency Injection

How to implement Dependency Injection using Spring

Skills

DI, Spring, H2


JEE : Java Persistence API

How to implement Java Persistence API using Hibernate?

Skills

Spring, H2, Hibernate


JEE : JAX-RS & JAX-WS

How to implement Java Persistence API using Hibernate?

Skills

Spring, H2, Hibernate


JEE : REST Services with JAX-RS

How to implement Java Web-Services using JAX-RS

Skills

Spring, JAX-RS, Jersey


Projects

Practising Bases

The scope of this project beginning is to build the core of our application. It will assume all the backend treatments, focusing on code basics, and providing a strong base for the rest of our design

Project description

Advanced Java Web Programming

That project will continue thanks to the result of the "Practising bases" project. We will develop a web application that allows user to manage Identities graphically

Project description


A brief note on how this course has been built

This course has been built thanks to personal experience, and rely on at least 6 excellent technical books :