uwloo

Computer Science (CS)

50 courses in the 1983–84 Undergraduate Calendar, read from the scanned original. The text comes from OCR, so check the scanned page before relying on a detail.

Notes

Computer Science Course Descriptions

Introductory Notes

1.

The Computer Science Department is experiencing tremendous demand for its courses beyond available resources. Thus, admission to specific Computer Science courses cannot be granted to all students. Every effort will be made to accommodate those students who preregister during published University pre-registration periods. While priority will be given to these preregistrants, admission to individual ccurses cannot be guaranteed. Limits on the number of CS courses students may take concurrently will be-published at pre-registration times. As a general guideline, students will be asked not to enrol in courses beyond their year fevel. Where necessary preference will be given to students in Honours programs in the Faculty of Mathematics.

The prerequisites for several CS courses include registration in a Computer Science Major program. In this context, “Computer Science Major programs” include Honours Computer Science, Honours Co-op Computer Science with Electrical Engineering Electives, Honours Coop Computer Science-information Systems Option, all Joint and Double Honours BMath programs involving Computer Science as one of the majors. Where resources permit, students with exceptionally high academic standing in other programs may be considered for admission to these courses on an individual basis. To be considered, students should first obtain a written recommendation from their Faculty Advisor and then consult a Computer Science Advisor.

Please note that the terms in which courses are offered may deviate from those published below. Students are advised to consult the course offerings list at preregistration time.

More detailed course descriptions and course outlines are available upon request from the Computer Science Department. Students in faculties other than mathematics should take particular note of the following courses: CS 112, 115, 116, 118, 316.

365

Scanned page 366

CS 116 Introduction to Computing See Computer Science course

descriptions.

Scanned page 280CS 116 today

CS 112 FLW 2Ci1TAL 05 introduction to Business Problem

Listed without a description.

Scanned page 366

CS 115 Introduction to Commercial Problem Solving by ComputerF,W 2CjTAL 0.5

Introduction to file processing techniques such as file maintenance, sorting and report generation. Language and notation for describing such algorithms. Analysis of problems dealing with files, and development of algorithms for their solution. Introduction to procedure-oriented languages (usually COBOL) for solving such problems.

Prereq: none

Credit will be granted for only one of CS 115, 180. CS 115 cannot be counted for credit toward a BMath degree.

Scanned page 366CS 115 today

CS 116 Introduction to ComputingF,W 2Cj1T1L 0.5

This course tries to develop an appreciation of the capabilities and limitations of computing and a reasonable capability for using a programming language (usually BASIC). Topics inctude: computers - past, present and future; the problem solving process; algorithmic and programming techniques; file processing; text processing; applications and implications of computers.

Prereq: No mathematical background is required.

Credit will be granted for only one of CS 112, 116, 118, 140. CS 116 cannot be counted for credit toward a BMath General or Honours degree.

Scanned page 366CS 116 today

CS 118 Introduction to Scientific ProblemF,W 3C,1L 0.5

Solving by Computer .

An introduction to the analysis of scientific problems, development of mathematical models and algorithms for

their solution; implementation in a procedure-oriented language (normally FORTRAN). Topics discussed are: solution of equations, computation of integrals, graph plotting, and simulation. Prereq: Grade 13 mathematics is recommended.

Credit will be granted for only one of CS 112, 116, 118, 140.

CS 118 cannot be counted for credit toward a BMath degree.

Scanned page 366

CS 140 Introduction to Mathematical Problem Solving by ComputerF,W,S 3C,2L 0.5

An introduction to the analysis of mathematical problems, development of mathematical models and algorithms for their solution; implementation in a procedure-oriented language (normally FORTRAN). Topics discussed are: solution of equations, computation of integrals, graph plotting, and simulation. Prereq: Grade 13 mathematics is recommended.

Credit will be granted for only one of CS 112, 116, 118, 140.

Special sections of this course will use PASCAL rather than WATFIV-S.

Scanned page 367

CS 180 Introduction to File ProcessingF,W 2C,2L 0.5

Introduction to the use of computers. Concept of an algorithm. Language and notation for describing algorithms. Analysis and solution of problems daaling with files. introduction to a procedure-oriented language (usually COBOL). The preparation and debugging of programs in such a language. Topics include: file Processing and maintenance, sorting, report generation, and file design. Prereq: Grade 13 mathematics is recommended. Credit will be granted for only one of CS 115, 180.

Scanned page 367

CS 210 Introduction to Numerical ComputingF 3C 0.5

A survey of numerical procedures with emphasis upon computer implementation using FORTRAN. Topics inctude: interpolation, curve fitting, solution of non-linear equations, numerical integration, numerical solution of ordinary and partial differential equations, matrix algebra, and solution of systems of linear equations.

Prereq: at feast one course in calculus, algebra, and computer science.

CS 210 cannot be counted for credit toward a BMath Honours degree. Credit will be granted for only one of CS 210, 332/333, 375.

Course Descriptions

Mathematics.

Computer Science

Scanned page 367

CS 234 Programming Principtes and PracticeF,W,S 2€,2T 0.5

To develop a sophisticated useroriented understanding of software. A disciplined approach to program design. The need for and use of various control structures and data structures. Features of several high-level languages; techniques for their effective use. Specific topics include: structured: programming, linked-list processing, recursion, string processing, tree processing and language development. Prereg: One of CS 118, 140, 180 or two of CS 112, 115, 116.

Credit will be granted for only one of CS 234, 240.

Scanned page 367CS 234 today

CS 235 Introduction to Computers and Computer SystemsF,W,S 2C,1T 0.5

To give a basic understanding of what goes on inside a computer, of machine organization, and of machine and assembly-language programming. To introduce students to computer software designed to assist user programs. To make students better users of a computer. Specific topics include: simple machine architecture, assembler-level programming, addressing modes and operating system services.

Prereq: One of CS 118, 140, 180 or two of CS 112, 115, 116.

Credit will be granted for only one of CS 236, 250.

Scanned page 367

CS 240 Programming Principles, Languages, and TechniquesF,W,S 2C,2T 0.5

To develop a thorough understanding of software as needed for program design. The need for and use of various control structures and data structures. Features of several high-level languages, techniques for their effective use. Specific topics include structured programming, linked-list processing, recursion, string processing, tree processing and language development. Prereq: CS 250 and second-year Standing in a Computer Science Major program.

Credit will be granted for only one of CS 234, 240.

Scanned page 367CS 240 today

CS 250 Fundamentals of Computers and Computer SystemsF,W 3C,1T 0.5

To give a thorough introduction to what goes on inside a computer, of machine organization, and of machine and assembly-language programming. To introduce students to computer

software designed to assist user programs. Specific topics include: addressing modes, subroutines and macros, microcomputer architecture, and operating system components. Prereq: CS 140 and second-year standing in a Computer.Science Major program.

Credit will be granted for only one of CS 235, 250.

Scanned page 367

CS 316 Introduction to Statistical Problem Solving by ComputerW 2C,2L 0.5

This is an applications oriented course which prepares the nonmathematical Student to use the computer as a research tool. Topics include aids for statistical analysis and the preparation of documents such as reports and theses. The course provides sufficient background for application to other problems specific to the individual's field.

Prereq: One statistics course.

CS 316 cannot be counted for credit toward a BMath degree.

Scanned page 367

CS 330 F,W,S 2C 0.5

Computer Applications in Business: Introduction

A discussion of the implementation of business procedures on computers. Students study and modify a computerized accounting system as an illustration of the methods used. The accounting system is then extended to consider other applications such as inventory control and also more complicated file structures to improve the performance of the system. Prereq: CS 180 and (ACC 121/122 or 101/102), or consent of instructor.

CS 330 cannot be counted for credit toward a 8Math Honours Computer Science degree.

Scanned page 367CS 330 today

CS 332 F 2C.2T 0.5

introduction to Scientific Computation: Numerical Algebra

Pitfalls in computation; solution of linear algebraic equations; finding zeros of a single nonlinear equation and systems of nonlinear equations; the algebraic eigenvalue problem. The emphasis is on exposure to modern computer techniques for solving mathematical problems. Heavy use of mathematical subroutine libraries is anticipated.

Prereq: Knowledge of a high-level Programming language (preferably FORTRAN), MATH 220b, 224a.

Credit will be granted for only one of CS 210, 332/333, 375.

Formerly CS 370.

Scanned page 367

CS 333 W 2C,2T 0.5

Introduction to Scientific Computation: Numerical Approximation

Polynomial interpolation: teast squares and minimax approximation; numerical integration and differentiation; numerical solution of initial value

problems and boundary value problems.

As in CS 332, the intent is to expose students to modern computer techniques for solving mathematical problems.

Prereq: Knowleage of a high-level programming language (preferably FORTRAN), MATH 220b, 224a. Credit will be granted for only one of CS 210, 332/333, 375.

Formerly CS 371.

Scanned page 368

CS 338 F,W,S 3C 0.5

Computer Applications in Business: Data Bases and Data Communications, A user-oriented approach to data communications and to the management of large collections of data, The three basic models (hierarchical, network, and relational) are presented. Specific examples are used to illustrate data base design. Data communication principles are related to specific business applications.

Prereq: CS 330, 340 or consent of instructor. Credit will be granted for only one of CS 338, 448. CS 338 cannot be counted for credit taward a BMath Honours Computer Science degree.

Scanned page 368CS 338 today

CS 340 Data StructuresF,W,S 3C 0.5

The study of data structures in a language independent setting. Levels of data description and their role in design of structures. The effects of secondary store. Introduction to the analysis of algorithms. Topics include: primitive data types; sequences; designing representation-independent data structures; tuples; arrays and tables; trees and forests; sets.

Prereq: CS 240, one of C&O 220, 230.

Scanned page 368

CS 350 Machine StructuresF,W,S 3C 0.5

The intent is to give a basic understanding of what goes on inside a computer, of machine architecture, and of some fundamental operating system services. Topics include: introduction to an actual computer; representation of data; memory; central processor; addressing schemes; input/output; linking and loading.

Prereq: CS 250 or EL E 222. CS 369 or EL E 323 is recommended.

oe

Course Descriptions 367

“Mathematics.

Computer Science

Scanned page 368CS 350 today

CS 354 Software SystemsF,W 3C 0.5

A study of those software components comprising a computing system, with an emphasis on the management of hardware resources and the support of multiple processes. Topics include: operating system services; file systems; linkers, loaders and libraries; monitors and debuggers; interrupt handling; critical sections; process communication and synchronization.

Prereq: CS 340 and third-year standing ina Computer Science Major program. CS 350 is recommended as a pre/corequisite.

Scanned page 368

CS 360 Introduction to the Theory of ComputingF,W,S 3C 0.5

Models of computers including finite automata and Turing machines. Basics of formal languages with applications to syntax of programming languages. Unsolvabte problems and their rele- . vance to the semantics of programming. Concepts of computational complexity including algorithm optimality.

Prereq: CS 240

Scanned page 368CS 360 today

CS 369 Digital NetworksFLW,S 3C 0.5

Combinational networks. Integrated circuit modules. Boolean algebras.

Boolean functions, expressions and

their simplification. Asynchronous sequential networks. Latches and flipflops. Synchronous operations. Analysis and synthesis of synchronous sequentia! networks. Sequential integrated-circuit modules: shift registers, counters, memories.

Prereq: CS 250 or EL E 222

Scanned page 368

CS 375 Introduction to Numerical AnalysisF,W,S 3C 0.5

Pitfalls in computation; solution of linear algebraic equations; polynomial interpolation; least squares; numerical integration and differentiation. The intent is to expose students to the theory behind modern computer techniques for solving mathematical problems.

Prereq: CS 240, MATH 230b, 234a, and third-year standing in a Computer Science Major program.

Credit will be granted for only one of CS 210, 332/333, 375..

Enrolment in some fourth-year courses may be restricted to students registered in Computer Science Major programs.

Scanned page 368

CS 432 Business Systems AnalysisW 3C 0.5

Survey of organization and management theory. Systems theory and the systems approach. Systems design. Data base concepts. Implementation and evatuation of computer based information systems. Prereq: CS 340 or CS 330 and 338, and fourth-year standing.

Credit will be granted for only one of CS 432, 434, 482, CS 432 cannot be counted for credit toward a 8Math Honours Computer Science degree.

Scanned page 368

CS 434 Computer AuditingW 3C 0.5

The responsibility of the auditor in relation to computer systems. Systems of controls and cost/effectiveness analysis of controls. Computer audit techniques. Case studies including examples of poorly controlled systems and computer abuse.

Prereq: ACC 251 and either CS 338 or 448. Credit will be granted for anly one of CS 432, 434, 482. CS 434 cannot be counted for credit toward a BMath Honours Computer Science degree.

Scanned page 368

CS 437 Simulation by ComputerW 3C 0.5

An introduction to the basic techniques of simulation. Discrete simulation models; random number generators; the SIMSCRIPT and GPSS languages; analysis of simulation output: continuous simulation models and the CSMP language.

Prereq: STAT 220; CS 330 and 338, or 340. Credit will be granted for only one of CS 437, 457. CS 437 cannot be counted for credit toward a BMath Honours Computer Science degree.

Scanned page 368

CS 442 Comparative Programming LanguagesW 3C 0.5

This course is designed to give students a critical understanding of programming language concepts and to provide them with an appreciation for the implications of various language design decisions. Students also learn some fundamentals about language processors.

Prereq: CS 340, 360

Scanned page 368CS 442 today

CS 444 Compiler ConstructionW 3C 0.5

Phases of compilation. Lexical analysis and a review of parsing. Compilercompilers and translator writing systems. LEX and YACC. Scope rules, block structure, and symboi tables. Runtime stack management. Parameter passage mechanisms. Stack storage organization and templates. Heap storage management. Intermediate code. Code generation. Macros. Prereq: CS 340, 350, 360.

Scanned page 369CS 444 today

CS 446 Applications Software EngineeringFLW,S 3C 0.5

Practical computing problems encountered in scientific applications: an overview of batch pperating systems; the importance of loaders and overlays; check points, post mortems, and operating system services; FORTRAN as a programming language; current programming techniques: design and use of program libraries and human engineering of input and output; magnetic tapes and bulk storage. Prereq: CS 340, 350.

Scanned page 369CS 446 today

CS 448 Introduction to Datab 9F,W,S 3C 0.5

The course introduces the student to the techniques that have been developed for processing very large collections of data. The requirement that data be held on secondary storage (disks and tapes) has an enormous impact on the design of algorithms to access that data.

Prereq: CS 340. Credit will be granted for only one of CS 338, 448.

Scanned page 369CS 448 today

CS 450 Computer ArchitectureF,S 3C 0.5

The course is intended to prepare the student to choose a suitable computer for a given application. Review of combinational and sequential logic circuits. Discussion of “building blocks” - central processing units, stores, input/ output systems, and bus structures. Case studies of machines.

Prereq: CS 350 and (CS 369 or

EL E 323).

Scanned page 369CS 450 today

CS 452 Real-time ProgrammingF,W,S 3C 0.5

Intended to give students experience with tools and techniques of real-time programming, this course includes not only issues of microcomputer architecture and a real-time programming language and operating system, but

Course Descriptions

Scanned page 369CS 452 today

CS 456 Data CommunicationsW 3C 0.5

This course is intended to introduce the student to the basic concepts of data communications, the computercommunication interface, and new telecommunications services. Topics include: basic queueing theory, data communications and the telephone network, computer architecture for.data communications, protocols, error handling, multiplexing and switching, and packet switching networks.

Prereq: CS 340, 450, STAT 231, 333. CS 457 is a recommended corequisite.

Scanned page 369CS 456 today

CS 457 Queueing Models: Analysis, Simulation, and Computer ApplicationsW 3C 0.5

An introduction to the basic results of queueing theory and the techniques of discrete event simulation. Emphasis is placed on the application of queueing models to computer systems and computer communication networks. Prereq: STAT 231 and 333; CS 240 and 350. Credit will be granted for only one of CS 437, 457.

Scanned page 369CS 457 today

CS 462 Formal Languages and ParsingF 3C 0.5

Languages and their representations. Grammars - Chomsky hierarchy. Regular sets and sequential machines. Context-free grammars - normal forms, basic properties. Pushdown automata and transducers. Operations on languages. Undecidable problems in language theory. Applications to the design of programming languages and compiler construction.

Prereq: CS 360.

Scanned page 369CS 462 today

CS 464 Computability and Recursive Function TheoryW 3C 0.5

Models of the computational process as reflected by computers, linguistic systems, functional specifications, transformational systems. formal logic, etc. Equivalence of these models. Computational complexity for specific models and abstractions fitting all models. Formal reducibilities between computational problems, and the complexity of these reducibilities. Prereq: CS 360

Scanned page 369

CS 466 Algorithm Design and AnalysisF,S 3C 0.5

Design of good algorithms and analysis of the resources they consume. Lower bounds on the resource requirements of algorithms to compute certain functions. Problems from the following areas are discussed in this light: sorting and order statistics, data structures, arithmetic computations, the NP- complete problems.

Prereq: CS 340. CS 360 is recommended.

Scanned page 369CS 466 today

CS 468 Program VerificationW 3C 0.5

Methods of program verification. Implications for structured programming. Inductive reasoning about recursive programs and recursively defined data structures. Prereq: CS 360

Scanned page 369

CS 472 Numerical Linear Algebra’W 3C 0.5

Direct methods for the numerical solution of linear systems of equations and linear least squares problems. Numerical methods for solving the algebraic eigenvalue problem.

Prereq: CS 332 or 375

Scanned page 369

CS 473 Numerical Linear ProgrammingF 3C 0.5

Methods for the minimization and maximization of piecewise linear functions and tinear functions subject to linear constraints, with applications to linear programming and data fitting. Emphasis is on algorithms, numerical considerations and software implementation.

Prereq: One of CS 332, 375, C&O 350, or consent of instructor.

Cross-listed as C&O 458.

Scanned page 369

CS 474 Numerical ApproximationS 3C 0.5

Existence, uniqueness, and convergence of polynomial approximations obtained by interpolation and by Jeastsquares Criteria. Minimax and near minimax approximation by polynomials and rational functions. Efficient algorithms for obtaining approximations, including the Fast Fourier Transform. The design of built-in functions.

Prereq: (CS 333 or 375) and MATH 332b.

Scanned page 370

CS 476 Numerical Solution of Differential and Integral EquationsF 3C 0.5

Initial value problems: existence and uniqueness of solutions, one step methods, multistep methods, stability, error analysis. Boundary value problems: shooting and discretization methods, implementation problems especially for non-linear equations. Integral equations; correspondence to ordinary differential equations, initial value and boundary value problems, solution techniques.

Prereq: Consent of the instructor.

Scanned page 370CS 476 today

CS 478 Numerical Solution of Partial Differential EquationsW 3C 0.5

Discretization methods for partial

- differential equations, convergence and stability, grid and characteristic methods for hyperbolic equations: iterative methods of solution for parabolic and elliptic equations, rate of convergence estimates.

Prereq: Consent of the instructor.

Scanned page 370

CS 482 Techniques in Systems AnalysisF,S 3C 0.5

Techniques in organization and management theory. Organization of large software systems. Data base concepts. implementation of computer based information systems. Survey of current topics of interest such as distributed processing, microcomputers and on-line systems.

Prereq: CS 340 and fourth year standing in Honours Computer Science.

Credit will be granted for only one of CS 432, 434, 482.

Scanned page 370CS 482 today

CS 486 Introduction to Artificial IntelligenceW 3C 0.5

Goats and methods of artificial intelligence. Methods of general problem . solving. Introduction to mathematical Jogic. Mechanical theorem proving. Game playing. Natural language processing.

Prereq: CS 240

Course Descriptions 369

Mathematics.

Computer Science

Scanned page 370CS 486 today

CS 487 Introduction to Symbolic ComputationW 3C 0.5

An introduction to the use of computers for symbolic mathematical computation, involving traditional mathematical computations such as solving linear equations (exactly), analytic differentiation and integration of functions, and analytic solution of differential equations.

Prereq: CS 240 and MATH 334

Scanned page 370CS 487 today

CS 488 Introduction to Computer GraphicsF,W,S 3C 0.5

Software and hardware for interactive computer graphics. Implementation of device drivers, 3-D transformations, clipping, perspective, and input routines, Data structures, hidden surface removal, colour shading techniques, and some additional topics will be covered.

Prereq: CS 340, 350 and MATH 234a.

Scanned page 370CS 488 today

CS 492 The Social Implications of ComputersF,W 2C,1D 0.5

This course is designed to consider the problems caused for organizations and society by the advent of computer technology so that constructive solutions to these problems may be discussed. Prereq: CS 330 and 338, or CS 340

Scanned page 370CS 492 today

CS 498 Advanced Topics in Computer Science0.5

See the course offerings list for topics available.

Scanned page 370

CS 499 Readings in Computer Science(0.5

Mathematics Course Descriptions

introductory Notes

1. Certain core mathematics courses are offered at three different fevels. The Advanced Honours level courses are intended for exceptionally gifted students in an Honours program. A Student pursuing an Honours degree may substitute the corresponding Advanced Honours fevel course(s) for any required Honours level course(s). Similarly, a student pursuing a Pass or General degree may substitute the corresponding Honours level course(s) for any required General level course(s), unless the student has been required by the Standings & Promotions Committee to switch from an Honours

program to General or Pass. Jn this case, the student must enrol in General level courses. The following table sets out corresponding Advanced/Honours/ General Courses.

Advanced

Honours Honours General

MATH 140a/b MATH 130a/b MATH 130a/b MATH 144a/b MATH 134a/b MATH 134a/b MATH 240a/b MATH 230a/b MATH 220a/b MATH 244a/b MATH 234a/b MATH 224a/b

Scanned page 370