COMP30500 Java-based Data Structures (O/L)

Academic Year 2015/2016

This module is suitable for students interested in Java programming language and the design and analysis of efficient algorithms and data structures. In part A of this module, the students will learn how to analyse, design and implement a finite set of well-defined instructions for accomplishing some task (an algorithm). Students will be introduced to an object-oriented paradigm as the framework of choice for building robust and reusable algorithms. Students need to pass with at least 70% to proceed to Part B of this module. Part B will emphasize introductory 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. Part B 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 completion of this module students should 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.

Student Effort Hours: 
Student Effort Type Hours
Specified Learning Activities

86

Autonomous Student Learning

140

Online Learning

24

Total

250

 
Requirements, Exclusions and Recommendations
Learning Recommendations:

Programming in Java



 
Description % of Final Grade Timing
Examination: Final Exam

50

2 hour End of Trimester Exam
Project: Project Assignment (Part B)

10

Unspecified
Continuous Assessment: Assignment 3: Part B

10

Unspecified
Continuous Assessment: Assignment 4: Part B

10

Unspecified
Continuous Assessment: Assignment 1: Part A

10

Unspecified
Continuous Assessment: Assignment 2: Part B

10

Unspecified

Compensation

This module is not passable by compensation

Resit Opportunities

No Resit

Remediation

If you fail this module you must repeat all the components