Data models: relational, entity-relationship. Relational query languages: relational algebra and
Supervised and unsupervised learning, neural networks, support-vector machines, decision trees, metric-based clustering, distribution-based...
Combinational circuits; sequential circuits; digital systems design; micro-programming; bus structures; data communications; interface design;...
An introduction to the basic principles and tools of artificial intelligence. Problem solving methods and knowledge representation techniques. ...
Principles of design, analysis and implementation of efficient algorithms. Case studies from a variety of areas illustrate divide and conquer methods,...
Mathematical methods for describing software behaviour and structure. Topics include (but are not limited to) the following: Requirements...
An integrated approach to discovering and documenting software requirements. Identification of stakeholders; customer, operator, analyst, and...
Advanced user-interface styles such as eye-tracking input, digital desks, wearable computing, ubiquitous and context-aware computing, and tangible...
Design and implementation of real-time embedded applications. Specifying timing properties: formal and semi-formal methods; soft real-time versus hard...
Topics include the presentation and storage of data, implementation concerns, and the integration of databases with other areas of computer science. ...
Distributed systems goals, characteristics, and architectures. Processes: models, inter-process communication and coordination. Name services....
Fundamental concepts in the design and implementation of computer communication networks, protocols, and applications.
Analytic and empirical evaluation of the performance of software systems. Performance modeling. Experimental design and statistical techniques for...
Introduction to neural and genetic computing. Topics include associative memory systems, neural optimization strategies, supervised and unsupervised...
Investigation of selected areas of artificial intelligence research. Possible topics include natural language understanding, computational perception,...
Introduction to computer graphics, including a review of current hardware; modelling and transformations in two and three dimensions; visual realism:...
Introduction to fundamental concepts and applications in image processing and computer vision. Topics include image acquisition, convolution, Discrete...
Introduction to the systematic construction of a compiler: grammars and languages, scanners, top-down and bottom-up parsing, runtime organization,...
Turing machines and other models of computability such as
Syntax and semantics. Classification of programming languages. The language of while programs. The typed lambda calculus. Recursive definitions and...