Faculty of Science
CP102 Information Processing with Microcomputer Systems 0.5 |
An introduction to the concepts of microcomputer hardware and software applications in a hands-on environment. Examples are based on the needs of students in the arts and sciences and are intended to give background knowledge and experience in the use of the microcomputer as a tool for many different applications. Topics include the history of technological innovation in microcomputer systems, design and operation, input/output devices, storage media and techniques, communications, operating systems, word processors, spreadsheets, statistics packages, computer-aided design and drawing, database management and system utilities. |
Exclusion: BU115, BU155; registration in BA or BSc programs in Computing or Physics; CS100 (University of Waterloo). |
3 lecture hours, 3 lab. hours |
CP104 Introduction to Programming 0.5 |
An introductory course designed to familiarize the student with modern software development techniques. Emphasis is on problem-solving and structured program design methodologies. Programming projects are implemented in a widely used high-level language. (It is strongly recommended that students have at least one OAC mathematics or science course.) (This course may be "challenged for credit".) |
3 lecture hours, 3 lab. hours |
CP114 Data Structures I 0.5 |
Introduction to analysis of algorithms, data structures, recursion, searching, sorting, linked lists, queues, stacks, trees. |
Prerequisite: CP104. |
3 lecture hours, 3 lab. hours |
CP120 Digital Electronics 0.5 |
(Cross-listed as PC120.) |
CP200º Electronics Laboratory I 0.25 |
(Cross-listed as PC200º.) |
CP211 File Structures and Processing 0.5 |
A comprehensive study of commercial data processing principles, including design strategies, documentation techniques, file structures and access methods. Programming projects are implemented in a widely used file processing language such as COBOL. |
Prerequisite: CP114. |
CP213 Introduction to Object-oriented Programming **NEW** 0.5 |
Fundamentals of object-oriented programming, classes, subclasses, inheritance, references, overloading, event-driven and concurrent programming, using modern application programming interface. The language Java will be used. |
Prerequisite: CP114. |
CP216 Microprocessor I 0.5 |
A comprehensive study of computer organization and microprocessor design. A modern microprocessor such as the SUN picoJava processor, is used as an example for a complete design of a working processor, which includes microarchitecture design, microprogramming and instruction set implementation. Other commercial processors such as Intel Pentium and SUN UltraSPARC will also be studied. |
Prerequisite: CP120/PC120 and CP114. |
CP225 Introduction to Scientific Computation 0.5 |
An introduction to scientific computation, with substantial use of scientific modelling software. Problems from different disciplines and the computational tools needed to solve them are considered. Topics include: computer representation of numbers, scientific models, visualization tools, an introduction to some numerical methods. (Cross-listed as PC225.) |
Prerequisite: CP104, MA103 and MA104, or permission of the department. |
CP264 Data Structures II 0.5 |
A continuation of the study of data structures and their applications. Abstract Data Types, heaps, binary search trees, balanced search trees. Hashing, collision-avoidance strategies. Basic algorithmic analysis, big "O" and little "o" notation. |
Prerequisite: CP114. |
CP300º Electronics Laboratory II 0.25 |
(Cross-listed as PC300º.) |
CP312 Algorithm Design and Analysis I 0.5 |
Analysis of the best, average, and worse case behaviors of algorithms. Algorithmic strategies: brute force algorithms, greedy algorithms, divide-and-conquer, branch and bound, backtracking. Fundamental computing algorithms: O(n log n) sorting, hash table, binary trees, depth- and breadth-first search of graphs. |
Prerequisite: CP264. |
CP316 Microprocessor II 0.5 |
Software Architecture of the 80x86 family, registers, address generation, 8086 Assembly Language, DEBUG, MASM, addressing modes, program structure, directives, modifiers. Computer hardware: Programmable Keyboard/Display Controller, Programmable Peripheral Interface, Programmable Communication Interface, Priority Interrupt Controller, Programmable Interval Timer. |
Prerequisite: CP200º, CP216, CP300º. |
3 lecture hours, 3 lab. hours |
CP317 Software Engineering 0.5 |
Discussion of software development activities, including software process models, analysis, design, implementation, testing, project management and advanced topics. Both traditional and object-oriented methods are considered. |
Prerequisite: CP264 or permission of the department. |
Exclusion: CP417. |
CP363 Database I 0.5 |
Introduction to database systems. Topics include data models, query languages, database design, recovery and concurrency, integrity and security. |
Prerequisite: CP264 or permission of the department. |
CP364 Technical Aspects of Data Communications 0.5 |
Data communications concepts, with an emphasis on the physical layer. Topics include transmission media, digital data transmission, the evolving digital telephone network and standards organizations. |
Prerequisite: CP104, PC210, PC211. |
3 lecture hours, 1 biweekly tutorial hour |
CP372 Computer Networks **NEW** 0.5 |
Introduction to computer communication networks. The OSI reference model. Protocols for error and flow control. Medium access protocols. Routing and congestion control. Internet architecture and protocols. Unix network programming. |
Prerequisite: CP264. Recommended background: CP364. |
CP400 Special Topics 0.5 |
A detailed examination of a field or topic of interest not covered by the regular program. |
Prerequisite: Permission of the department. |
Irregular course |
CP411 Computer Graphics 0.5 |
The principles, algorithms and techniques of computer graphics. Topics include introduction to graphics hardware, output primitives, two- and three-dimensional geometric transformations, three-dimensional object representation and viewing, illumination models and surface-rendering methods. Graphics software tools will be introduced in this course. |
Prerequisite: CP264, MA122 (or permission of the department). |
CP412 Algorithm Design and Analysis II **NEW** 0.5 |
A continuation of the study of computer algorithms. Amortized analysis, online and off-line algorithms, randomized algorithms, dynamic programming. |
Prerequisite: CP312, MA238. |
CP414 Foundations of Computing **NEW** 0.5 |
Deterministic and nondeterministic finite automata (DFAs and NFAs), regular expressions, context-free grammars, relationship of push-down automata and context-free grammars, definition of the classes P and NP, NP-completeness (Cook's theorem), standard NP-complete problems, reduction techniques, Turing machines. The halting problem. |
Prerequisite: CP312, MA238. |
CP460 Applied Cryptography **NEW** 0.5 |
Algorithms and issues in applied cryptography. Topics include history of cryptography, block ciphers, stream ciphers, public-key encryption, digital signatures and key management. Also, discussions of current issues in information security. |
Prerequisite: CP264, MA121, MA122. |
CP463 Simulation 0.5 |
Discrete and continuous simulations, queuing theory. |
Prerequisite: MA240 (or equivalent) and permission of the department. |
CP464 Selected Topics in Computer Hardware 0.5 |
Topics may include computer classes and evolution, instruction set design, hardwired sequencer design, microprogramming, memory hierarchies, concurrency, multiple-processor systems and fault-tolerant systems. Students will be required to design and build a computer, including the design of the instruction set and the control unit. |
Prerequisite: CP316. |
CP466 Operating Systems 0.5 |
Topics include operating system services, file systems, CPU scheduling, memory management, virtual memory, disk scheduling, deadlocks, concurrent processes, protection and distributed systems. |
Prerequisite: CP216, CP264. |
CP467 Computer Vision and Image Processing 0.5 |
Introduction to vision systems for image acquisition and display. Comprehensive coverage of image enhancement, segmentation, feature extraction and classification. |
Prerequisite: MA240 (or equivalent), CP264. |
CP468 Artificial Intelligence 0.5 |
Examination of current concepts and techniques in artificial intelligence and machine learning. Topics include knowledge representation, automated reasoning, machine learning and knowledge-based systems. Extensive use of case studies and current applications. |
Prerequisite: CP264 or permission of the department. |
CP476 Internet Computing **NEW** 0.5 |
The architecture of the Internet. Client-server programming, technologies of the Web (URLs, HTML, HTTP, applets, etc.) Introduction to building Web application and server-side programming. |
Prerequisite: CP363, CP372. |
CP493 Directed Research Project I **NEW** 0.5 |
An in-depth investigation of a computer science subject under faculty supervision, including the submission of a formal report. |
Prerequisite: Permission of the department. |
CP494 Directed Research Project II **NEW** 0.5 |
An in-depth investigation of a computer science subject under faculty supervision, including the submission of a formal report. |
Prerequisite: Permission of the department. |
Faculty of Science Faculty of Science – Departments, Programs and Courses Physics and Computing Computing |
Official electronic version updated on February 4, 2002