Wilfrid Laurier University  - 2001/2002 Undergraduate Academic Calendar
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