This course provides an applied introduction to the principles and practice of the engineering of software artifacts. Topics include: processes for...
Elements of mathematical logic with computing applications. Formal proof systems for propositional and predicate logic. Interpretations, validity, and...
Introduction to design and analysis of algorithms. Control structures: recursion, backtracking. Data structures: multidimensional arrays, defined data...
Introduction to techniques for specifying the behaviour of software, with applications of these techniques to design, verification and construction of...
Introduction to scientific computing: floating point arithmetic, algorithm design, error analysis, ill-conditioning. Zero-finding. Linear equations....
Introduction to management of small and medium-scale software projects. Advanced programming methodology using the programming language C++. Includes...
Abstractions and patterns of interactions and relationships among modules. Design recovery; relationship of architecture to requirements and testing....
Layered operating systems for conventional shared memory computers: Concurrent processes, Synchronization and communication, Concurrent algorithms,...
Concepts of computer-integrated surgery systems and underlying techniques such as medical-image computing, robotics, and virtual reality, learned...
Data models: relational, entity-relationship. Relational query languages: relational algebra and SQL. Relational database design. Application...
Supervised and unsupervised learning, neural networks, support-vector machines, decision trees, metric-based clustering, distribution-based...
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...
Topics include the presentation and storage of data, implementation concerns, and the integration of databases with other areas of computer science....
Operating systems for distributed architectures: distributed system characteristics, process synchronization and communication. Basic distributed...
Introduction to neural and genetic computing. Topics include associative memory systems, neural optimization strategies, supervised and unsupervised...
An introduction to computer graphics, including a review of current hardware; modelling and transformations in two and three dimensions; visual...
Fundamental concepts and applications in image processing and computer vision. Topics include image acquisition, convolution. Discrete Fourier...
Introduction to the systematic construction of a compiler: grammars and languages, scanners, top-down and bottom-up parsing, runtime organization,...
Introduction to computational approaches to the problems in molecular biology. This will include the study of areas such as techniques and algorithms...