uwloo

Computer Science (CS)

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

Notes

Undergraduate Advisors A. Pidduck, OC 3106, ext 4662 B.W. Becker, DC 3105, ext 4661

Introductory Notes

1. The Department of Computer Science has two distinct streams of courses, one for students who have been admitted into a Computer Science Major program, as defined on page 13:10, and another designed for non- Specialists who wish to become sophisticated computer users.

CS 130 and 134 are normally restricted to students in the Faculty of Mathematics. All other CS courses numbered with a middle digit of 0 through 3 are non-specialist courses. As such, they will not normally be open to Computer Science Major students, but they will be available to all other students in the University, subject to resource limitations.

Several CS Major courses are also open to other students. In addition, where resources permit, students with exceptionally high academic standing in other programs may be considered for admission to restricted CS Major courses on an individual basis. To be considered, students should consult a Computer Science Undergraduate Advisor.

2. Computer Science Major courses require students to have experience programming with a block-structured imperative language such as Pascal, C or Turing. These concepts of computer programming are covered in CS 130. Students who have substantial programming experience will be permitted to start their program with CS 134, which is an introduction to the basic concepts of computer science. Students in CS Major programs who do not take CS 130 will be required to take an additional third or fourth-year CS Major course.

3. The Computer Science Department is experiencing demand for its courses beyond available resources. Thus, access to Computer Science courses cannot be guaranteed to all students. Every effort will be made to accommodate the students who preregister during published University preregistration periods, during which time, priority will be given to students who are at the appropriate year level. However, admission to specific courses cannot be guaranteed and course

Course Descriptions Computer Science

10.

substitutions may be required to Satisfy degree requirements.

Regular students will not normally be permitted to enrol in Computer Science courses during the Spring term.

Co-op students will not normally be permitted to enrol in Computer Science courses while on a work term.

All other part-time students, as well as full-time non-degree and postdegree students, will normally be limited to at most one Computer Science course per term from the non-specialist offerings. (Post-degree students on academic leave from their home institution should consult a Computer Science Advisor.) Priority for registration will normally be given to students registered full-time in a degree program.

Students in first and second year are limited to one Computer Science course per term. Students in CS Major programs are limited to three CS courses per term in third and fourth year. Other students are limited to two CS courses per term in third and fourth year.

Please note that the terms in which courses are offered may deviate from those indicated below. Students are advised to consult the University Course Offerings List published at preregistration time.

Where there is significant overlap between major and non-specialist courses, the major course can be used to satisfy the prerequisite for non-specialist courses, unless otherwise specified.

Students who have demonstrated exceptionally strong academic pertormance will be permitted to enrol in 600-level CS courses at the discretion of the instructor, if there is available capacity. Courses at the 600 level may not be used to satisfy a program requirement for minimum number of courses in Computer Science at the 400 level.

The prerequisite phrase “x-year standing” means that a student must be registered in year x or higher.

The standard penalty for cheating will be the assignment of a grade of -100% for the assignment, test or exam in question, with a minimum deduction of 5% from the final course grade. All such incidents will also be reported to the Associate Dean (Undergraduate Studies) of the student's faculty.

16:35

11. Since CS 462 and 476 are offered only in the Fall term, Co-op students in Stream 8 will need to carefully plan the sequence of prerequisites in order to take these courses in the 3B term.

Scanned page 352

CS 100 Introduction to Computer UsageF,W,S 2C,2L 0.5

An introduction to universally applicable computer services. Hands-on experience with common software and hardware, supported by examples of applications and social implications chosen from many dis- Ciplines. Topics include: electronic mail, word processing, spreadsheets, record management, and hardware and software concepts.

Antireq: CS 130, 134

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

Scanned page 352CS 100 today

CS 102 Introduction to Computer ProgrammingF,W,S 3C,2L 0.5

Fundamental techniques of algorithm design and program development. Introduction to a programming language applicable to the student's field of study. Topics include: structured programming, simple data elements, sequential operations, iterative statements, selection statements, data aggregations, functions and subroutines.

Prereq: Computer literacy (e.g. CS 100 ° or extensive high school computing)

Antireq: CS 130

Divisions of the course will be application-oriented: CS 102 SCI is intended for students in the natural sciences and

Scanned page 352

CS 102 (blank division suffix) for other

Listed without a description.

Scanned page 352

CS 130 Concepts of Computer ProgrammingF,W,S 3C,1T,3L 0.5

Fundamental concepts of computer programming, including data types, structured programming, algorithm design, and numerical methods. Sample programs and exercises will be drawn from various areas of mathematics. Labs will emphasize programming.

Prereq: Full-time degree registration in the Faculty of Mathematics

Antireq: CS 100, 102

CS 130 should be taken before CS 134 by students who have not had substantial programming experience.

Also offered at St. Jerome's College in the Fall term

Scanned page 352

CS 134 Principles of Computer ScienceF,W,S 3C,1T3L 0.5

An introduction to basic concepts of computer science, including the paradigms of theory, abstraction, and design. Broad themes include the design and analysis of algorithms, the management of information, and the programming mechanisms and methodologies required in implementations. Topics discussed include iterative and recursive sorting algorithms; lists, stacks, queues, trees, and their application; and the history and philosophy of computer science.

Prereq: Full-time degree registration in the Faculty of Mathematics, and CS 130 or an equivalent level of knowledge and experience.

Antireq: CS 100, 212

Also offered at St. Jerome's College in the Winter term

Scanned page 353

CS 212 Programming Principles and PracticeF,W 3C 0.5

High-level languages, including their specification and translation. Structured programming. Use of data structures, including lists and trees. Recursion. Sorting. Introduction to computational complexity and correctness.

Prereq: CS 102, or equivalent

Antireq: CS 134 CS 212 cannot be counted for credit toward a BMath Honours degree.

Scanned page 353

CS 230 Introduction to Computers and Computer SystemsF,W,S 3C 0.5

Basic computer architecture, operating system services, and programming languages in support of development of software systems.

Prereq: One of CS 134, 212

Antireq: CS 241, 246, 352

CS 230 cannot be counted for credit in @ Computer Science Major program.

Scanned page 353CS 230 today

CS 241 Foundations of Sequential ProgramsF,W,S 3C 0.5

The relationship between high-level languages and the computer architecture that underlies their implementation, including basic machine architecture, assemblers, specification and translation of programming languages, linkers and loaders, block-structured languages, parameter passing mechanisms, and comparison of programming languages.

Prereq: CS 246

Antireq: CS 230

Course Descriptions Computer Science

Scanned page 353CS 241 today

CS 246 Software Abstraction and SpecificationF,W,S 3C 0.5

Systematic methods for designing, coding, testing, and documenting medium-sized programs. Major topics include formal specification, abstraction, modularity and reusability. Students will become strong apprentice programmers abie to write a clear specification for a problem, read a specification and design the software to implement it, use appropriate data structures in a program, write reusable code and reuse existing code when possible, debug a program, and adequately test a program.

Prereq: CS 134

Antireq: CS 230

Scanned page 353CS 246 today

CS 316 Introduction to Statistical Problem Solving by ComputerW 3C,1L 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 and computer literacy (e.g. CS 100 or high school computing), or consent of instructor

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

Scanned page 353

CS 330 Management Information SystemsF,W,S 3C 0.5

An introduction to information systems and their strategic role in business. Topics include types of information systems, organizational requirements, systems development strategies, decision support systems, data and information management, and information systems management, control and implementation.

Prereq: 2B standing and one of CS 134, 212

CS 330 cannot be counted for credit in

a Computer Science Major program.

Scanned page 353CS 330 today

CS 334 Data Types and StructuresF,S 3C 0.5

Top-down design of data structures. Using representation-independent data types. Introduction to commonly used data types, including lists, sets, mappings, and trees. Selection of data representation.

Prereq: One of CS 230, 246 and thirdyear standing

Antireq: CS 340

CS 334 cannot be counted for credit in a Computer Science Major program.

Scanned page 353

CS 336 Distributed Computer SystemsW 3C 0.5

An introduction to networks and computer systems, reliable communication, layered models, distributed file systems, cryptography, concurrency issues. Prereq: One of CS 230, 246 Antireq: CS 454 CS 336 cannot be counted for credit in a Computer Science Major program.

Scanned page 353

CS 337 Introduction to Numerical AnalysisW 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 modem algorithms for solving mathematical problems. Prereq: CS 134, MATH 136, 138 MATH 235 and 237 are recommended Antireq: CS 372, 374 CS 337 cannot be counted for credit in a Computer Science Major program.

Scanned page 353

CS 338 F,W,S 3C 0.5

Computer Applications in Business: Databases A user-oriented approach to the management of large collections of data. Methods used for the storage, selection and presentation of data. Common database management systems.

Prereq: One of CS 230, 246, 330

Antireq: CS 448

CS 338 cannot be counted for credit in a Computer Science Major program.

Scanned page 353CS 338 today

CS 340 Data Structures and AlgorithmsF,W,S 3C 0.5

The use of abstract data types in the design of data structures; efficiency dictio- Nnaries; sorting and priority queues. Techniques for designing efficient algorithms; application to problems on graphs; design of heuristics and approximate solutions to apparentty intractable problems. Prereq: CS 241, C&O 230, and registration in a Computer Science Major program Antiraq: CS 334

Scanned page 353

CS 351 Digital Design and ArchitectureF,W,S 3C 0.5

Boolean algebra. Design and analysis of both combinational and sequential circuits. Registers, counters, memory, programmable logic. CPU control logic, the arithmetic-logic unit. input/output and interrupts. Prereq: CS 352 and registration ina Computer Science Major program Antireg: E&CE 223

Scanned page 353

CS 352 Concurrent ProgrammingRWS 3C 0.5

The function of modern operating systems and their relationship to the computer architecture that underlies their implementation, including file systems, /O and intertupt handling, CPU scheduling and swapping, memory management, parallel processing. The course also includes an overview of computer networking, performance monitoring, modeling and simulation, and the social implications of computing.

Prereq: CS 241

Antireq: CS 230

Scanned page 354

CS 354 Software SystemsF,W 3C 0.5

An introduction to the system software of modern computing systems, with an emphasis on the management of hardware resources and the support of multiple processes. Major topics: object-oriented programming, critical sections and syn- Chronization, primitives for concurrency control, the deadlock problem, memory management, file systems, introduction to distributed computing.

Prereq: CS 352 and registration ina Computer Science Majorprogram

Scanned page 354

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

Models of computers including finite automata and Turing machines. Basics of formal languages with applications to syntax of programming languages. Unsolvable problems and their relevance to the semantics of programming. Concepts of computational complexity including NP completeness.

Prereq: CS 241, C&O 230

Scanned page 354CS 360 today

CS 372 F,W 8C 0.5

Introduction to Scientific Computation: Numerical Linear Algebra Pitfalls in cornputation. Direct solution of linear algebraic systems. Iterative solution of linear algebraic systems. Least-squares computations. Iterative solution of f(x) = 0. Minimization of functions of several variables. Prereq: CS 134, MATH 235, 237 Antireg: CS 337

Scanned page 354

CS 374 Introduction to Scientific ComputationW,S 3C 0.5

Numerical Approximation

Pitfalls in computation. Polynomial

interpolation. Orthogonal polynomials and

least-squares approximations. Numerical

integration and differentiation. Data fitting. Prereq: CS 134, MATH 235, 237 Antireq: CS 337

Course Computer Science

Scanned page 354

CS 430 Applications Software EngineeringF 3C 0.5

An investigation into the role and function of software engineering practice in the construction of computer based systems. Topics include: requirements and specification; documentation techniques; analysis and design; implementation: testing and maintenance; management issues. Prereq: CS 330 or permission of instructor and third-year standing Antireg: CS 446 CS 430 cannot be counted for credit in a Computer Science Major program.

Scanned page 354CS 430 today

CS 432 Business Systems AnalysisF,W,S 3C 0.5

Survey of organization and management theory. Systems theory and the systems approach. Systems design. Database concepts. Implementation and evaluation of computer based information systems. Prereq: CS 330 and third-year standing Antireq: CS 482 CS 432 cannot be counted for credit in a Computer Science Major program.

Scanned page 354

CS 435 Computer ApplicationsW 3C 0.5

An overview of some more advanced computer techniques, with an emphasis on their application in the analysis and design of systems. Topics include: data communication; queueing theory fundamentals; 2-D graphics; advanced software and hardware architectures; computer selection.

Prereq: One of CS 334, 335, 336, and third-year standing

CS 435 cannot be counted for credit in a Computer Science Major program.

Scanned page 354

CS 437 Simulation by ComputerW 3C 0.5

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

Prereq: One of CS 230, 246, and thirdyear standing

Antireq: CS 457

CS 437 cannot be counted for credit in a Computer Science Major program.

16:37

Scanned page 354

CS 442 Principles of Programming LanguagesF,S 3C 0.5

An exposure to important concepts and issues in contemporary programming languages. Data types, abstraction, and polymorphism. Program structure. Lambda calculus and functional programming, logic programming, object-oriented programming. Semantics of programming languages. Critical comparison of language features and programming methodologies using examples drawn from a variety of programming languages including Lisp, Prolog, ML, Ada, Smalitalk, Icon, APL, and Lucid. Programming assignments involve the use of some of these languages. Prereq: CS 340 and registration in a Computer Science Major program

Scanned page 354CS 442 today

CS 444 Complier ConstructionW 3C 0.5

Phases of compilation. Lexical analysis and a review of parsing. Compiler-compilers and translator writing systems. LEX and YACC. Scope rules, biock structure, and symbol tables. Runtime stack management. Parameter passage mechanisms. Stack storage organization and templates. Heap storage management. Intermediate code. Code generation. Macros.

Prereq: CS 340, 360 and registration in a Computer Science Major program

Scanned page 354CS 444 today

CS 446 Software System Design and implementationW,S 3C 0.5

An investigation into the role and function of software engineering practice in the design and implementation of computer based systems. Topics include: structural design; procedural design; testing and reliability; management topics; programming languages and coding; portability techniques; maintenance; performance measurement and analysis.

Prereq: CS 352, and registration in a Computer Science Major program. CS 354 is recommended

Antireq: CS 430

Scanned page 354CS 446 today

CS 448 Introduction to Database ManagementF,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, 354 and registration in a Computer Science Major program Antireq: CS 338

Scanned page 354CS 448 today

CS 450 Computer ArchitectureW 3C 0.5

The course is intended to provide the student with an appreciation of modern computer design and its relation to system architecture, compiler technology and operating system functionality. The course places an emphasis on design based on the measurement of performance and its dependency on parallelism, efficiency, latency and resource utilization.

Prereq: CS 351 or (CS 352 and E&CE 223), and registration in a Computer Science Major program

Scanned page 355CS 450 today

CS 452 Real-time ProgrammingW,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 realtime programming language and operating system, but also hands-on experience programming a microcomputer for applications such as process control, data acquisition and communication.

Prereq: CS 354 and registration in a Computer Science Major program. CS 351 is recommended

Scanned page 355CS 452 today

CS 454 Distributed SystemsF,W,S 3C 0.5

An introduction to distributed systems, emphasizing the multiple levels of software in such systems. Specific topics include fundamentals of data communications, network architecture and protocols, focal-area networks, concurrency control in distributed systems, recovery in distributed systems, and clock synchronization.

Prereq: CS 354 and registration in a Computer Science Major program. CS 351 is recommended

Antireq: CS 336

Scanned page 355CS 454 today

CS 457 Queueing Modeis: 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: CS 352, STAT 231, 333, and registration in a Computer Science Major program

Antireq: CS 437

Course Descriptions Computer Science

Scanned page 355CS 457 today

CS 458 Design of Microprocessor-Based SystemsW 3C 0.5

An introduction to the design of digital systems such as those used in microcomputers, control and industrial applications, or those dedicated to specific tasks. Topics include: digital etectronics, microprocessors, memory chips and systems, standard and specialized peripheral chips, development and integration systems, and case studies. Laboratory-oriented: smail teams design and Implement microprocessor-based systems.

Prereq: CS 351 and registration in a Computer Science Major program.

Scanned page 355

CS 462 Formal Languages and ParsingF 30 0.5

Languages ark thelr representations. Grammars — Chomsky hierarchy. Regular sets and sequential machines. Contextfree 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 355CS 462 today

CS 464 Computational Compiexity TheoryW 38C 0.5

The classification of problems according to the computational resources required for their solution, with emphasis on properties of feasible computations rather than on specific algorithms. Topics include: time and space complexity, tractable and intractable problems, computation using randomness, parallel computation. Prereq: CS 360

Scanned page 355

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, 360

Scanned page 355CS 466 today

CS 472 Numerical Linear AlgebraW 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 372, or CS 337 and consent of instructor. CS 374 is recommended

Scanned page 355

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: CS 374, or 337 and consent of instructor, or CS 372 and consent of instructor

Cross-listed as AM 441

Scanned page 355CS 476 today

CS 482 Techniques in Systems AnatysisF,W 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. Prereg: CS 340 and registration in a Computer Science Major program Coreg: CS 448 Antireg: CS 432

Scanned page 355CS 482 today

CS 486 Introduction to Artificial IntelligenceF,W,S 3C 0.5

Goals and methods of artificial intelligence. Methods of general problem solving. Introduction to mathematical logic. Mechanical theorem proving. Game playing. Natural language processing. Prereq: CS 340 and registration in a Computer Science Major program

Scanned page 355CS 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 241, PMATH 334 or consent of instructor

Scanned page 355CS 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, MATH 235, and registration in a Computer Science Major program

Scanned page 355CS 488 today

CS 492 The Social Implications of ComputersW 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 340 and registration in a Computer Science Major program

Scanned page 356CS 492 today

CS 494 Computers and the Law of Information TechnologyF,W 3C 0.5

An introduction to the subject of computer law, examining current legal issues and problems relating to the use of computerbased information systems, the protection of computer software and data bases, and the acquisition and sale of computer “systems.

Prereq: CS 352 and third-year standing

in a Computer Science Major program

Scanned page 356CS 494 today

CS 498 Advanced Topics in Computer Science See the Course Offerings List for topics0.5

available.

Prereq: CS 352 and third-year standing in a Computer Science Major program

Scanned page 356

CS 499 Readings in Computer Science0.5

This course cannot be used to satisfy any 400-level course requirement in a Computer Science Major program.

Scanned page 356

CS 457 Queueing Models: Analysis, Simulation, and Computer Applications

Not offered in 1993–94.

Scanned page 356CS 457 today