Back to 2001-2002 Undergraduate Calendar2001-2002 Undergraduate Calendar  Back to ProgramsPrograms   
2001-2002 UNDERGRADUATE CALENDAR
Carleton University

Systems and Computer Engineering

(Engineering)


4456 Mackenzie Building
Telephone: 520-5740
Fax: 520-5727
WWW address: www.sce.carleton.ca

Academic Administration

Chair, Rafik Goubran

Teaching Staff

Professor Emeritis

D. C. Coll, M.Eng. (McGill), Ph.D. (Carleton), F.I.E.E.E., P.Eng.

Professors

J.W. Chinneck, B.A.Sc., M.A.Sc., Ph.D. (Waterloo) P.Eng. • M.S. El-Tanany, B.Sc., M.Sc. (Cairo), Ph.D. (Carleton) •D. D. Falconer, B.A.Sc. (Toronto), Ph.D. (Massachusetts Institute of Technology), P.Eng. • M. Frize, B.A.Sc. (Ottawa,) M.Phil., D.I.C. (Imperial), M.B.A. (Moncton), Doctorate (Erasmus) • D.Gerwin, B.S. (Carnegie-Mellon), M.S. (Case Western Reserve), Ph.D. (Carnegie-Mellon) • R.H.M. Hafez, B.Sc., M.Sc. (Alexandria), Ph.D. (Carleton) • S.A. Mahmoud, B.Sc. (Ain Shams), M.Eng., Ph.D. (Carleton), P.Eng • B. Pagurek, B.A.Sc., M.A.Sc., Ph.D. (Toronto), P.Eng. • • H.M. Schwartz, B.Eng. (McGill), M.Sc., Ph.D. (Massachusetts Institute of Technology), P.Eng. • C.M. Woodside, B.A.Sc. (Toronto), Ph.D. (Cambridge), P.Eng.

Associate Professors

A.J. Bailetti, B.S (Univ. National de Ingenieria), M.B.A., Ph.D. (Cincinnati) • L. Briand, B.Sc. (ParisVI), M.Sc. (Paris VI), Ph.D.(Paris XI)• J. R. Callahan, B.Sc. (Carleton), M.A., Ph.D. (Toronto) • R. A. Goubran, B.Sc., M.Sc. (Cairo), Ph.D. (Carleton), P.Eng. • I. Lambadaris, B.A. (Aristotelian), M.Sc. (Brown), Ph.D. (Maryland) • S. Majumdar, B. Eng. (Jadavpur), M.Eng. (Politecnico Di Torino), M.Sc., Ph.D. (Saskatchewan) • D. C. Petriu, Dipl. Eng. (Institute of Timisoara, Romania), Ph.D. (Carleton)

Assistant Professors

V. Aitken, B.Eng.(British Columbia), M.Eng. (Carleton), Ph.D. (Carleton), A.H. Banihashemi, B.Sc. (Isfahan), M.Sc. (Tehran), Ph.D. (Waterloo) • F. Danilo-Lemoine, B.Eng. (E.N.S.E.R.G), Ph.D. (McGill) • B. Esfandiari D.E.A. Informatique (Universite Montpellier II), Ph.D. Universite Montepellier II •C. Huang, B.Eng. M.Eng.(Tsinghua),Ph.D. (Carleton) • T. Kunz, Diplom-Wirtschaftsinformatiker, Dr.Ing. (Technical University of Darmstadt, Germany) Y. Labiche C.U.S.T, (Clermont-Ferrand) Ph.D. (LAAS-CNRS) • I.D. Marsland, B.Sc. (Queens), M.A.Sc., Ph.D. (British Columbia) M.Math (Waterloo), Ph.D. (Toronto) • T. Pearce, B.Eng., M.Eng. (Carleton), Ph.D. (Queen's) • D. Rossille, Eng. Dipl. (Universite de Rennes), M.Sc. (University of Wales), Ph.D. (Universite de Nice-Sophia Antipolis) • G.Wainer, M.Sc. (UBA), Ph.D. (FCEN/UBA)• H. Yanikomeroglu, B.Sc. (Middle East Technical University), M.A.Sc., Ph.D. (Toronto)

Instructor

D. L. Bailey, B.Eng., M.Eng. (Carleton) C. Schramm, B.Eng, M.Eng. (Carleton)

Adjunct Research Professors

S. Abu-Hakima, AmikaNow Corporation • A. Bieszczad, Bell Laboratories • R.J.A. BuhrR.J.C. Bultitude, Communications Research Centre • M.S. El-Hennawey, Nortel Networks • R.W. Impey, National Research Council • G.M. Karam, AT&T Bell Laboratories •R. MorrisS. Periyalwar, Nortel Networks •J. RoliaJ. RyanL. Strawczynski, Nortel Networks • C.R. Walker, Children's Hospital of Eastern Ontario •T. White, Texar Y. Wu, Communications Research Centre • G. Yee, Nortel Networks

 The Departments of Systems and Computer Engineering and Electronics offer courses in the Communications Engineering, Computer Systems Engineering, Electrical Engineering, Software Engineering and Engineering Physics programs.

Courses

Not all of the following courses are offered in a given year. For an up-to-date statement of course offerings for 2001-2002, please consult the Registration Instructions and Class Schedule booklet published in the summer.

Engineering 94.110*

Introduction to Object-Oriented Computing

A first course in problem solving in the context of object-oriented programming. Programming with Java: control structures, data abstraction, classes, class relationships, inheritance, polymorphism. Tracing and visualizing program execution. Testing and debugging. Program style, documentation, reliability.

Precludes additional credit for Engineering 91.166*.

Lectures three hours a week, laboratory one hour a week.

Engineering 94.111*

Object-Oriented Software Development

Principles and practice of three paradigms for developing object-oriented software: developing classes from scratch, reuse of existing classes, and incremental extension of frameworks. Design: identifying classes, responsibilities and collaborations. Introduction to UML for describing program designs.

Precludes additional credit for Engineering 94.204*.

Prerequisite: Engineering 94.110*.

Lectures three hours a week, laboratory one hour a week.

Engineering 94.112*

Foundations of Systems Programming

Problem solving and program design, emphasizing the computing abstractions underlying real-time system and operating system development. Procedural and data abstraction in C++. Recursion, pointers, linked lists.

Precludes additional credit for Engineering 91.166*.

Prerequisite: Engineering 94.110*.

Lectures three hours a week, laboratory one hour a week.

Engineering 94.201*

Foundations of Computer Systems

The relationships between high-level languages (including object-oriented languages), operating systems, and computer system architecture. Representation of data; basic computer organization: CPU and memory, instruction encoding and execution; assemblers and linkers; code generated by compilers; runtime support.

Prerequisite: Engineering 91.166* or 94.112*.

Lectures three hours a week, laboratory two hours a week.

Engineering 94.202*

Program Design and Construction

In-depth experience in the design and construction of computer programs involving data structures and different programming paradigms. Data structures, formal specification, abstract data types, graphs, recursion, finite state machines and object-oriented programming.

Precludes additional credit for Engineering 94.210* and 94.302.

Prerequisite: Engineering 91.166*.

Lectures three hours a week, laboratory two hours a week.

Engineering 94.203*

Introduction to Real-Time Systems

Principles of event-driven systems. Review of computer organization. Parallel and serial interfaces, programmable timer. Input/output methods: polling, interrupts. Real-time issues: concurrency, mutual exclusion, buffering. Introduction to concurrent processes, real-time kernels.

Precludes additional credit for Engineering 94.303* and 94.306*.

Prerequisite: Engineering 94.201*.

Lectures three hours a week, laboratory two hours a week.

Engineering 94.204*

Object-Oriented Software Development

Principles and practice of three software development paradigms with an object-oriented programming language: developing classes from scratch, reuse of existing classes, incremental extension of frameworks. Development of expertise in designing, implementing, and testing industrial-quality, reusable code.

Precludes additional credit for Engineering 94.111*.

Prerequisite: Engineering 94.202*.

Lectures three hours a week, laboratory two hours a week.

Engineering 94.210*

Algorithms and Data Structures

Specification and design of abstract data types and their implementation as Java classes: stacks, queues, trees, tables, graphs. ADTs as elements of program designs. Common and useful examples: simulation, parsing, and state machines. Introduction to the analysis of algorithms.

Precludes additional credit for Engineering 94.202*.

Prerequisites: Engineering 94.111* and 94.112*.

Lectures three hours a week, laboratory two hours a week.

Engineering 94.211*

Software Systems Development Laboratory

Development of expertise in designing, implementing, and testing industrial-quality, reusable code through individual and team projects. Applying and extending previously acquired knowledge of patterns, frameworks, UML, iterative and incremental development, Java and C++ to medium- and large-scale systems.

Prerequisite: Engineering 94.210* or 94.204*.

Lectures two hours a week, laboratory three hours a week.

Engineering 94.250*

Signals and Systems

Signals: energy and power signals, discrete-time and continuous. Linear systems and convolution. Fourier Transform; complex Fourier series; signal spectral properties and bandwidth. Laplace transform and transient analysis. Transfer functions, block diagrams. Baseband and passband signals, with applications to communications systems.

Precludes additional credit for Engineering 94.360*.

Prerequisite: Mathematics 69.204*.

Lectures three hours a week, problem analysis three hours alternate weeks.

Engineering 94.301*

Operating Systems and Data Bases

Operating systems and data bases treated from a common perspective. Management of CPU, processes, memory, files, and data. Implications of concurrency. Concurrent programming, including interprocess communication in distributed systems. Data models and query languages.

Precludes additional credit for Engineering 94.401*.

Prerequisites: Engineering 94.202* or 94.210*, and 94.203*.

Lectures three hours a week.

Engineering 94.306*

Computer Organization

Computer organization: processor, memory, input/output, instruction encoding and execution. Representation of data, assembly language programming. Devices: display, parallel and serial interfaces, programmable timer. Input/output methods: polling and interrupts.

Precludes additional credit for Engineering 94.201*, 94.203*, and 94.303*. May not be taken for credit by students in Computer Systems Engineering.

Prerequisites: Engineering 91.166* and 97.267*.

Lectures three hours a week, laboratory two hours a week.

Engineering 94.310*

Systems Analysis and Design

Creating requirements specifications prior to designing and implementing complex software systems. Software development lifecycles, role of requirements analysis; functional decomposition, dataflow modelling; database modelling, entity-relationship diagrams; finite state machines; object-oriented analysis; use cases, use case maps; project management; introduction to software design.

Prerequisite: Engineering 94.204* or 94.211*.

Lectures three hours a week.

Engineering 94.311*

Programming Languages

Principles underlying different kinds of programming languages (procedural, functional, logic programming) and their semantics. Overview of machinery needed for language support (compilers, interpreters and run-time systems).

Prerequisite: Engineering 94.211*.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.320*

Industrial Engineering

Techniques of operations research for decision-making in complex engineering systems. Linear programming, network models, PERT, integer programming, dynamic programming, queuing systems and inventory models. Problem-solving is emphasized.

Precludes additional credit for Business 42.230*, Economics 43.404*, or Mathematics 69.381*.

Prerequisites: Mathematics 69.104* and 69.114*, and Engineering 91.166* or 94.110*.

Lectures three hours a week.

Engineering 94.333*

Real-Time Concurrent Systems

Principles and practice of a systems engineering approach to the development of software for real time, concurrent, distributed systems. Designing to achieve concurrency, performance, and robustness, using visual notations. Converting designs into programs and viewing programs in design terms. Major team project.

Prerequisites: Engineering 94.203* and 94.301*.

Lectures two hours a week, laboratory three hours a week.

Engineering 94.351*

Communication Theory

Signals and linear systems; review of Fourier series; Fourier transforms; power spectral density and correlation; sampling theory; amplitude, frequency, and phase modulation systems; representation of narrow-band noise; noise in modulation systems; phase-locked loops; noise figure and temperature; cascaded systems.

Prerequisites: Mathematics 69.375* and Engineering 94.260* or 94.360*, and Mathematics 69.352* (to be taken concurrently).

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.352*

Introduction to Communications Software

Finite state machines and related models. Layered communication models and protocols. Modern programming tools such as C++ and JAVA in programming examples from LAN Logical Link Layer and Medium Access Control Layer Protocols, and the ISO/OSI Physical and Data Link Layer Protocols.

Lectures three hours a week, problem analysis three hours alternate weeks.

Engineering 94.353*

Communication Theory II

Amplitude Modulation. Frequency Modulation. Performance of AM and FM in noise. Digital modulation: ASK, FSK, PSK. Optimal reception, probability of error on the AWGN channel.

Precludes additional credit for Engineering 94.351* or 94.460*.

Prerequisite: Engineering 94.250* and Mathematics 69.265*.

Lectures three hours a week, laboratory, three hours alternate weeks.

Engineering 94.360*

Systems and Simulation

Properties of linear systems. Linear dynamic models of engineering systems. Applications of the Laplace transform. Transfer functions. Block diagrams. Frequency and time response. System simulation with digital computers.

Precludes additional credit for Engineering 94.250*.

Prerequisites: Mathematics 69.105* or 69.201, and Engineering 91.111*.

Lectures three hours a week, laboratory three hours a week.

Engineering 94.361*

Microprocessor Systems

Microprocessor-based system design for different microprocessor families. Microprocessors: internal organization, instruction sets, address generation, pin-outs, bus cycles, signalling waveforms. Interfacing memory and I/O devices. Interrupt structures, direct memory access. Floating point coprocessors. System bus standards. Introduction to DSPs.

Precludes additional credit for Engineering 97.461*.

Prerequisites: Engineering 97.267*, and Engineering 94.203*, 94.303*, or 94.306*.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.395*

Professional Practice

Presentations by faculty and external lecturers on the Professional Engineers Act, professional ethics and responsibilities, practice within the discipline and its relationship with other disciplines and to society, health and safety, environmental stewardship, principles and practice of sustainable development. Communication skills are emphasized. (Also listed as Engineering 97.395*.)

Precludes additional credit for Engineering 82.495* and 86.495*.

Prerequisites: Engineering 91.100*, Linguistics and Applied Language Studies 23.100*, and Third-year registration.

Lectures three hours a week.

Engineering 94.401*

Operating Systems

Introduction to operating system principles. Structure of an operating system; management of CPU, processes, and memory; dead-lock problems, file systems. Concurrent programming.

Precludes additional credit for Engineering 94.301*.

Prerequisites: Engineering 94.202* or 94.210*, and Engineering 94.203*, 94.303*, or 94.306*.

Lectures three hours a week.

Engineering 94.405*

Discrete Simulation and its Applications

Simulation as a problem solving tool. Random variate generation, general discrete simulation procedure: event table and statistical gathering. Analyses of simulation data: point and interval estimation. Confidence intervals. Overview of modelling, simulation, and problem solving using SIMSCRIPT, MODSIM, and other languages.

Prerequisite: Mathematics 69.265* or 69.352*, and Fourth-year registration, or Third-year registration in Software Engineering or permission of the Department.

Lectures three hours a week, laboratory one hour a week.

Engineering 94.411*

Software Validation, Verification and Testing

Techniques for the systematic testing of software systems. Software validation and verification, software debugging, quality assurance, measurement and prediction of software reliability. Emphasis on the treatment of these topics in the context of real-time and distributed systems.

Prerequisites: Engineering 94.211* and 94.310*.

Lectures three hours a week.

Engineering 94.412*

Performance Engineering of Computer and Software Systems

Techniques based on measurements and models, for predicting and evaluating the performance of computer systems. Instrumentation. Simple queueing models and approximations. Techniques for modifying software designs to improve performance.

Prerequisites: Mathematics 69.352*, Engineering 94.301* or 94.401*, and 94.405*

Engineering 94.415*

Engineering Management

Introduction to engineering management: management of new products, management of manufacturing processes, management of the linkages between new products and manufacturing processes. Current theories, concepts and techniques are stressed, using a combination of readings, cases and guest speakers.

Prerequisite: Fourth-year registration.

Lectures three hours a week.

Engineering 94.416*

Software Product Management

Stages of the life cycle of software products and their implications for architecture definition, requirements specification, variety, target market segmentation, adoption, roll-out plans, documentation, maintenance, skills, building prototypes, testing, feature prioritization, quality and tools infrastructures.

Prerequisite: Engineering 94.310* or equivalent.

Lectures three hours a week.

Engineering 94.417*

Software Business

Establishing and growing businesses anchored on software design and development. Models for software business; partnerships with suppliers and customers; distribution; raising money; intellectual property protection; evolving core products and sources of competitive advantage; alignment among the business model, infrastructures, and software development.

Prerequisite: Fourth-year registration in Engineering or Computer Science.

Lectures three hours a week.

Engineering 94.445*

Introduction to Digital Signal Processing

Discrete time signal and system representation: time domain, z-transform, frequency domain. Sampling theorem. Digital filters: design, response, implementation, computer-aided design. Spectral analysis: the discrete Fourier transform and the FFT. Applications of digital signal processing.

Prerequisite: Engineering 94.260* or 94.360*

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.454*

Distributed Network Processing

Software aspects of distributed networks. Client-server systems. Internet and the WWW. LAN's and WAN's, routing protocols. Transportable software, JAVA applets. Use of modern software tools in communication network monitoring and analysis. Network management.

Prerequisite: Engineering 94.352*.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.455*

Automatic Control Systems I

Review of Laplace transform techniques. Effects of feedback: frequency response, pole-zero positions. Compensation: root locus, Bode plots. State variables: formulation, solution of linear systems, examples of simple second-order non-linear systems. Discrete time systems: z-transforms. Signal reconstruction.

Prerequisites: Mathematics 69.201 or 69.204*, and Engineering 94.260* or 94.360*.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.457*

Architecture of Computer Systems

History of computers: evolution of concepts, influence of technology, techniques to increase performance. Detailed analysis and design of ALUs, control units, memory systems. Multiprocessor systems, pipeline and array processing. Scalable, superscalar, RISC, CISC, fault tolerant, and digital signal processing architectures.

Prerequisite: Engineering 97.267* or 97.367*.

Lectures three hours a week.

Engineering 94.460*

Digital Communications

Review of probability, random variables, signal representation. Pulse code modulation, other digital waveform coding techniques. Physical layer of data communications. Baseband data transmission: Nyquist criterion, filtering, optimal receiver, probability of error. Digital modulation techniques, performance. Synchronization. Introduction to information theory. Error detection and correction.

Precludes additional credit for Engineering 94.353* and 94.464*.

Prerequisite: Engineering 94.351* and Mathematics 69.352*

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.462*

Introduction to Computer Communications

Layered protocol architectures, OSI. Physical media, physical layer interfaces, data transmission. Data-link protocols, multiplexing, polling. LANs, IEEE 802 standards, performance. Switched Ethernets, FDDI, bridges. Wide area networks, packet switching networks, X.25. Frame relay, internetworking, DoD protocols, TCP, UDP. ATM LANs, adaptation layers, traffic issues.

Prerequisite: Mathematics 69.265* or 69.352* and Fourth-year registration in Electrical, Computer Systems, Software, or Communications Engineering.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.464*

Digital Communication Theory

Advanced topics in digital communications. Error control coding. Bandwidth-efficient modulation. Trellis coding. Synchronization, phase locked loops. Selected topics of current interest: spread spec
trum; digital wireless communications.

Precludes additional credit for Engineering 94.460*.

Prerequisite: Engineering 94.353*.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.470*

Telecommunications Engineering

Telecommunications as a national and international infrastructure. Systems view of network architecture: transmission, switching, signalling, and teletraffic; ISDN; network planning, management and control; global telecommunications, International Telecommunication Union; telecommunications industry as business enterprise (R & D, manufacturing, operations, human factors); standards: role of government, regulation and competition.

Prerequisites: Engineering 94.351* or 94.353*.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.471*

Communication Systems Analysis and Design

Project-oriented level experience in the design of communication systems to meet user requirements. Lectures on queuing theory and teletraffic analysis; system specification and design: requirements analysis, solution alternatives, evaluation of alternative technologies, design, costing, implementation, test.

Prerequisite: Registration in Fourth-year Communications Engineering.

Lectures two hours a week, laboratory four hours a week.

Engineering 94.480*

Software Engineering

Review of software lifecycles and requirements analysis. Software design, with emphasis on methods for real-time systems. Testing, verification and validation, quality assurance and control. Project planning and management. Maintenance and configuration management. Software reuse during design and maintenance.

Prerequisites: Engineering 94.310* and 94.333*.

Lectures three hours a week, laboratory three hours alternate weeks.

Engineering 94.485*

Computer Systems Design Laboratory

Developing professional-level expertise in selected, important areas of the field by applying, honing, integrating, and extending previously acquired knowledge in team projects in the laboratory. Lecture periods are devoted to new knowledge required for the selected areas, to project-related issues, and to student presentations.

Prerequisites: Engineering 94.361* or 97.461*, and 94.480* and registration in Fourth-year Computer Systems Engineering. (Students are encouraged to enrol in both Engineering 94.480* and 94.485* in the same academic year.)

Lectures two hours a week, laboratory four hours a week.

Engineering 94.486*

Software Engineering Laboratory

Applying the full spectrum of engineering and programming knowledge acquired in the program through team projects in the laboratory. Practice in doing presentations and reviews. Lectures will discuss software engineering issues as they relate to the projects, from a mature point of view.

Prerequisite: Engineering 94.480*

Lectures two hours a week, laboratory four hours a week.

Engineering 94.495/94.497/94.498/94.499

Engineering Project

Student teams develop professional-level experience by applying, honing, integrating and extending previously acquired knowledge in a major design project. Lectures are devoted to discussing project-related issues and student presentations. A project proposal, interim report, oral presentations, and a comprehensive final report are required.
Prerequisites: Fourth-year registration and Engineering 94.395* (may be taken concurrently). Certain projects may have additional prerequisites or corequisites.
Lecture one hour a week, laboratory seven hours a week

Engineering 94.496*

Special Topics in Electrical and Computer Engineering

At the discretion of the Department, a course dealing with selected advanced topics of interest to students in Communications, Computer Systems, Electrical and Software Engineering and Engineering Physics may be offered. (Also listed as Engineering 97.496*).

Prerequisite: Permission of the Department.

 


Carleton University
2001-2002 Undergraduate Calendar

1125 Colonel By Drive, Ottawa, ON, Canada K1S 5B6
General enquiries: (613) 520-7400
Comments about Calendar to: CalendarEditor@carleton.ca