htw saar Piktogramm QR-encoded URL
Back to Main Page Choose Module Version:
XML-Code

flag



Programming 3

Module name (EN):
Name of module in study programme. It should be precise and clear.
Programming 3
Degree programme:
Study Programme with validity of corresponding study regulations containing this module.
Applied Informatics, Bachelor, ASPO 01.10.2022
Module code: PIB-PR3
SAP-Submodule-No.:
The exam administration creates a SAP-Submodule-No for every exam type in every module. The SAP-Submodule-No is equal for the same module in different study programs.
P221-0033
Hours per semester week / Teaching method:
The count of hours per week is a combination of lecture (V for German Vorlesung), exercise (U for Übung), practice (P) oder project (PA). For example a course of the form 2V+2U has 2 hours of lecture and 2 hours of exercise per week.
2V+2P (4 hours per week)
ECTS credits:
European Credit Transfer System. Points for successful completion of a course. Each ECTS point represents a workload of 30 hours.
5
Semester: 3
Mandatory course: yes
Language of instruction:
German
Assessment:
Project work

[updated 24.02.2018]
Applicability / Curricular relevance:
All study programs (with year of the version of study regulations) containing the course.

PIB-PR3 (P221-0033) Applied Informatics, Bachelor, ASPO 01.10.2022 , semester 3, mandatory course
Workload:
Workload of student for successfully completing the course. Each ECTS credit represents 30 working hours. These are the combined effort of face-to-face time, post-processing the subject of the lecture, exercises and preparation for the exam.

The total workload is distributed on the semester (01.04.-30.09. during the summer term, 01.10.-31.03. during the winter term).
60 class hours (= 45 clock hours) over a 15-week period.
The total student study time is 150 hours (equivalent to 5 ECTS credits).
There are therefore 105 hours available for class preparation and follow-up work and exam preparation.
Recommended prerequisites (modules):
PIB-PR1 Programming 1
PIB-PR2 Programming 2


[updated 13.10.2024]
Recommended as prerequisite for:
PIB-ASE Automated Software Development
PIB-SES
PIB-WEB Principles of Web Development


[updated 11.10.2024]
Module coordinator:
Prof. Dr.-Ing. Martin Burger
Lecturer: Prof. Dr.-Ing. Martin Burger

[updated 28.09.2016]
Learning outcomes:
After successfully completing this module students will be able to: implement modern programming concepts to improve the efficiency and readability of their software.
 
- apply the principles of the Clean Code to ensure the readability and maintainability of their code.
 
- design object-oriented software solutions using advanced techniques and methods to implement scalable and maintainable systems.
 
- integrate advanced libraries and frameworks into their software projects to extend their functionality.
 
- use logging techniques to efficiently identify and correct errors in their software.
 
- implement test automation and embed it in continuous integration to continuously ensure the quality and stability of their software.
 
- analyze and refactor existing software in order to improve its structure and efficiency.
 
- evaluate the quality of their software using specified test methods and make adjustments based on the results.
 
- use modern tools for code generation and apply AI-based approaches to programming support in order to automate repetitive tasks.
 
- regularly solve programming tasks to demonstrate their problem-solving skills and efficient application of programming concepts.
 
- plan and implement projects in teams using agile practices to manage complex software projects.

[updated 13.11.2024]
Module content:
The focus will be on the application of advanced programming concepts, the improvement of software quality through refactoring and the use of modern tools and technologies in software development. The following topics will be taught based on the Java programming language and other relevant tools and consolidated through practical exercises:
 
Advanced object-oriented programming:
 
- Java records and pattern matching
- Design patterns such as singleton, factory, observer
 
Clean code and software quality:
 
- Principles of clean code, including naming conventions, comments in code, method structure and simple design
 
Refactoring and code improvements:
 
- Refactoring to improve readability and maintainability
- Support through IDEs (e.g. IntelliJ IDEA)
 
Test automation and continuous integration:
 
- Unit and integration tests with JUnit
- Continuous integration with Maven and GitLab/Github on a shared branch
 
Libraries and frameworks:
 
- Google Guava for extended functionalities and data structures
- jOOQ for type-safe and fluent-style SQL queries
 
Coding katas and programming puzzles:
 
- Periodic coding katas to deepen your programming skills
- Java challenges as programming puzzles
 
Generating program code with modern tools:
 
- Generating code to automate recurring tasks with modern IDEs
- AI-supported code generation for the creation of boilerplate code (e.g. GitHub Copilot)
 
Logging and error diagnostics:
 
- Logging techniques and frameworks for error diagnosis (such as SLF4J and Logback)
- Using logging for diagnostics and monitoring in production systems, taking logging levels and performance aspects into account
 
Version control and collaborative development:
 
- Git basics: central concepts, basic commands, workflow basics
- Joint work on a branch in conjunction with continuous integration
 
Project work:
 
- Team project lasting several weeks that integrates and deepens the content taught

[updated 13.11.2024]
Teaching methods/Media:
- Transparencies
- Projector
- Blackboard
- Course-specific website

[updated 13.11.2024]
Recommended or required reading:
- Bloch, J. (2017). Effective Java (3rd Edition). Addison-Wesley Professional
 
- Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley Professional.
 
- Farley, D. (2021). Modern Software Engineering: Doing What Works to Build Better Software Faster. Addison-Wesley Professional.
 
- Freeman, E. (2021). Entwurfsmuster von Kopf bis Fuß. dpunkt.
 
- Inden, M. (2020). Java Challenge. dpunkt.
 
- Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Pearson.
 
- Siessegger, N. (2024). Git – kurz & gut. dpunkt.
 
- Ullenboom, C. (2023). Java ist auch eine Insel: Einführung, Ausbildung, Praxis. Rheinwerk.

[updated 13.11.2024]
Module offered in:
WS 2024/25, WS 2023/24, WS 2022/23, WS 2021/22, WS 2020/21, ...
[Fri Dec 27 17:26:57 CET 2024, CKEY=pp3, BKEY=pi2, CID=PIB-PR3, LANGUAGE=en, DATE=27.12.2024]