module specification

CS5003 - Data Structures and Specialist Programming (2022/23)

Module specification Module approved to run in 2022/23
Module title Data Structures and Specialist Programming
Module level Intermediate (05)
Credit rating for module 30
School School of Computing and Digital Media
Total study hours 300
90 hours Scheduled learning & teaching activities
139 hours Guided independent study
71 hours Assessment Preparation / Delivery
Assessment components
Type Weighting Qualifying mark Description
Coursework 30%   Individual Programming Assignment and Report
Coursework 30%   Individual Programming Assignment and Report
Unseen Examination 40%   2 hours Unseen Exam
Running in 2022/23

(Please note that module timeslots are subject to change)
Period Campus Day Time Module Leader
Year North Monday Afternoon

Module summary

This module further develops students’ knowledge and skills in developing software applications for solving problems. It focuses on the data structures and algorithms in programming and the software technologies for building standalone, networked and Internet applications. The module is designed to enhance employability through the use of modern industrial tools and technologies, and familiarisation with the software development life cycle.

The key skills and knowledge to be gained are:-

• Provide students with an understanding of theoretical concepts related to the use of data structures, algorithms, programming patterns and software infrastructure in standalone, networked and Internet environments.
• Develop students’ analytical skills in the context of processing, generating, transforming, transporting, storing, retrieving and presenting data.
• Enhance students’ practical skills using appropriate methods and techniques for designing, programming and integrating software applications using user interfaces, data structures and persistent storage.
• Provide students with an understanding of programming during the different stages of the software development lifecycle.
• Enable students to apply analytical and practical skill in solving typical problems in standalone, networked and Internet environments.
• Enhance students’ experience and employability through the use of appropriate current technologies, enterprise tools and development environments during software development.

Prior learning requirements

Successful completion of Level 4 or equivalent


Data structures, such as arrays, linked lists, stacks, queues and trees LO1, LO6
Recursion, iteration, files, streams, sorting and searching algorithms. LO1
Collections LO1, LO2
Error handling LO3
Threads LO2
Design patterns e.g. MVC LO2, LO3, LO4
Software development environments LO4, LO5, LO7
Graphical User Interfaces LO3
Persisting Data using e.g. SQL, JDBC LO4, LO5
Client/server network programming using e.g. sockets. LO2
Web Client-side and Server-side Programming using e.g. servlets/JSPs LO3, LO4

Balance of independent study and scheduled teaching activity

The module teaching and learning is based on a blended learning approach which includes the following: -
• Lectures for defining concepts, describing methods and discussing alternatives.
• Workshops for demonstrating software, configuring working environments, building solutions, discussing alternatives and acquiring hands-on experience.
• Coursework for reporting technical research and solutions, comparing alternatives and reflection.
• Use of a Virtual Learning Environment (VLE) for setting problems, providing feedback and submitting materials
• Demonstration of software solutions for evaluation and reflection

• Students will be expected and encouraged to produce reflective commentaries and an action plan for personal development on the learning activities and tasks that they carry out to complete their work, e.g. in the form of an assessed section of their coursework report.

Learning outcomes

LO1: Specify suitable data structures, implement corresponding algorithms for data processing and estimate their complexity in terms of execution time and memory occupation.

LO2: Use appropriate program design patterns and implement interactive programs working in a standalone, client-side, server-side and client/server mode of operation.

LO3: Design and implement GUIs for interactivity

LO4: Manipulate data sources for efficient storage, retrieval and exchange of persistent data in formats such as text, XML and databases using libraries

LO5: Build dynamic Web sites for server-side processing using libraries

LO6: Interpret and transform design specifications into software applications within development environments and test and deploy such applications using libraries.

LO7: Critically evaluate software development within the various stages of the software product lifecycle.

Assessment strategy

The coursework will involve analysing, designing, implementing, testing and documenting software applications, and is aimed at developing students’ skills, knowledge, confidence and problem-solving strategies [LO1-LO7]. The workshop materials, activities and feedback opportunities will be dedicated to supporting student learning and provide the foundation for the coursework. Students will have the opportunity to demonstrate their solutions to the workshop exercises and receive regular feedback.

Students’ overall understanding of the subject will be assessed through the end of year final exam [LO1 and LO7].

Consistent with University policy, formative and summative feedback will be provided at various points throughout the teaching year.


Where possible, the most current version of reading materials is used during the delivery of this module.  Comprehensive reading lists are provided to students in their handbooks.  Reading Lists will be updated annually.


Core Text:
• Deitel, H. and Deitel, P., 2018, Java How to Program, 11th edition (or later). Pearson.

Other Texts:
• Horstmann, C., 2016, Big Java Late Objects, 2nd edition. John Wiley & Sons.
• Goodrich, M. and Tamassia, M., 2015, Data Structures and Algorithms in Java. 6th edition (or later). John Wiley & Sons.
• Lewis, J.,‎ DePasquale, P.,‎ Chase, J., 2016, Java Foundations: Introduction to Program Design and Data Structures. 4th edition, Pearson.

• The Computer Journal of the British Computer Society, ISSN 1460-2067 (Electronic); Publisher: Oxford : Oxford Journals, Oxford, UK : Oxford University Press.
• Oracle Java home page at:
• Netbeans’ Java EE & Java Web Learning Trail
• Safari Books Online
Electronic Databases (available from the University Library)
• ACM Digital Library
• IEEE Xplore/IET Digital Library
• Wiley Online Library