INDICATIVE CONTENT
Design and write Classes exhibiting:
Encapsulation, Inheritance and Polymorphism
Static and non-static fields, methods and classes
Mutability and immutability
Singleton design pattern
Advanced Java Class Design
Override hashCode(), equals(), and toString() methods from Object class
Abstract classes and methods
“final” keyword
inner classes (static inner class, local class, nested class, and anonymous inner class)
Enumerated types
Lambda expressions
Generics and Collections
Create and use a generic class
Collections (ArrayList, TreeSet, TreeMap, and ArrayDeque objects)
Use java.util.Comparator and java.lang.Comparable interfaces
Collection streams
Filter a collection by using lambda expressions
Iterate using forEach() methods of Streams and List
Stream interface and Stream pipeline
Lambda Built-in Functional Interfaces
Use the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Supplier
Exceptions
try-catch statements, including catch, multi-catch, and finally clauses
throw statements
Autoclose resources with a try-with-resources statement
Create custom exceptions and Auto-closeable resources
Java I/O Fundamentals
Read and write data from the console
BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the java.io package.
Java Marker Interfaces
Serializable and Cloneable
Java Concurrency
Create worker threads using Runnable, Thread, Callable and use an ExecutorService to concurrently execute tasks
“synchronized” keyword and java.util.concurrent.atomic package to control the order of thread execution
Parallel Fork/Join Framework
Use parallel streams including reduction, decomposition, merging processes, pipelines and performance.
ADDITIONAL ASSESSMENT DETAILS
1. Lab work evaluation: Questions based on the portfolio of work developed in the weekly practical sessions. (Los 1 and 2)
Students, upon their return to Paris, will undergo an examination that focuses on meeting learning outcomes 1 to 2. While Staffordshire University is responsible for preparing students for the exam, EFREI will handle setting and administering this assessment.
LEARNING STRATEGIES
Lectures will present new concepts and tutorials will provide opportunity for practical application of these concepts, supported by a tutor.
LEARNING OUTCOMES
1. Design object-oriented applications with the UML, employing core object-oriented programming principles
Problem solving
Analysis
2. Write object-oriented applications with Java, using a suitable IDE, employing core object-oriented programming principles
Problem solving
Application
TEXTS
Horstmann, C. (2019) Core Java Volume 1—Fundamentals. 11th edition. Pearson.
RESOURCES
Microsoft Visio, or some other UML diagramming software that can save diagrams as PDF
Java SE Developer Kit
A Java IDE, such as NetBeans
WEB DESCRIPTOR
On this module, you will learn about Java, which is one of the most wide-used object-oriented programming languages. As well as improving your ability to design and write object-oriented programs, you will learn about some of Java’s advanced programming concepts such as generics, streams, lambda expressions, concurrency and database usage.