Faculty of Mathematics Page No. 1 NEW COURSES (for approval) Computer Science - School of CS 137 ( 0.50 ) LAB, LEC, TST, TUT Programming Principles Review of fundamental programming concepts and their application. Procedures and parameter passing. Arrays and structures. Recursion. Sorting. Pointers and simple dynamic structures. Space and time analysis of designs. Design methodologies. [Offered: F] Prereq: Software Engineering students only To add new course. As of September 2008, Computer Science will no longer be offering CS 133 or CS 134, both of which are core courses in the SE program. The Software Engineering Curriculum Committee created a task force to consider the options available to SE and to make recommendations. As a result, CS will create two new courses: CS 137 and CS 138 which will replace CS 133 and CS 134 in the Software Engineering curriculum. Like the existing courses, the new courses cover fundamental computer science and programming concepts. The programming languages and content were selected to meet the specific needs of Software Engineering students, who are required to have experience in developing well-structured programs prior to admission, while providing the background assumed by second-year Computer Science courses. CS 138 ( 0.50 ) LAB, LEC, TST, TUT Functional Programming and Data Abstraction An introduction to software abstractions via elementary programming patterns and abstract data types. Syntax and semantics of a functional programming language. Recursive data definitions. Functional abstraction and encapsulation. Study of lists, stacks, queues, trees as abstract data types. Appropriate choice of abstract data types and their implementations. [Offered: W] Prereq: CS 137 To add new course. Rationale same as CS 137. COURSE CHANGES (for approval) CS 100 ( 0.50 ) LAB, LEC, TST Introduction to Computer Usage Introduction to using personal computer hardware and software. Using personal computers as effective problem solving tools for the present and the future. Experience with common application software including word processing, spreadsheets, database management, and electronic communications. Exposure to the Internet and World Wide Web. Programming principles to support the understanding of application
Faculty of Mathematics Page No. 2 software. [Offered: F,W,S] Prereq: Not open to Honours Mathematics students. Antireq: OAC Computer Science or 4M Computer and Information Science or any University of Waterloo Computer Science course, CHE 121, ECE 150, GENE 121, PHYS 239 Prereq: Not open to Mathematics students. Antireq: 4M Computer and Information Science or any University of Waterloo Computer Science course, CHE 121, ECE 150, GENE 121, PHYS 139 To change prerequisite and antirequisite. To change the prerequisite to exclude General Mathematics students. As currently written, this course counts towards a Mathematics Minor or Pure Mathematics Minor for students in other faculties, as this is a course that qualifies for a BMath degree. This change will close up that loophole. Science at May SUC advised us that the antirequisite of PHYS 239 should be changed to PHYS 139. Row on for September 1/08. CS 115 ( 0.50 ) LAB, LEC, TST, TUT Introduction to Computer Science 1 An introduction to the fundamentals of computer science through the application of elementary programming patterns in the functional style of programming. Function definition and application. Tracing via substitution. Design, testing, and documentation. Recursive data definitions. Lists and trees. Functional and data abstraction.[note: See Note 2 above. Also offered at St. Jerome's University in the Fall term. Offered: F,W,S] Also offered at St. Jerome's University Antireq: CS 120, 121, 122, 123, 125, 130, 131, 132, 133, 135, 137, 138, 145, CHE 121, CIVE 121, ECE 150, GENE 121, PHYS 139, SYDE 121 To change antirequisite. Result of new courses (CS 137/138). Row already on for September 1/07. CS 116 ( 0.50 ) LAB, LEC, TST, TUT Introduction to Computer Science 2 This course builds on the techniques and patterns learned in CS 115 while making the transition to use of an imperative language. Generative and structural recursion. Mutation (assignment) and its role in an imperative language. Primitive types and basic I/O. Sequencing, selection, looping. Function definition and use. File and console I/O. Issues in computer science. [Also offered at St. Jerome's University in the Winter term. Offered: F,W,S] Also offered at St. Jerome's University Prereq: CS 115 or 135. Antireq: CS 126/124/114, 134, 136, 137, 138, 145, 212 To change antirequisite. Result of new CS courses (CS 137/138). Row already on for September 1/07.
Faculty of Mathematics Page No. 3 CS 123 ( 0.50 ) LAB, LEC, PRA, TST Developing Programming Principles Review of fundamental programming concepts and their application in Java. Arrays of simple types. Objects: encapsulation, instantiation, declaration and use, exceptions. Practical programming: design and life-cycle issues. Arrays of objects. Libraries and interactive programming. [Offered: F] Only offered by Distance Education Prereq: CS 112 or Grade 11 or 12 or OAC Computer Science or 4M Computer and Information Science; Not open to Honours Mathematics students. Antireq: CS 113, 121, 122, 125, 130, 131, 132, 133, 135 Prereq: CS 112 or 4M Computer and Information Science; Not open to Honours Mathematics students. Antireq: CS 113, 121, 122, 125, 130, 131, 132, 133, 135, 137, 138, 145 To change antirequisite. Result of new CS courses (CS 137/138/145). CS 145 arppoved at June SUC. Row already on for September 1/07. CS 126 ( 0.50 ) LEC, PRA, TST Introduction to Software Development 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. [Offered: F] Only offered by Distance Education Prereq: CS 122 or 123/113 or 125 or 132 or 133/130; Not open to Honours Mathematics students. Antireq: CS 124/114, 134, 136, 212 Prereq: CS 122 or 123/113 or 125 or 132 or 133/130; Not open to Honours Mathematics students. Antireq: CS 124/114, 134, 136, 137, 138, 145, 212 To change antirequisite. Result of new CS courses (CS 137/138/145). CS 145 approved at June SUC. Row already on for September 1/07. CS 135 ( 0.50 ) LAB, LEC, TST, TUT Designing Functional Programs An introduction to the fundamentals of computer science through the application of elementary programming patterns in the functional style of programming. Syntax and semantics of a functional programming language. Tracing via substitution. Design, testing, and documentation. Linear and nonlinear data structures. Recursive data definitions. Abstraction and encapsulation. Generative and structural recursion. Historical context. [Note: See Note 2 above. Offered: F,W,S] Prereq: Honours Mathematics students only. Antireq: CS 120, 121, 122, 123, 125, 130, 131, 132, 133, 134, CHE 121, CIVE 121, ECE 150, GENE 121, PHYS
Faculty of Mathematics Page No. 4 239, SYDE 121 Antireq: CS 115, 120, 121, 122, 123, 125, 130, 131, 132, 133, 134, 137, 138, 145, CHE 121, CIVE 121, ECE 150, GENE 121, PHYS 239, SYDE 121 To change antirequisite. Result of new CS courses (CS 137/138). Row already on for September 1/07. CS 136 ( 0.50 ) LAB, LEC, TST, TUT Elementary Algorithm Design and Data Abstraction This course builds on the techniques and patterns learned in CS 135 while making the transition to use of an imperative language. It introduces 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; abstract data types and their implementations. [Note: See Note 2 above. Offered: F,W,S] Prereq: CS 135; Honours Mathematics students only. Antireq: CS 134 Prereq: CS 116 or a mark of at least 60 in CS 135. Antireq: CS 134, 137, 138, 145 To change antirequisite. Result of new CS courses (CS 137/138). Row already on for September 1/07. CS 145 ( 0.50 ) LAB, LEC, TST, TUT Design, Abstraction, and Implementation CS 145 is an advanced-level course that combines CS 135 and 136. [Note: See Note 2 above. Offered: F] Department Consent Required Antireq: CS 134, 136, 137, 138 To change antirequisite. Result of new courses CS 137/138. Row already on for September 1/07. CS 230 ( 0.50 ) LAB, LEC, TST, TUT Introduction to Computers and Computer Systems Basic computer architecture, operating system services, and programming languages in support of development of software systems. [Note: Lab is not scheduled and students are expected to find time in open hours to complete their work. Offered: W] Prereq: CS 126/124/114 or 134 or 136; Not open to Computer Science students. Antireq: CS 241 Prereq: CS 126/124/114 or 116 or 134 or 136 or 138 or 145; Not open to Computer Science students. Antireq: CS 241 To change prerequisite. Result of new course CS 138 and new courses (CS 116/145) which were approved at June SUC.
Faculty of Mathematics Page No. 5 CS 234 ( 0.50 ) LAB, LEC, TST Data Types and Structures 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. [Note: Lab is not scheduled and students are expected to find time in open hours to complete their work. Offered: F,S] Prereq: CS 126/124/114 or 134 or 136; Not open to Computer Science students. Antireq: CS 240, 334 Prereq: CS 126/124/114 or 116 or 134 or 136 or 138 or 145; Not open to Computer Science students. Antireq: CS 240, 334 To change prerequisite. Result of new course CS 138 and new courses (CS 116/145) which were approved at June SUC. CS 241 ( 0.50 ) LAB, LEC, TST, TUT Foundations of Sequential Programs 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. [Note: Enrolment is restricted; see Note 1 above. Lab is not scheduled and students are expected to find time in open hours to complete their work. CS 251 is a recommended corequisite. Offered: F,W,S] Prereq: CS 134 or 136; Honours Mathematics or Software Engineering students only. Antireq: CS 230, GENE 344 Prereq: CS 134 or 145 or a mark of 60 or higher in 136 or 138; Honours Mathematics or Software Engineering students only. Antireq: CS 230, GENE 344 To change prerequisite. Result of new course CS 138. Row already on for September 1/07. CS 245 ( 0.50 ) LEC, TST, TUT Logic and Computation Formal logic. Proof systems and styles. Rudimentary model theory. Logic-based specification. Reasoning about programs. Correctness proofs. [Note: Enrolment is restricted; see Note 1 above. Offered: F,W,S] Prereq: CS 134 or 136; Computer Science students only. Antireq: PMATH 330, SE 112 Prereq: CS 134 or 136 or 138 or 145; Computer Science students only. Antireq: PMATH 330, SE 112 To change prerequisite. Result of new course CS 138. Row already on for September 1/07.
Faculty of Mathematics Page No. 6 CS 251 ( 0.50 ) LAB, LEC, TST Computer Organization and Design Overview of computer organization and performance. Basics of digital logic design. Combinational and sequential elements. Data representation and manipulation. Basics of processor design. Pipelining. Memory hierarchies. Multiprocessors. [Note: Students enrolled in CS/DHW should enrol in ECE 222. Enrolment is restricted; see Note 1 above. Lab is not scheduled and students are expected to find time in open hours to complete their work. Offered: F,W,S] Prereq: CS 134 or 136; Computer Science students only. Antireq: ECE 222, PHYS 353, SE 141 Prereq: CS 134 or 136 or 138 or 145; Computer Science students only. Antireq: ECE 222, PHYS 353, SE 141 To change prerequisite. Result of new course CS 138. Row already on for September 1/07. CS 330 ( 0.50 ) LEC Management Information Systems 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. [Offered: F,W,S] Prereq: CS 126/124/114 or 134 or 136; Level at least 2B; Not open to Computer Science students. Antireq: AFM/ACC 241, CS 480/490, MSCI 441 Prereq: CS 126/124/114 or 116 or 134 or 136 or 138 or 145; Level at least 2B; Not open to Computer Science students. Antireq: AFM 241, CS 480/490, MSCI 441 To change prerequisite and delete reference to ACC 241 in antirequisite. Result of new course (CS 138) and new courses (CS 116/145) that were approved at June SUC. CS 360 ( 0.50 ) LEC Introduction to the Theory of Computing Models of computers including finite automata and Turing machines. Basics of formal languages with applications to the syntax of programming languages. Alternate characterizations of language classes. Proving unrecognizability. Unsolvable problems and their relevance to the semantics of programming. [Note: Enrolment is restricted; see Note 1 above. Offered: F,W,S] Prereq: (CS 240 or SE 240), CS 241, (MATH 239/249 or CO 103); Computer Science students only. Antireq: CS 365 Prereq: (CS 240 or SE 240), CS 241, (CS 245 or SE 112), (MATH 239/249 or CO 103); Computer Science students only. Antireq: CS 365 To change prerequisite. Since the content of CS 245 or SE 112 is required for mastering this course.
Faculty of Mathematics Page No. 7 CS 365 ( 0.50 ) LAB, LEC Models of Computation Finite automata and regular expressions. Pushdown automata and context-free grammars. Turing machines and undecidability. Time and space complexity. Diagonalization and hierarchies. CS 365 covers the material in CS 360 at an accelerated pace plus additional topics in computational complexity. [Note: CS 365 may be substituted for CS 360 in any degree plan or for prerequisite purposes; enrolment is restricted; see Note 1 above. Offered: W] Prereq: CS 240, 241, MATH 239/249; Computer Science students only. Antireq: CS 360 Prereq: CS 240, 241, 245, MATH 239/249; Computer Science students only. Antireq: CS 360 To change prerequisite. The content of CS 245 is required for mastering this course. CS 486 ( 0.50 ) LAB, LEC Introduction to Artificial Intelligence Goals and methods of artificial intelligence. Methods of general problem solving. Introduction to mathematical logic. Mechanical theorem proving. Game playing. Natural language processing. [Note: Lab is not scheduled and students are expected to find time in open hours to complete their work. Offered: F,W,S] Description Change: Prereq: (CS 341/CM 339 or SE 240) and (CS 350 or 354 or ECE 354); Computer Science students only. Coreq: STAT 206 or 231/241. Antireq: ECE 457 Goals and methods of artificial intelligence. Methods of general problem solving. Knowledge representation and reasoning. Planning. Reasoning about uncertainty. Machine learning. Multi-agent systems. Natural language processing. [Note: Lab is not scheduled and students are expected to find time in open hours to complete their work. Offered: F,W,S] Prereq: CS 341/CM 339 or SE 240; Computer Science students only. Coreq: STAT 206 or 231/241. Antireq: ECE 457 To change course description and prerequisite. The calendar description for the course has become badly out of date. The new description reflects what is currently being taught in the course across all sections and instructors. The prerequisite of (CS 350/354 or ECE 354) is a maturity prerequisite, no material taught in CS 350 is actually used in CS 486. The instructors feel that the prerequisite of (CS 341/CM 339 or SE 240), which is a true prerequisite, already accomplishes this goal. The CS 350 prerequisite unnecessarily restricts student choice of when to take AI without any corresponding benefit. End of Report