Department of Systems and Computer Engineering Mackenzie Building 4462 Telephone: 788-5740 Fax: 788-5727 The Department Chair of the Department: S.A. Mahmoud Associate Chair for Graduate Studies: J.W. Chinneck The Department of Systems and Computer Engineering offers programs of study and research leading to the M.Eng. and Ph.D. degrees in Electrical Engineering. These degrees are offered through the Ottawa-Carleton Institute for Electrical Engineering which is jointly administered by the Department of Systems and Computer Engineering and the Department of Electronics at Carleton University, and the Department of Electrical Engineering at the University of Ottawa. For further information, including admission and program requirements, see page 126. A program leading to the M.Sc. degree in Information and Systems Science is offered in cooperation with the Department of Mathematics and Statistics and the School of Computer Science at Carleton University. This program is more fully described on page 200 of this calendar. In addition certain faculty members in the Department are members of the Ottawa-Carleton Institute for Computer Science, which offers a program leading to the M.C.S. degree. This program is more fully described on page 181 of this calendar. The Departmental program centres upon the analysis and design of engineering systems which process and transmit information and have computers as components. Within this context, several interrelated areas of study receive major attention: Communication Systems * Computer Communications * Broadband ISDN Networks * Portable and Mobile Communication Systems - Signal Processing - Network Management - Software Methods Computer Systems * CAD/CASE of Software and Systems * Real-Time and Distributed Computing * Software Engineering * Data Base Systems * Knowledge-Based Systems * Image Processing Systems * Signal Processing Systems * Robotics Systems Analysis Techniques * Modelling and Simulation * Performance Analysis * Optimization An integrated course program provides students with the fundamental material and allows specialization in one or more of the above areas as desired. Work undertaken includes both theoretical studies and the related problems of practicable realizations. Computing resources play a central role in the research and teaching activities of the Department. The facilities available to students include over 70 SUN workstations, several high performance IBM or HP workstations, and a Dy-4 multiprocessor system, all connected on an Ethernet LAN. There are also numerous networked PCs, some MACs, and specially configured PCs. Laboratories for communications, signal and image processing research include numerous specialized device and test equipment. There are also several robots for robotics and control research. The Department is a major partner in the Ottawa-Carleton Centre for Communications Research (OCCCR), which is a multidisciplinary interdepartmental research group comprising faculty members, full-time researchers, graduate students, and support staff from both Carleton University and the University of Ottawa. It is part of the Centre for Excellence TRIO (Telecommunications Research Institute of Ontario) and CITR (Canadian Institute for Telecommunications Research). Current research areas of the centres with major participation from the Department are: broadband ISDN access networks, transmission methods for ISDN, methods for telecommunications software, mobile and portable wireless networks, VLSI in communications and network management using artificial intelligence methods, and wireless indoor digital communications. Full advantage is taken within the Department of the technology-oriented government/industry/ university complex in the Ottawa area. Cooperative projects exist with the Department of Communications, Communications Research Centre, NRC, Bell Northern Research Laboratories, Gandalf, Bell Canada and Department of National Defence. Graduate Courses* * Engineering 94.501W1 (CSI5120) Simulation and Modelling Simulation as a problem-solving tool. Mathematical foundations: random variate generation, parameter estimation, confidence interval, simulation algorithm. Simulation languages: SLAM, SIMULA, SIMSCRIPT. Examples: computers and protocols, urban traffic, harbours and airport capacity planning, manufacturing capacity planning, inventory systems. * Engineering 94.503F1 (ELG6103I) Discrete Stochastic Models Models for software and computer systems, and communications networks, with discrete states, instantaneous transitions and stochastic behaviour. Communicating finite state machines and Petri Nets. Stochastic behaviour leading to Markovian models (including stochastic Petri Nets). Review of concepts of probability, and theory of Markov Chains with discrete and continuous parameters. First-passage problems. Birth-death processes and basic queuing theory. Numerical methods for Markov Models. C.M. Woodside. * Engineering 94.504F1 (ADM6371) Mathematical Programing for Engineering Applications An introduction to algorithms used for the optimization of complex systems. Topics include linear programing (with duality and post-optimality analysis), nonlinear programing, dynamic programing integer and mixed-integer programing and combinatorial search methods, and network flow programing. Emphasis is on practical algorithms for engineering applications, e.g. VLSI design, message routing, etc. J.W. Chinneck. * Engineering 94.505W1 (CSI5150) Optimization Theory and Methods A second-level course in optimization theory and computer-oriented optimization methods. Lagrange's method of undetermined multipliers. Unconstrained optimization: steepest-descent, Newton-Raphson, conjugate gradient, variable metric, and Powell-Zangwill methods. Nonlinear programing: Kuhn-Tucker conditions, saddle point theory and dual problems, computational techniques. Application to nonlinear engineering system identification, network synthesis problems, filter design. Function space techniques and introduction to optimal control. Bernard Pagurek. * Engineering 94.506W1 (ELG6106I) Design of Real-Time and Distributed Systems Real-time and distributed systems: characteristics, issues. Requirements and architectures will be represented using timethreads. Decomposing and recomposing timethreads and architectures. Analyzing designs for robustness, modularity, extensibility, adaptability. Equivalent more detailed formal representation and analysis using LOTOS and Petri Nets. Adding performance information and analyzing performance, e.g. with timed Petri Nets. Principles for performance engineering. Implementation issues. Tools. Major course project. Prerequisites: Engineering 94.333 and 94.485 or similar experience. R.J.A. Buhr. * Engineering 94/95.507F1 (CSI5307) Expert Systems This course will include: survey of some landmark expert systems; types of architecture and knowledge representation; inferencing techniques; approximate reasoning; truth maintenance; explanation facilities; knowledge acquisition. A project to implement a small expert system will be assigned. Prerequisite: Computer Science 95.407 or 95.501 or permission of the Department. W.R. Lalonde. * Engineering 94.511W1 (ELG6111) Computer System Design for Performance Methods for deriving quantitative design para-meters within an architectural and configuration framework to meet design requirements on performance parameters, such as the throughput capability or response time of a system. Applications to embedded systems (signal processors, switches, etc.), multi-user systems, tightly and loosely coupled distributed processors. Prerequisites: Engineering 94.553 or ELG5119 and 94.574 or equivalent, and a course in computer architecture. C.M. Woodside. * Engineering 94.517W1 (ELG6117) Queuing Systems Stochastic processes: Markov chains, discrete birthdeath, etc. Queuing systems: M/G/1, G/M/m, M/M/m/k/n queues, etc. Priority queues. Networks of queues: local/global balance equations, product form solutions for open and closed networks. Mean value analysis, diffusion approximation, non-product form networks. Related models (e.g. Petri nets). Numerical solutions. Examples include throughput analysis from multiprocessors and computer-communication networks. Prerequisite: Engineering 94.553 or ELG5119 or the equivalent. Exclusion: Engineering 92.520(ELG5120). * Engineering 94.518W1 (ELG6118) Topics in Information Systems Students participate in a group project designing and developing an expert system of significant size in an organized manner. Specification of the system's aims, design in terms of knowledge representation, knowledge acquisition and knowledge use, prototyping, implementation and testing will all be covered in a mix of lectures, interactive tutorials and project assignments. Prerequisite: Engineering 94/95.507 or 94.583 or equivalent. * Engineering 94.519W1 (ELG6119) Teletraffic Engineering Congestion phenomena in telephone systems, and related telecommunications networks and systems, with an emphasis on the problems, notation, terminology, and typical switching systems and networks of the operating telephone companies. Analytical queuing models and applications to these systems. Prerequisite: Engineering 94.553 or ELG5119 or the equivalent. * Engineering 94.521F1 (ELG6121) Computer Communication Types of computer networks, performance criteria. OSI Layered Model with emphasis on transport, network and data-link layers. Examples of public networks. Routing and protocol efficiency. Queuing and analysis of networks. Local area networks, protocols and performance analysis of CSMA-CD, token passing and polling. Introduction to ISDN and broadband networks. Prerequisite: Undergraduate preparation in probability theory equivalent to 69.352. Exclusion: Engineering 92.567 (ELG5374). A.R. Kaye. * Engineering 94.527W1 (ELG6127) Distributed Processing Systems Methods for representing distributed systems such as precedence graphs, communicating state-machine models, and Petri nets. Analysis of distributed system behaviour, based on these models. Protocols. ISO protocol model: transport session, presentation and application levels. Design examples: interprocess communications, file transfer, factory automation. Resource management. Prerequisites: Engineering 94.521 or ELG5374; and 94.571 or the equivalent. Shikharesh Majumdar. * Engineering 94.531F1 (ELG6131) System Design with Ada Notations and methods for the design of real time and distributed systems in an object-oriented manner with particular focus on visual techniques and on temporal behaviour problems and solutions. Uses multitasking Ada as an example target implementation technology, but the notations and methods are presented in an Ada-independent manner and are of wider applicability than Ada. Teaches techniques oriented towards Computer Aided Design (CAD) of systems (CAD differs from CASE - Computer Aided Software Engineering in placing more emphasis on analysis of the design at the design level before implementation); aims to give insight into the state of the art in CAD and CASE tools. A principles course, rather than a programing or tool-use course. Prerequisite: Permission of the Department. (The course requires background of the kind given by the 94.202/94.303/94.333 course sequence in our undergraduate Computer Systems Engineering program; however, it is not the specifics of that particular course sequence that are prerequisites, but a level of readiness to deal with system design issues.) R.J.A. Buhr. * Engineering 94.535F1 (ELG6135) Representations, Methods and Tools for Concurrent Systems Selected representations and methods for concurrent systems that are supported by current and emerging CAD/CASE tools are studied, experimented with, and presented by students to the class. This is a colloquium course with most lectures consisting of student presentations/discussions, supplemented from time to time by talks from invited experts on topics of particular interest. In addition to in-class presentations, a final, written report is required from each student. The course is supported by a laboratory containing a selection of interesting tools (such as Statemate, Timebench, MLog, Teamwork, Adagen, a Lotos interpreter, and others). Prerequisite: Permission of the Department. Enrolment is limited by laboratory facilities and the colloquium nature of the course. R.J.A. Buhr. * Engineering 94.538F1 (ELG6138) Computer Architecture and Parallel Processing Introduction to parallel processing; parallel computer structures; memory and input/output subsystems; pipelining and vector processing; array processing; data flow and systolic computations; interconnection networks; software and other design fundamentals; examples. Prerequisite: Engineering 94.457 or equivalent. * Engineering 94.541F1 (ELG6141) Adaptive Control Analysis of nonlinear dynamic systems with emphasis on stability. Lyapunov and hyperstability theories. Introduction to system identification. The least squares and recursive least squares approaches. Model reference adaptive control. The self-tuning regulator. Issues in parameter convergence and stability. Robustness properties of adaptive systems. Case studies will include applications to process control and robotics. Students will be required to prepare a critical review of the current literature. Prerequisite: Engineering 94.552 or equivalent. H.M. Schwartz. * Engineering 94.542F1 (ELG6142) Advanced Dynamics With Applications to Robotics Kinematics of rigid bodies and robot manipulators. Use of the Denavit-Hartenberg principle. Forward and inverse kinematics of manipulators. Momentum and energy principles. Lagrange equations and Hamilton's principle. Dynamics of lumped parameter and continuous systems. Natural modes and natural frequencies. Forced vibrations. General dynamics of robot manipulators. H.M. Schwartz. * Engineering 94.552F1 (ELG6152) Advanced Linear Systems Review of basic linear systems: input-output relations, superposition, impulse response, convolution. Transform methods in systems analysis. Fourier and Laplace transforms. Time-frequency relationships. Discrete time systems, the Z transform. State space representation of the systems: basic concepts, canonical realizations. Observability and controllability of continuous and discrete time realization. Solution of state equations and modal decomposition. Linear state variable feedback and modal controllability. Abstract approach to state space realization methods. Geometric interpretation of similarity transformations. H.M. Schwartz. * Engineering 94.553F1, W1 (ELG6153) Stochastic Processes Basic concepts of randomness, as applied to communications, signal processing, and queuing systems; probability theory, random variables, stochastic processes; random signals in linear systems; introduction to decision and estimation; Markov chains and elements of queuing theory. Exclusion: Engineering 92.519(ELG5119). A.R. Kaye. * Engineering 94.554F1 (ELG6154) Principles of Digital Communication Elements of communication theory and information theory applied to digital communications systems. Characterization of noise and channel models. Efficient modulation and coding for reliable transmission. Spread spectrum and line coding techniques. Prerequisite: Engineering 94.553 or ELG5119 or the equivalent (may be taken concurrently). Exclusion: Engineering 92.556(ELG5375). M.S. El-Tanany. * Engineering 94.557F1 (ELG6157) Fundamentals of Discrete Systems Introduction to the theory and applications of discrete mathematics to the analysis and design of computer algorithms and data communication systems. Group theory and application to finite state machines; algebras and combinatorial logic design; homomorphic maps and application to group codes; rings and fields and their application to cyclic codes. Graph and tree structures, directed graphs; classes of polynomial and complete and incomplete problems with graph representation. S.A. Mahmoud. * Engineering 94.558F1 (ELG6158) Digital Systems Architecture New architectural concepts in the design of computer systems are introduced. Discussions include system building blocks (arithmetic units, central processing units, control units, input/output and memory devices) and methods to achieve speed-up (instruction look-ahead, pipe-lining, memory interleaving, associative memory, SIMD and MIMD multiprocessing). Examples of current computer systems are used for discussions. Prerequisite: Engineering 94.457 or the equivalent. * Engineering 94.560W1 (ELG6160) Adaptive Signal Processing Theory and techniques of adaptive filtering, including gradient and LMS methods; adaptive transversal and lattice filters; recursive least squares; fast recursive least squares; convergence and tracking performance; systolic array techniques. Applications, such as adaptive prediction, channel equalization; echo cancellation; speech coding; antenna beamforming; system identification in control systems; spectral estimation; neural networks. Students will do extensive reading of current literature and present a seminar. Prerequisites: Engineering 94.553 or ELG5119 or equivalent; Engineering 94.562 or ELG5376 or equivalent. D.D. Falconer and T.A. Aboulnasr. * Engineering 94.561W1 (ELG6161) Neural Signal Processing Basic concepts in decision theory and multidimensional function approximation. The least squares adaptive algorithm. The generalized delta rule. Multi-layer perceptrons and the back-propagation algorithm. Approximation of non-linear functions. Radial basis functions. Self-organized maps. Applications of neural signal processing to control, communications and pattern recognition. Software and hardware implementation of neural networks. Prerequisite: Engineering 94.553 or ELG6153 or equivalent. May be taken concurrently with 94.553. H.M. Hafez. * Engineering 94.562F1 (ELG6162) Digital Signal Processing Signal representations, Z transform and difference equations. Theory, design of FIR, IIR filters. Discrete Fourier transform: properties, implementation via fast algorithms (radix-m FFT, PFA, WFTA). Chirp-z transform. Cepstral analysis. Decimation/interpolation. Random signal analysis: estimators, averaging, correlation, windowing, Input/output and quantization effects. Application overview: Analog-digital converters (linear, companded), digital audio (CD, DAT), speech analysis and synthesis. Programable DSP microcomputers: contemporary commercial architectures, application to implementation of DSP algorithms. Case studies: Linear predictive coding of speech (LPC), radix/4 FFT, spectograph. Prerequisite: Engineering 94.553 or ELG5119 or the equivalent (may be taken concurrently). Exclusion: Engineering 92.557 (ELG5376) L.R. Morris. * Engineering 94.563W1 (ELG6163) Digital Signal Processing Microprocessors, Software and Applications Digital signal processing (DSP) algorithm structure. Architectural features of general purpose, RISC, and DSP computers. Data representation, addressing, and arithmetic processing. Contemporary single (TMS320C25), dual (DSP56000), and multiple (TM320C30) accumulator/operand commercial architectures. Algorithm/software/hardware architecture interaction. Programing techniques and program examples. Software development cycle. Hardware and software development tools. Program activity analysis techniques. Case studies: linear predictive vocoder, DFT, Echo cancellation. Interfacing and input/output. Codecs. Micro-programable bitslice processors, application specific chips (ASIC): Pro's/con's versus programable DPS processors. Prerequisite: Engineering 94.562 or ELG5376 or the equivalent. L.R. Morris. * Engineering 94.564W1 (ELG6164) Advanced Topics in Digital Signal Processing A course dealing with recent and advanced topics in the field of digital signal processing and its related areas. Students are expected to present one or more seminars. Prerequisites: Engineering 94.562 or ELG5376 or the equivalent and permission of the Department. L.R. Morris and R.A. Goubran. * Engineering 94.565W1 (ELG6165) Advanced Digital Communication Digital signalling over channels with intersymbol interference (ISI) and additive Gaussian noise. Error probability analysis. Fading multipath channels as arise in terrestrial Line-of-Sight (LOS) and mobile/ portable communications, diversity concepts: modelling and error probability performance evaluation. Synchronization in digital communications. Spread spectrum in digital transmission over multipath fading channels. Prerequisite: Engineering 94.554 or ELG5375 or the equivalent. Exclusion: Engineering 92.574(ELG5180) D.D. Falconer. * Engineering 94.566W1 (ELG6166) Introduction to Mobile Communications Signal strength prediction techniques: propagation models and statistical coverage. Mobile radio channel characterization: statistical characterization of mobile radio fading channel in indoor and outdoor environment, delay spread models and coherence bandwidth, models for digital transmission. Co-channel and adjacent channel interference: interference models, and outage probabilities. Modulation and transmission systems: signal to noise calculations in fading environment, performance of digital systems in fading. Signal processing in mobile radio: diversity and its applications in MRS, impact of diversity on baseband interference, noise and random FM. Adaptive techniques to combat interference and fading: adaptive equalization and adaptive arrays. Introduction to mobile radio systems. Co-requisite: Can be taken concurrently with Engineering 94.553 and 94.554. A.U. Sheikh. * Engineering 94.567F1 (ELG6167) Source Coding and Data Compression Discrete and continuous sources: the rate distortion functions. Discrete source coding: Huffman coding, run length encoding. Continuous source coding: waveform construction coding; PCM, DPCM, delta modulation; speech compression by parameter extraction; predictive encoding; image coding by transformation and block quantization. Fourier and Walsh transform coding. Compression by tree coding. Applications to telecommunication signals and storage; speech, television, facsimile. Prerequisite: Engineering 94.553 or ELG5119 or the equivalent. M.S. El-Tanany. * Engineering 94.568W1 (ELG6168) Wireless Communication Systems Engineering Engineering aspect of mobile radio systems: multi-user environment and transmission systems, traffic engineering and system capacity, concept of frequency reuse and channel allocation algorithms. Public and private mobile radio systems and networks: cellular mobil systems, high capacity analog and digital systems, signalling and protocol issues, vehicle location and handover techniques. Cellular systems of the world. Mobile satellite systems: multibeam geostationary and low orbit satellite systems, on-board processing and switching. Personal communications: microcellular architecture, PCN services, bandwidth on demand concept, intelligent network, universal base station and total system integration. Implementation of mobility in network protocols. Indoor high speed data networks: radio LANs and MANs and their interconnection. Co-requisite: Can be taken concurrently with Engineering 94.553 and 94.554. A.U. Sheikh. * Engineering 94.569W1 (ELG6169) Digital Television Colour television theory: standard systems; NTSC, PAL, SECAM; composite and component signals. Sampling and quantization of television signals. Bandwidth compression: decimation; predictive, transform and hybrid coding. Digital cameras, studios, switching, special effects, recording, transmission and receivers. Evaluation methods. D.C. Coll. * Engineering 94.570W1 (ELG6170) Spread Spectrum Systems Fundamentals: jamming, energy allocations, system configurations, energy gain, applications such as antijam, low probability of intercept, multiple access, time of arrival. Antijam systems: parameters, jammer waveforms, uncoded and coded direct sequence BPSK, uncoded and coded binary FSK, interleaver/ hop tradeoff, coder BER bounds, cutoff rates, DS-BPSK and pulse jamming bounds, FH-MFSK and partial band jamming bounds, diversity for FH-MFSK, concatenation of codes. Pseudo-noise generators: statistical properties of M sequences, Galois field connections, nonlinear feed forward logic, DS and FH multiple access design. Code synchronizers: single dwell and multiple dwell serial PN acquisition for DS, delay locked loop and Tau-Dither loop PN tracking for DS, time and frequency synchronization for FH. T.A. Gulliver. * Engineering 94.571F1 (CSI5117) Operating System Methods for Real-Time Applications Principles and methods for operating system design with application to real-time, embedded systems. Concurrent programing: mechanisms and languages; design approaches and issues; run-time support (kernel); I/O handling. Methods for hard real-time applications. Methods for distributed systems. Programing assignments will be in a suitable programing language. Prerequisites: Engineering 94.333 or 94.574 or equivalent courses and/or experience. Programing experience in high level and assembly languages. * Engineering 94.573F1 (CSI5115) Integrated Database Systems Database definitions, objectives and applications, standard architectures, e.g. ANSI/SPARC architecture; database design process; data dictionary; the entity-relationship model. Network model; the relational approach, relational algebra and calculus, normal forms; hierarchical model. Design and integration issues in database machines, distributed database and knowledge-based systems. Prerequisite: Engineering 94.574 or the equivalent. * Engineering 94.574F1 (ELG6174) Elements of Computer Systems An overview of basic computer topics which some engineering students may not have covered in their undergraduate programs. Subjects covered include: concepts in computer architecture: 80X86 architecture, assembler, instruction types, addressing modes, memory organization, and debugging. Structures languages: scope rules, dynamic allocation of data, data types, control structures, subroutines. Data structures: stacks, queues, linked lists, binary trees. Multitasking operating system concepts: task interference busy waiting, TAS hardware, deadlock, task scheduling and synchronization, semaphores, producer/consumer problem, monitors. This course is designed for graduate students without extensive undergraduate preparation in computer engineering (or the equivalent experience). Students with the equivalent of a bachelor's degree in electrical or computer engineering, or computer science, would normally proceed directly to courses for which 94.574 is a prerequisite. Prerequisites: Programing experience in at least one high level language and some experience in assembly language programing. * Engineering 94.576F1 (ELG6176) Analytical Performance Models of Computer Systems Analytical modelling techniques for performance analysis of computing systems. Theoretical techniques covered include single and multiple class queuing network models, together with a treatment of computational techniques, approximations, and limitations. Applications include scheduling, memory management, peripheral devices, databases, multiprocessing, and distributed computing. Prerequisite: Engineering 94.553 or ELG5119 or the equivalent. C.M. Woodside. * Engineering 94.577W1 (ELG6177) Teleprocessing Software Design Review of teleprocessing applications, functions and devices. The session, presentation and application layers of the Open System Interconnection Model. Examples: Electronic Mail systems and Distributed Data Bases. Teleprocessing Software Design using high level procedural languages: Concurrent Pascal and Ada. SNA protocols and systems: layering concepts in SNA; distribution of teleprocessing functions and software components. Relationship between SNR and OSI models. Examples of Distributed Teleprocessing Networks and applications in SNA. Prerequisites: Engineering 94.521 or ELG5374 and 94.574 or the equivalents. S.A. Mahmoud. * Engineering 94.579F1, W1 (CSI5112) Advanced Topics in Software Engineering A course dealing with recent and advanced topics in the field of software engineering and related areas. Primary references are recent publications in the field. Students registered in the course are expected to present one or more lectures or seminars on assigned topics. Prerequisite: Permission of the Department. * Engineering 94.581F1 (ELG6181) Advanced Topics in Computer Communications Recent and advanced topics in computer-communication networks intended as a preparation for research. Students are expected to contribute to seminars or present lectures on selected topics. Prerequisites: Engineering 94.521 or ELG5374 or equivalent and permission of the Department. A.R. Kaye. * Engineering 94.582F1 (ELG6182) Introduction to Information and System Science An introduction to the process of applying computers in problem solving. Emphasis is placed on the design and analysis of efficient computer algorithms for large, complex problems. Applications in a number of areas are presented: data manipulation, databases, computer networks, queuing systems, optimization. (Also offered as Mathematics 70.582, Computer Science 95.582 and Information and Systems Science 93.582) * Engineering 94.583W1 (ELG6183) Logic Programing Review of relational databases, first order predicate calculus, semantics of first order models, deductive querying. Proof theory, unification and resolution strategies. Introduction to Prolog, and/or parallelism and Concurrent Prolog. Applications in knowledge representation and rule based expert systems. Bernard Pagurek. * Engineering 94.584F1, W1 (ELG6184) Advanced Topics in Communications Systems Recent and advanced topics in communications systems. Students registered in the course are expected to present one or more lectures or seminars on assigned topics. Prerequisite: Permission of the Department. * Engineering 94.585W1 (ELG6185) Logic Programing: Techniques and Applications Advanced programing techniques for selected applications of logic programing: language translators, interpreters, expert systems. Prolog language: review of basic logic programing techniques, language features, date representation. Program design; design principles, graphics design notation, paradigms, and methodology. Advanced techniques include: searching, grammars, meta-interpreters, incomplete structures. Implementation of Prolog. Each student is expected to complete a substantial project as part of the course requirements. Prerequisite: Engineering 94.583 or the equivalent. (Students are expected to be familiar with Edinburgh-style Prolog). G.M. Karam. * Engineering 94.586F1 (ELG6186) Object Oriented Design of Real-Time and Distributed Systems Conceptual views of OO and RTD software at different scales of resolution. Principles of software architectures: "wired" and "wireless" architectures; factored architectures; contracts, protocols, threads; concurrency and real-time issues; visualization; notations; relation to OO and RTD domains. Threaded OO design process with examples. Implications for designing evolving systems. Relationship to OO and RTD implementation technologies, to textbook OO and RTD notations, and to current commercial and emerging tools. Prerequisite: Permission of the Department. The course expects a familiarity with real-time systems and design issues typified by the 94.202/94.303/ 94.333 undergraduate courses. Some familiarity with OO concepts and at least one OO programing language is highly desirable but not required. R.J.A. Buhr. * Engineering 94.587F1, W1, S1 (ELG6187) Advanced Topics in Computer Systems Recent and advanced topics in computer systems. The course will generally focus on one or more of the following areas: specification, design, implementation, and modelling/analysis. Students may be expected to contribute to lectures or seminars on selected topics. Prerequisite: Permission of the Department. * Engineering 94.588W1 (ELG6188) Communications Network Management Overview of network management issues, WANs and LANs. The Internet and ISO models of network management. Network management protocols SNMP, CMIP, CMOT, etc. Events, Managed Objects, and MIBs. Fault management techniques, models and algorithms. Current diagnostic theory and its limitations. AI and machine learning approaches. Monitoring and fault management tools, examples, Recent products. Prerequisite: Engineering 94.521 or equivalent. Bernard Pagurek. * Engineering 94.590F1, W1, S1 Systems Engineering Project Students pursuing the non-thesis M.Eng. program will conduct an engineering study, analysis, and/or design project under the supervision of a faculty member. Results will be given in the form of a typewritten report and presented at a departmental seminar. * Engineering 94.591F2, W2, S2 Systems Engineering Project Project similar to Engineering 94.590, but either of greater scope or longer duration. Results will be given as a typewritten report and presented in a seminar. * Engineering 94.593F2, W2, S2 Cooperative Program Project A one-term course, carrying a full-course credit, for students pursuing the cooperative M.Eng. program. An engineering study, analysis, and/or design project under the supervision of a faculty member. Results will be given in the form of a written report and presented orally. This course may be repeated for credit. * Engineering 70/94/95.595F4, W4, S4 M.C.S. Thesis * Engineering 94.596F1, W1, S1 (ELG6196) Directed Studies * Engineering 70/93/94/95.598F3, W3, S3 M.Sc. Thesis in Information and Systems Science * Engineering 94.599F4, W4, S4 M.Eng. Thesis * Engineering 94.699F, W, S Ph.D. Thesis