Software architecture concepts; architectural styles; design patterns, components, libraries, configurations; modelling languages; software...
Use of queuing models and simulation to predict computer system performance and find bottlenecks in a system. Types of models, distributions. Markov...
Design of multi-computer systems for computation-intensive applications and high-reliability applications, including clustering, array processing and...
Design of user interfaces.
Modelling and solutions for engineering optimization problems using Linear and Integer Programming, including transportation and assignment problems,...
Lexical analysis, syntax analysis, type checking; syntax-directed translation, attribute grammars; compiler structure; implications of computer...
Recursive and primitive recursive functions, computability, decidability and undecidability, Church-Turing Thesis. Three lectures; second term ...
Fundamental algorithms and duality concepts of continuous optimization. Motivation, applicability, information requirements and computational cost of...
Discrete-time signals and systems, digital filter design, photons to pixels, linear filtering, edge-detection, non-linear filtering, multi-scale...
World wide web as networks: protocols, clients/servers and social issues; programming systems: markups, scripts, styles; platform technologies; WWW...
Computer arithmetic, stability, sensitivity.
Directed readings in an area of computer science of interest to the student and the instructor. Prerequisite(s): Permission of the Chair of the...
Students, in teams of two to four students, undertake a substantial project in an area of computer science by performing each step of the software...