Pre-requisite: COMP3200 Introduction to Object-Oriented Programming
COMP3220 Foundations of Computing
OverviewFundamentals: Pseudocode; Primitive and object types; Multi-dimensional arrays; Resizing arrays; Loops; conditionals and recursion
Data structures and algorithm design: Dynamic data structures, such as linked lists, trees, maps, heaps, bags, queues (priority queues) and stacks (LIFO/FIFO); Sorting and searching algorithms; Graphs and graph algorithms (depth, breadth-first search and shortest path).
Total contact hours: 32
Private study hours: 118
Total study hours: 150
Method of assessment
Main assessment methods
Data structures assignment – 25%
In-class test – 25%
2-hour unseen written examination – 50%
Algorithms. Robert Sedgewick and Kevin Wayne. Addison-Wesley, 4th Edition, April 2011.
Data Structures and Algorithms in Java. Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser. John Wiley & Sons, 6th Edition, August 2014.
Java Structures. Duane Bailey. McGraw Hill, December 1997.
The art of computer programming. Donald E. Knuth. Addison-Wesley, 3rd Edition, July 1997.
Introduction to algorithms. T. Cormen, C. Leiserson, R. Rivest and C. Stein. MIT Press, 3rd Edition, August 2009.
Read and write algorithms in pseudocode;
Implement and use abstract data structures;
Use known algorithms to solve programming problems;
Appreciate the impact on memory usage and computation speed to make informed decisions about the most appropriate data structures and algorithms to use when designing software;