Module Descriptors
ADVANCED PROGRAMMING
COMP50058
Key Facts
Digital, Technology, Innovation and Business
Level 5
20 credits
Contact
Leader: Dhuha Al-Shaikhli
Hours of Study
Scheduled Learning and Teaching Activities: 52
Independent Study Hours: 148
Total Learning Hours: 200
Pattern of Delivery
  • Occurrence A, Stoke Campus, UG Semester 2
  • Occurrence B, Digital Institute London, UG Semester 2
Sites
  • Digital Institute London
  • Stoke Campus
Assessment
  • PRACTICAL ASSESSMENT - 15 mins weighted at 100%
Module Details
Indicative Content
This module will address topics of:



Advanced features of programming

Generic classes and collections

Inner and anonymous classes

Lambda expressions

Enumerated types

Cloning

Auto-closable resources

Custom exceptions

Mutable vs Immutable objects

Functional interfaces

The Stream API

The Reflection API

Unit Testing

The application of advanced features of programming in a server-based environment

Additional Assessment Details
Practical Assessment - An implementation and testing of an artefact, that uses advanced features of a suitable programming language, based on a server-based application. Students will show and describe their solution in a demonstration providing rationale as to its design and development (Learning Outcome 1 to 3).
Learning Strategies
All teaching sessions will blend theory and practical learning. Students will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples within the same sessions. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry stories. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.

Learning Outcomes
1. Implement an Object-Oriented application using advanced features of a suitable programming language

Analysis, Application

2. Show practical ability in selecting testing methods and applying these

Application

3. Apply the most appropriate advanced programming features to the design and implementation of a server-based application

Application, Problem Solving

Resources
Java SE Developers Kit

Java IDE (e.g. IntelliJ IDEA Ultimate)
Texts
Spring (2022) Spring Boot. [Online] Available at: https://spring.io/projects/spring-boot [Accessed 28/12/2022]
Webb, P. et al (2022) Spring Boot Reference Documentation. [Online] Available at: https://docs.spring.io/spring-boot/docs/current/reference/html/ [Accessed 28/12/2022]

Rocca, L, M. (2021), Algorithms and Data Structures in Action, Manning Publications; 1st edition

Skiena, S. (2020), The Algorithm Design Manual (Texts in Computer Science), Springer; 3rd ed. 2020 edition

Wengrow, J. (2020), A Common-Sense Guide to Data Structures and Algorithms, 2e: Level Up Your Core Programming Skills, The Pragmatic Programmers; 2nd ed. edition

Barry, P. (2016), Head First Python, O'Reilly

Schneider, D.I. (2015), An introduction to programming using Python, Pearson

Web Descriptor
In this module, you will build on the foundation laid in Level 4 of your award by learning some of the advanced features of programming. This will add a degree of sophistication to the coding skills you have already gained. You will also learn how to use these skills in a server-based application development scenario.