COMP47500 Advanced Data Structures in Java (O/L)

Academic Year 2022/2023

This module is suitable for students with experience in Java programming language and interested in the design and analysis of efficient algorithms and data structures. This module will emphasise on ways of storing data in a computer so that it can be used efficiently (a data structure). A well-designed data structure or algorithm allows a variety of critical operations to be performed using as little resource, both execution time and memory space, as possible. COMP47500 will cover Stacks, Queues, Deques, Priority Queues, associative memory structures (Dictionaries), linked structures (Graphs), text processing and representation, as well as the core algorithms that complement each structure. A range of implementation techniques are examined, with emphasis being given to the complexity of the various solutions and their applicability to different problem domains.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

On successful completion of this module the students will be able to:• Understand how to determine the amount of resources (such as time and storage) necessary to execute a particular algorithm (algorithm analysis);• Understand the object-oriented JAVA programming constructs needed to encode an algorithm;• Understand the structure, nature and use of fundamental data structures including, Arrays, Linked Lists, Stacks, Queues, Trees, Dictionaries, Graphs etc.;• Understand the object-oriented programming constructs needed to encode a data structure and its access algorithms;• Design programs using these constructs to solve large problems;• Successfully write, compile, debug and run programs using these constructs;• Analyse problems to determine the most appropriate data structures and algorithms that may be applicable to them.

Indicative Module Content:

- Running Time Analysis
- Sorting and Searching
- Arrays, Lists, Vectors
- Stacks, Queues, Deques, Priority Queues
- Trees, Dictionaries, Maps, Hashtables, Graphs

Student Effort Hours: 
Student Effort Type Hours
Specified Learning Activities


Autonomous Student Learning








Approaches to Teaching and Learning:
active/task-based learning;
reflective learning;
problem-based learning 
Requirements, Exclusions and Recommendations
Learning Recommendations:

In order to take this module you must have experience in Programming in Java

Module Requisites and Incompatibles
Additional Information:
MSc Conversion students must have completed COMP30820 - Java Programming (Conv) MSc NL students must have completed COMP20300 - Java Programming (Mixed Delivery) or proof of prior learning in Java.

Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Continuous Assessment: Advanced Data Structures portfolio of assignments during the semester Varies over the Trimester n/a Graded No


Carry forward of passed components
Remediation Type Remediation Timing
In-Module Resit Prior to relevant Programme Exam Board
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Feedback individually to students, post-assessment
• Online automated feedback

How will my Feedback be Delivered?

Feedback will be provided through the VLE post assessment and through discussions during the project activities.

"Data Structures and Algorithms in Java", Sixth edition, Michael T Goodrich (author), Roberto Tamassia (author), Michael H Goldwasser (author) - International Student Version

"Java Illuminated - An Active Learning Approach", Fifth Edition, Julie Anderson (author), Hervé Franceschi (author)
Name Role
Dr Levent Gorgu Lecturer / Co-Lecturer
Ms Aikaterini Kanta Lecturer / Co-Lecturer
Ms Katerina Kanta Lecturer / Co-Lecturer
Mr Jason Walsh Tutor
Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Lecture Offering 1 Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 Fri 12:00 - 13:50
Lecture Offering 1 Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 Tues 12:00 - 13:50