This module gives the learner a grounding in the Java programming language and analysis and design of computer algorithms in a variety of Computer Engineering applications, in particular those underpinning the operation of database management systems.
Introduction to Java
A short introduction to the Java programming language, building on the learner's prior knowledge of object-oriented languages. I/O. Computation. Classes and objects. Inheritance, encapsulation, polymorphism. Concurrency and threads.
Algorithm Analysis
Mathematical background; running time calculations; testing and interpretation
Abstract data types
Lists, stacks, queues, trees, hash tables. Analysis and use of these ADTs
Sorting and searching
Basic sorting techniques, e.g. Insertion sort, selection sort; Advanced techniques, e.g. shellsort; heapsort; quicksort
Algorithm Design Techniques
Greedy algorithms; divide and conquer
Introduction to Java
A short introduction to the Java programming language, building on the learner's prior knowledge of object-oriented languages. I/O. Computation. Classes and objects. Inheritance, encapsulation, polymorphism. Concurrency and threads.
Algorithm Analysis
Mathematical background; running time calculations; testing and interpretation
Abstract data types
Lists, stacks, queues, trees, hash tables. Analysis and use of these ADTs
Sorting and searching
Basic sorting techniques, e.g. Insertion sort, selection sort; Advanced techniques, e.g. shellsort; heapsort; quicksort
Algorithm Design Techniques
Greedy algorithms; divide and conquer
This module is delivered through a combination of face-to-face lectures, emphasizing interactive problem-solving, with lab-based programming drills and assignments to analyze and compare algorithms' performance, and combine and develop them to solve real-world problems.
Module Content & Assessment | |
---|---|
Assessment Breakdown | % |
Formal Examination | 70 |
Other Assessment(s) | 30 |