Module Descriptors
JAVA PROGRAMMING (EFREI)
COMP50099
Key Facts
Digital, Technology, Innovation and Business
Level 5
0 credits
Contact
Leader: Benhur Bakhtiari Bastaki
Hours of Study
Scheduled Learning and Teaching Activities:
Independent Study Hours:
Total Learning Hours: 105
Pattern of Delivery
  • Occurrence A, Stoke Campus, UG Semester 1
  • Occurrence B, Stoke Campus, UG Semester 2
Sites
  • Stoke Campus
Assessment
  • LAB WORK EVALUATION - 1.5 HOURS weighted at 100%
Module Details
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.