Course overview
The aim of this course is to develop skills in selecting and implementing appropriate data structures and algorithms to develop software to solve problems. The aim of this course is topics covered in this course include: the programming environment; integrated development environments, commenting and the JavaDoc tool; the Java API; inheritance; interfaces and abstract classes; polymorphism; use of Inheritance in advanced data structures; exceptions and exception handling; fundamental algorithms (searching, sorting, hash tables, binary search trees, representing graphs, graph traversals, shortest path, transitive closure, minimum spanning tree, topological sorting, simple numerical algorithms, string and pattern matching); advanced file IO: NIO, object serialisation.
Course learning outcomes
- Demonstrate the capability to evaluate algorithms, to select from a range of options, to provide justification for the selection, and to implement the algorithm in a programming context.
- Apply strategies (problem-solving techniques) to conceptualise problems, and formulate a solution, including mapping the solution to classes within the Java programming language.
- Debug and fix code defects.
- Communicate appropriately with professional colleagues through source code documentation.