Study-Unit Description

Study-Unit Description


CODE LAS3006

 
TITLE Extreme Java Development

 
UM LEVEL H - Higher Level

 
MQF LEVEL 6

 
ECTS CREDITS 4

 
DEPARTMENT Centre for the Liberal Arts and Sciences

 
DESCRIPTION This unit provides students an in-depth view of advanced programming concepts using the latest version of the Java programming language. Students are assumed to be already familiar and experienced with this ecosystem. This course is hands-on and students will be participating by working out the exercises in class after the introduction of each concept.

This unit starts off by presenting the design philosophy behind the latest changes and features of the Java programming language, together with the core concepts of Functional Programming and how they were adapted in Java. This is followed by an in-depth review of the new toolkit that enables the functional programming paradigms in Java, mainly Lambda Expressions, Functional Interfaces, Method References and Streams.

The unit proceeds with a deep dive into Java’s Concurrency API, starting off with conventional multi-threading and synchronisation mechanisms, followed by advanced concepts such as Executors, Futures, and Atomic classes. The unit then follows with high performance network and I/O programming using non-blocking and asynchronous I/O techniques, using Java’s NIO and NIO.2. The student will learn how to use Channels, Buffers, Selectors, and the new File management API.

An overview of the JVM’s operations, management and fine-tuning mechanisms will also be provided, including an introduction to JMX and Java Mission Control.

The unit concludes with an insight into the internationalisation capabilities provided by Java, which enable the programmer to develop applications that target a global audience. This includes an in-depth review of the new Date and Time API, and the main concepts behind localization.

Learning Outcomes:

1) Knowledge and Understanding
By the end of the unit the student will be able to:

- explain the new functional programming toolset provided by Java 8;
- describe the multi-threading and synchronisation capabilities of the Java Concurrency API;
- apply the functionality available through Java’s NIO and NIO.2 APIs;
- describe Java’s operations and management facilities; and
- apply the new Date and Time API.

2) Skills
By the end of the unit the student will be able to:

- apply the functional programming idioms introduced in Java 8, such as Lambda Expressions, Functional Interfaces and Method References;
- make use of the new Steam API and improved Collections API;
- develop applications that take advantage of Java’s Concurrency API;
- take advantage of Java’s operations and management capabilities;
- write high performance non-blocking/asynchronoous I/O applications;
- make effective use of the new Date and Time API.

Main Text/s and any supplementary readings:

- R. Urma, M. Fusco, and A. Mycroft, Java 8 in Action, Manning Publications, 2014. ISBN 978-1617291999.
- S. Oaks, Java Performance: The Definitive Guide, O’Reilly Press, 2014. ISBN 978-1449358457.
- R. Warburton. Java 8 Lambdas: Functional Programming for the Masses. O’Reilly Media, 2014. ISBN 978-1449370770.
- A. Leonard, Pro Java 7 NIO.2, Apress, 2011, ISBN 978-1430240112.

 
ADDITIONAL NOTES Pre-requisite Knowledge, Skills and Competences: Fluency in Java -3 yrs industry experience.
Working knowledge of Maven.

 
STUDY-UNIT TYPE Lecture and Practical

 
METHOD OF ASSESSMENT
Assessment Component/s Sept. Asst Session Weighting
Presentation (10 Minutes) No 30%
Project Yes 70%

 
LECTURER/S Josef Bajada

 

 
The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit