Advanced Programming in Java
1
2024-2025
02021918
Information and Communication Technologies
Portuguese
Face-to-face
22.0
Compulsory
Non Degree Course
Recommended Prerequisites
NA
Teaching Methods
This course unit is structured in 6 hours of lectures per week, and the remaining are labs. All classes are accompanied by a teacher. The programming concepts are introduced and put in practice during lectures. Particular programming problems are solved during labs, some of which are subjected to individual evaluation. The enrolment in this course unit requires a positive final grade (above or equal to 10) in the previous course units.
Learning Outcomes
To gain knowledge in web application development, including both frontend and backend aspects, this course provides a thorough exploration of relevant technologies and methodologies. In frontend programming, students will learn about recent advancements and techniques essential for building applications using HTML, CSS, and diverse Javascript frameworks such as React and Bootstrap.
In backend programming, a multi-layer architecture approach is emphasized, covering the service layer with technologies like RESTful web services, the business layer with CDI and EJB beans, and the data layer incorporating Entities and Data Access Objects. Students will engage with widely used Java enterprise platforms like Jakarta, alongside tools such as Maven for automated building, Wildfly for application servers, and Git for version control. Additionally, testing tools for JavaScript, API testing, and unit testing will be covered as well.
Work Placement(s)
NoSyllabus
- Frontend Programming: HTML, CSS, and JavaScript Frameworks
- Three-tier architecture and Java enterprise platforms like Jakarta
- Web services: Data transport (XML, JSON), RESTful Web services with JAX-RS
- Enterprise Beans, Message-driven Beans; Dependency Injection and CDI Beans
- Object-Relational Mapping (ORM), Java Persistence API, JP Query Language (JPQL), Criteria API
- Security in Web and Enterprise applications
- Transactions
- Internationalization and Localization
- Bidirectional Connection through WebSocket
- Responsiveness of Web applications
Testing: JavaScript Testing (e.g. Jest), API Testing (e.g., Postman), Unit Testing (e.g., Junit), ...
Head Lecturer(s)
José Alexandre D'Abruzzo Pereira
Assessment Methods
Continuous Assessment
The assessment has only one component: continuous evaluation. Continuous evaluation aims to stimulate students’ participation in class activities and assess his/her evolution during the course: 100.0%
Bibliography
Jakarta EE Specefications (disponível em https://jakarta.ee/specifications/).