CR: Curriculum Changes April 2012
Update on Curriculum Reinvention Committee
- We reviewed the ACM Curriculum Recommendations and discussed to what extent our curriculum aligned with it, particularly in third and fourth year. Our proposed changes are largely focused on addressing the weaknesses that we found.
- We spent a lot of time discussing 3004. Currently J.-P. and Christine are making changes to reduce its workload in a way that does not require calendar changes.
- We spent a lot of time discussing 1405 and 1406 as an ongoing concern. We have been trying to figure out their learning objectives, whether students should be allowed to place out of 1405, and what language should be covered in the courses. There will be two new versions of 1405 being taught this fall (by David and Pat), using Processing and Python. We plan to revisit 1405 after the new, experimental versions have been taught.
Proposed Course Description Changes
3000: Operating Systems
- Old: Operating Systems - A first course in operating systems stressing fundamental issues in design: process management; memory management; process co-ordination and synchronization; interprocess communication; real-time clock management; i/o device drivers; file systems; frame-level network communication. Assignments involve the use, modification, and extension of a multitasking operating system.
Precludes additional credit for SYSC 3001. Prerequisites: one of COMP 2402, COMP 2002 or SYSC 2002, and one of COMP 2003 or SYSC 2003.
- New: Operating Systems and Computer Architecture - Operating system implementation course stressing fundamental issues in design and how they relate to modern computer architectures. Assignments involve the modification and extension of a multitasking operating system.
Precludes additional credit for SYSC 3001. Prerequisites: COMP 2401, one of COMP 2402, COMP 2002 or SYSC 2002.
- Rationale: Operating systems has been covering basic computer architecture for some time. Additionally Operating Systems is moving towards being an advanced course for those with an interest in the area. (Basic OS concepts will now be covered in 2401 and 2406.) New course description fits with the more advanced material that will be presented when OS is not required for all students.
3007: Programming Paradigms
- Old: An introduction to functional and logic programming. Topics include: semantics of functional programming, assignment-free programming, the meta-circular interpreter, recursive functions, Prolog, backtracking, cutting, negation.
- New: An introduction to alternative programming methodologies. Topics may include functional, constraint-based, concurrent, and logic programming.
- Rationale: The new description is higher-level and more open ended to permit experimentation with course content. In particular, there is the possibility of Prolog and Scheme being replaced with more modern languages, with the emphasis changing to functional programming in the context of multicore and distributed systems. This change would probably preclude significant coverage of logic programming. Note that such a course remains to be developed.
Computer Graphics
- Draft Course Description: An overview of computer graphics covering rendering, modeling, and animation. Topics: geometric primitives (points, lines, polygons, splines, and NURBS surfaces); image formation algorithms including raytracing, radiosity, and the Z-buffer; lighting, shading, color, and texture. Introduction to physics-based animation and character animation.
- Rationale: We do not have a standard computer graphics course at the 3rd or 4th year, a major area of computer science and in the ACM CS curriculum. This course is not scheduled for 2012/2013 academic year; however, both David and Doron have expressed interest in teaching it.
Honours Math
- Old: Currently we require MATH 1007, MATH 1104 and .5cr MATH 2000+
- New: MATH 1007, MATH 1104 and .5cr MATH 2000+ or MATH 1002 and MATH 1104 or MATH 1007 and MATH 1102
- Rationale: MATH 1002 and 1102 are completely rigorous, 1.0cr math courses. The second half of one of these courses is as valuable to our students as a random second year course. If students want to do both 1002 and 1102, that's taken care of by our general course equivalencies: 1002 is acceptable as a substitute for 1007, and similarly 1102/1104.