47 courses in the 1992–93 Undergraduate Calendar, read from the scanned original. The text comes from OCR, so check the scanned page before relying on a detail.
CS 100Introduction to Computer UsageF,W,S 2C,2L 0.5
An introduction to universally applicable computer services. Hands-on experience
with common software and hardware, sup-
ported by examples of applications and social implications chosen from many disciplines. Topics include: electronic mail, word processing, spreadsheets, record management, and hardware and software concepts.
CS 102Introduction 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)
Divisions of the course will be application-oriented: CS 102 SCt is intended for students in the natural sciences and CS 102 (blank division suffix) for other students. Both divisions will not be offered each term.
CS 102 cannot be counted for credit toward a BMath Honours or four-year General degree.
CS 130Concepts of Computer ProgrammingF,W,S 3C,1T,3L 0.5
Fundamental concepts of comptuer 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
CS 134Principles of Computer Science 1F,W,S 3C,1T,3L 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.
Also offered at St. Jerome's College in the Winter term
CS 212Programming 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.
CS 241Principles of Computer Science 2F,W,S 2C,1T 0.5
The relationship between high-level languages and the computer architecture that underlies their imptementation, 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 134 and an all-inclusive cumulative math average of at least 60% Antireq: CS 230
CS 242Principles of Computer Science 3F,W,S 2C,1T 0.5
The function of modern operating systems and their relationship to the computer architecture that underlies their implementation, including file systems, I/O and interrupt 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.
CS 316Introduction to Statistical Problem Solving by ComputerW 3C,iL 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
Course Descriptions Computer Science
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.
A study of application software systems in the business environment. Topics include data models of business functions, file and data base systems, and integrated accounting systems. Students modify an integrated accounting system and also work with a selection of commercially available software systems.
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.
An introduction to networks and computer systems, reliable communication, layered models, distributed file systems, cryptography, concurrency issues. Prereq: One of CS 230, 241 Antireq: CS 454CS 336 cannot be counted for credit in a Computer Science Major program.
CS 337Introduction to Numerical AnalysisW,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 modem algorithms for solving mathematical problems.
Camputer 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.
The use of abstract data types in the design of data structures; efficiency dictionaries; sorting and priority queues. Techniques for designing efficient algorithms; application to problems on graphs; design of heuristics and approximate solutions to apparently intractable problems. Preraq: CS 241, C&O 230, and registration in a Computer Science Major program Antireq: CS 334
Boolean algebra. Design and analysis of both combinational and sequential circuits. Registers, counters, memory, programmabie logic. CPU control logic, the arithmetic-logic unit. input/output and interrupts. Prereq: CS 242 and registration in a Computer Science Major program Antireq: CS 358, E&CE 223
An introduction to the system software of modem 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 synchronization, primitives for concurrency control, the deadlock problem, memory management, file systems, introduction to distributed computing.
Prereq:CS 242 and registration in a Computer Science Major program
CS 360Introduction to the Theory of ComputingFLW 3C 0.5
Modeis 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.
Introduction to Scientific Computation: Numerical Linear Algebra Pitfalis in computation. Direct solution of linear algebraic systems. Iterative solution of linear algebraic systems. Least-squares compulations. \terative solution of f(x) = 0. Minimization of functions of several variables. Prereq: CS 134, MATH 235, 237 Antireq: CS 337
Introduction to Scientific Computation: Numerical Approximation Pitfalls in computation. Polynomial interpolation, Orthogonal polynomials and leastsquares approximations. Numerical integration and differentiation. Data fitting. Prereq: CS 134, MATH 235, 237, MATH 234A or 235 Antireq: CS 337
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 Antireq: CS 446CS 430 cannot be counted for credit in a Computer Science Major program.
Survey of organization and management theory. Systems theory and the systems approach. Systems design. Data base concepts. Implementation and evaluation of computer based information systems. Prereq: CS 330 and third-year standing Antireq: CS 482CS 432 cannot be counted for credit in a Computer Science Major program.
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.
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, 241, and thirdyear standing
CS 442Principles 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, Smalltalk, 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
Phases of compilation. Lexical analysis and a review of parsing. Compiler-compilers and translator writing systems. LEX and YACC. Scope rules, block 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
CS 446Software System Design and implementationW,S 3C 0.5
An investigation into the rote and function of software engineering practice in the design and implementation of computer based systems. Topics include: structurat design; procedura! design; testing and reliability; management topics; programming languages and coding; portability techniques; maintenance; performance measurement and analysis.
Prereq:CS 242, and registration in a Computer Science Major program. CS 354 is recommended
CS 448Introduction 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 sec-
ondary 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
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 242 and E&CE 223), and registration in a Computer Science Major program
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
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, local-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
CS 457Queueing 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:CS 242, STAT 231, 333, and registration in a Computer Science Major program
CS 458Design of Microprocessor-Based SystemsW,S 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 electronics, microprocessors, memory chips and systems, standard and specialized peripheral chips, development and integration systems, and case studies. Laboratory-oriented: smal! teams design and implement microprocessor-based systems.
Prereq:CS 351 and registration in a Computer Science Major program.
Languages and their 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
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
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
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
CS 476Numerical 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 CS 337 and consent of instructor, or CS 372 and consent of instructor
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 registration in a Computer Science Major program Coreq: CS 448 Antireq: CS 432
CS 486Introduction 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
CS 487Introduction te 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.
CS 488Introduction 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
CS 492The 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
CS 494Computers 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 242 and third-year standing in a Computer Science Major program