Advanced Programming Concepts module (GA22009)

SCQF Level 8 module covering advanced Java programming including concurrency, multithreading, generics, lambdas, streams, regular expressions, socket programming, etc.​

Credits
20
Module code
GA22009
Level
2
Semester
Semester 2
School
School of Science and Engineering
Discipline
Graduate Apprenticeship Programme

​​Advanced Programming Concepts builds on the object-oriented programming skills developed in Stage 1 to cover more advanced topics in software development at SCQF Level 8.

The module focuses on concurrent and parallel programming in Java, including multithreading, race conditions, and synchronisation techniques.

You will also study generics, lambda expressions, streams, regular expressions for text processing and pattern matching, and socket programming for network communication.

These concepts are applied through practical coding sessions and work-related assessments, reflecting the real-world challenges that software developers encounter in professional environments. 

​What you will learn 

​In this module, you will: 

  • ​Implement concurrent and multithreaded programs in Java 
  • ​Identify and manage race conditions in concurrent software 
  • ​Write and apply regular expressions for text processing and pattern matching 
  • ​Use socket programming for network communication between applications 

​By the end of this module, you will be able to: 

  • ​Explain the concepts of concurrency and parallel programming and their role in modern software development 
  • ​Demonstrate an ability to use advanced software development tools and packages including Java concurrency APIs 
  • ​Develop and apply problem-solving, communication, team-working, time-management, self-assessment, and independent study skills​

Assignments / assessments

​​100% Coursework 

  • ​Assessment is entirely by coursework, which may be work-based, work-related, or standard project work. 
  • ​Tasks draw on some of the advanced Java programming skills developed throughout the module, for example, concurrency, multithreading, regular expressions, socket programming, and general data structures and algorithms. 

​This module does not have a final exam.​

Teaching methods / timetable

  • ​​Tutorial sessions introducing advanced programming concepts through demonstrations and examples.
  • ​Practical coding sessions where you will develop skills by solving programming problems with academic support​