University of Toronto at Scarborough 2003/2004 Calendar
Back to Cognitive Science
Continue to CO-OPERATIVE PROGRAMS: GENERAL INFORMATION
Up to Index
Search the Calendar

(B.Sc.)
Associate Chair: V. Hadzilacos
(416-287-7256)
Computer science is the study of the use of computers to process information. The form of this information may vary widely, from the business person's records or the scientist's experimental results to the linguist's texts. One of the fundamental concepts in computer science is the algorithm -- a list of instructions that specify the steps required to solve a problem. Computer science is concerned with producing correct, efficient, and maintainable algorithms for a wide variety of applications. Closely related is the development of tools to foster these goals: programming languages for expressing algorithms; operating systems to manage the resources of a computer; and various mathematical and statistical techniques to study the correctness and efficiency of algorithms.
Theoretical computer science is also concerned with the inherent difficulty of problems that can make them intractable by computers. Numerical analysis, data management systems, computer graphics, and artificial intelligence are concerned with the applications of computers to specific problem areas.
The Specialist Program in Computer Science prepares a student for graduate study and for a professional position in the computer field.
Limited Enrolment: Because of pressures of demand for places, it has been necessary to place enrolment limits on most CSC courses and on admission to the Major and Specialist Programs. Information on how to apply for admission to a Program is given below.
Students applying at the end of their first year or later will be considered together for a total of approximately 40 places in the Specialist Program. As noted above, a GPA of 2.80 and above will guarantee acceptance (provided all required A-level courses have been satisfactorily completed).
In order to remain in the Program, a student must maintain a cumulative GPA of 2.0 or higher throughout the Program.
The courses may be taken in any order as long as the prerequisites and co-requisites are satisfied.
Many Computer Science courses are offered both at UTSC and at the downtown campus. UTSC students are expected to take courses that are offered on both campuses at UTSC. Due to current high demand for Computer Science courses, the Department of Computer Science at the downtown campus cannot guarantee space for UTSC students in their courses, especially those offered at UTSC. This means that it may not be possible for a UTSC Computer Science student to enroll at the downtown section of a course that is offered at UTSC, even in a semester when that course is not offered at UTSC.
Effective writing skills are extremely important for a computer scientist, whether employed in the public or private sector or pursuing a research or academic career. We strongly encourage all students in computer science programs to develop these skills by taking as many courses as they can in subjects of their interest in which there is a strong writing component (e.g., a course in which much of the final mark is based on essays, book reports, term papers or similar assignments). A non-exhaustive list of such courses is maintained on the Department of Computer and Mathematical Sciences web page, and is available from the Supervisor of Studies. In addition, as described in the program requirements listed below, all students in the Computer Science Specialist Program are required to take a course exploring connections between science and society (CSCD03H or, in some streams, PSCD02H) that has a significant writing component.
1. Comprehensive Stream
Supervisor: R. Pancer (416-287-7679)
This stream requires 14 FCEs.
A-level courses
| CSCA08H | Introduction to Computer Programming |
| CSCA48H | Introduction to Computer Science |
| CSCA65H | Mathematical Expression and Reasoning for Computer Science |
| MATA23H | Linear Algebra I |
| MATA30H | Calculus I (Grade 12) |
| or | |
| MATA31H | Calculus I (OAC) |
| MATA37H | Calculus II for Mathematical Sciences |
| CSCB07H | Software Design |
| CSCB09H | Software Tools and Systems Programming |
| CSCB36H | Introduction to the Theory of Computation |
| CSCB58H | Computer Organization |
| CSCB63H | Design and Analysis of Data Structures |
| MATB24H | Linear Algebra II |
| MATB41H | Techniques of the Calculus of Several Variables I |
| MATB42H | Techniques of the Calculus of Several Variables II |
| STAB52H | Introduction to Probability Theory |
C-level courses
| CSCC24H | Principles of Programming Languages |
| CSCC43H | Introduction to Databases |
| CSCC50H | Numerical Algebra and Optimization |
| CSCC51H | Numerical Approximation, Integration and Ordinary Differential Equations |
| CSCC63H | Computability and Computational Complexity |
| CSCC69H | Operating Systems |
| CSCC73H | Algorithm Design and Analysis |
| CSCC85H | Microprocessor Systems |
D-level courses
| CSCD03H | Social Impact of Information Technology |
Elective courses, all levels
One of (additional courses related to the practice of computing):
| CSCC09H | Programming on the Web |
| CSCC40H | Analysis and Design of Information Systems |
| CSCD08H | Software Engineering |
| CSCD18H | Computer Graphics |
| CSCD43H | Database System Technology |
| CSCD58H | Computer Networks |
| CSC321H | Introduction to Neural Networks and Machine Learning |
| CSC372H | Microprocessor Software |
| CSC384H | Introduction to Artificial Intelligence |
| CSC428H | Human-Computer Interaction |
| CSC454H | The Business of Software |
| CSC469H | Operating Systems Design and Implementation |
| CSC485H | Computational Linguistics |
| CSC488H | Compilers and Interpreters |
| ECE489H | Optimizing Compilers |
Two of (additional fundamental Mathematics courses):
| MATB43H | Introduction to Analysis |
| MATB44H | Ordinary Differential Equations |
| MATC01H | Groups and Symmetry |
| MATC02H | Fields and Groups |
| MATC15H | Introduction to Number Theory |
| MATC34H | Complex Variables |
| MATC35H | Chaos, Fractals and Dynamics |
One of (additional courses related to the theory of computing):
| MATB61H | Linear Programming and Optimization |
| MATC09H | Introduction to Mathematical Logic |
| MATC16H | Coding Theory and Cryptography |
| MATC32H | Graph Theory and Algorithms for its Applications |
| MATC44H | Introduction to Combinatorics |
| CSC438H | Computability and Logic |
| CSC446H | Computational Methods for Partial Differential Equations |
| CSC448H | Formal Languages and Automata |
| CSC456H | High-Performance Scientific Computing |
| CSC465H | Formal Methods in Software Design |
2. Information Systems Stream
Supervisor: R. Pancer (416-287-7679)
Note: Due to enrolment restrictions in required Management courses, registration in this stream is limited. A maximum of 20 students will be admitted annually to the second year of the Program. Selection will be based on grades in A-level courses specified for the Program with a minimum GPA of 2.5.
This stream requires 16 FCEs.
A-level courses
| CSCA08H | Introduction to Computer Programming |
| CSCA48H | Introduction to Computer Science |
| CSCA65H | Mathematical Expression and Reasoning for Computer Science |
| MATA23H | Linear Algebra I |
| MATA30H | Calculus I (Grade 12) |
| or | |
| MATA31H | Calculus I (OAC) |
| MATA37H | Calculus II for Mathematical Sciences |
| MGTA02Y | Introduction to Management |
| CSCB07H | Software Design |
| CSCB09H | Software Tools and Systems Programming |
| CSCB36H | Introduction to the Theory of Computation |
| CSCB58H | Computer Organization |
| CSCB63H | Design and Analysis of Data Structures |
| MATB24H | Linear Algebra II |
| MATB41H | Techniques of the Calculus of Several Variables I |
| MATB42H | Techniques of the Calculus of Several Variables II |
| STAB52H | Introduction to Probability Theory |
| MGTB23H | Managing People in Organizations |
| MGTB29H | Managing Groups in Organizations |
C-level courses
| CSCC24H | Principles of Programming Languages |
| CSCC40H | Analysis and Design of Information Systems |
| CSCC43H | Introduction to Databases |
| CSCC63H | Computability and Computational Complexity |
| CSCC69H | Operating Systems |
| CSCC73H | Algorithm Design and Analysis |
D-level courses
| CSCD03H | Social Impact of Information Technology |
| CSCD08H | Software Engineering |
| CSCD43H | Database System Technology |
Elective courses, all levels
One of (additional courses in scientific computing):
| CSCC36H | Numerical Methods |
| CSCC50H | Numerical Algebra and Optimization |
Two of (additional courses related to the practice of computing):
| CSCC09H | Programming on the Web |
| CSCC85H | Microprocessor Systems |
| CSCD58H | Computer Networks |
| CSC321H | Introduction to Neural Networks and Machine Learning |
| CSC372H | Microprocessor Software |
| CSC384H | Introduction to Artificial Intelligence |
| CSC465H | Formal methods in Software Design |
| CSC469H | Operating Systems Design and Implementation |
| CSC485H | Computational Linguistics |
| CSC488H | Compilers and Interpreters |
One of (additional courses related to business and computing):
| MATB61H | Linear Programming and Optimization |
| MATC61H | Introduction to Mathematical Finance |
| MGTC74H | Analysis for Decision-Making |
| CSC454H | The Business of Software |
3. Joint Mathematics Stream
Supervisor: R. Pancer (416-287-7679)
This stream requires 15 FCEs
A-level courses
| CSCA08H | Introduction to Computer Programming |
| CSCA48H | Introduction to Computer Science |
| CSCA65H | Mathematical Expression and Reasoning for Computer Science |
| MATA23H | Linear Algebra I |
| MATA30H | Calculus I (Grade 12) |
| or | |
| MATA31H | Calculus I (OAC) |
| MATA37H | Calculus II for Mathematical Sciences |
B-level courses
| CSCB07H | Software Design |
| CSCB36H | Introduction to the Theory of Computation |
| CSCB58H | Computer Organization |
| CSCB63H | Design and Analysis of Data Structures |
| MATB24H | Linear Algebra II |
| MATB41H | Techniques of the Calculus of Several Variables I |
| MATB42H | Techniques of the Calculus of Several Variables II |
| MATB43H | Introduction to Analysis |
| MATB44H | Ordinary Differential Equations |
| STAB52H | Introduction to Probability Theory |
C-level courses
| CSCC50H | Numerical Algebra and Optimization |
| CSCC63H | Computability and Computational Complexity |
| CSCC73H | Algorithm Design and Analysis |
| MATC01H | Groups and Symmetry |
| MATC34H | Complex Variables |
Elective courses, all levels
| CSCC24H | Principles of Programming Languages |
| CSCC43H | Introduction to Databases |
| CSCC69H | Operating Systems |
Four of (mathematics courses with applications in theory of computing):
| MATC02H | Fields and Groups |
| MATC09H | Introduction to Mathematical Logic |
| MATC15H | Introduction to Number Theory |
| MATC16H | Coding Theory and Cryptography |
| MATC32H | Graph Theory and Algorithms for its Applications |
| MATC44H | Introduction to Combinatorics |
Three of (additional courses in analysis -- numerical, real and complex):
| CSCC51H | Numerical Approximation, Integration and Ordinary Differential Equations |
| MATC38H | Introduction to Real Analysis |
| MATC35H | Chaos, Fractals and Dynamics |
| MATC46H | Differential Equations II |
| MATC65H | Complex Analysis II |
One of (courses in the relationship of science and society):
| PSCD02H | Current Questions in Mathematics and Science |
| CSCD03H | Social Impact of Information Technology |
4. Joint Physics Stream
Supervisor: C.C. Dyer (416-287-7206)
This stream requires 16.5 FCEs
A-level courses
| CSCA08H | Introduction to Computer Programming |
| CSCA48H | Introduction to Computer Science |
| CSCA65H | Mathematical Expression and Reasoning for Computer Science |
| MATA23H | Linear Algebra I |
| MATA30H | Calculus I (Grade 12) |
| or | |
| MATA31H | Calculus I (OAC) |
| MATA37H | Calculus II for Mathematical Sciences |
| PHYA10H | Dynamics of Classical Systems |
| PHYA21H | Principles of Modern Physics |
B-level courses
| CSCB07H | Software Design |
| CSCB09H | Software Tools and Systems Programming |
| CSCB36H | Introduction to the Theory of Computation |
| CSCB58H | Computer Organization |
| CSCB63H | Design and Analysis of Data Structures |
| MATB24H | Linear Algebra II |
| MATB41H | Techniques of the Calculus of Several Variables I |
| MATB42H | Techniques of the Calculus of Several Variables II |
| MATB44H | Ordinary Differential Equations |
| STAB52H | Introduction to Probability Theory |
| PHYB20H | Vibrations and Waves |
| PHYB21H | Electricity and Magnetism |
| PHYB23H | Physics Laboratory |
| PHYB24H | Introduction to Quantum Physics |
| PHLB70H | Philosophy of Science |
| PSCB01H | The Instrumentation of Science |
C-level courses
| CSCC50H | Numerical Algebra and Optimization |
| CSCC51H | Numerical Approximation, Integration and Ordinary Differential Equations |
| CSCC63H | Computability and Computational Complexity |
| CSCC73H | Algorithm Design and Analysis |
| CSCC85H | Microprocessor Systems |
| PSCC01H | Physical Principles of Modern Technology |
Elective courses, all levels
One of (additional courses in computer systems):
| CSCC24H | Principles of Programming Languages |
| CSCC43H | Introduction to Databases |
| CSCC69H | Operating Systems |
One of (additional courses in Physics): any 300-level or higher PHY course on the St. George campus
One of (additional courses in the relationship between science and society):
| PSCD02H | Current Questions in Mathematics and Science |
| CSCD03H | Social Impact of Information Technology |
5. Joint Statistics Stream
Supervisor: M. Evans (416-287-7274)
This stream requires 13 FCEs.
A-level courses
| CSCA08H | Introduction to Computer Programming |
| CSCA48H | Introduction to Computer Science |
| CSCA65H | Mathematical Expression and Reasoning for Computer Science |
| MATA23H | Linear Algebra I |
| MATA30H | Calculus I (Grade 12) |
| or | |
| MATA31H | Calculus I (OAC) |
| MATA37H | Calculus II for Mathematical Sciences |
B-level courses
| CSCB07H | Software Design |
| CSCB36H | Introduction to the Theory of Computation |
| CSCB58H | Computer Organization |
| CSCB63H | Design and Analysis of Data Structures |
| MATB24H | Linear Algebra II |
| MATB41H | Techniques of the Calculus of Several Variables I |
| MATB42H | Techniques of the Calculus of Several Variables II |
| STAB52H | Introduction to Probability Theory |
| STAB57H | Introduction to Mathematical Statistics |
C-level courses
| CSCC50H | Numerical Algebra and Optimization |
| CSCC51H | Numerical Approximation, Integration and Ordinary Differential Equations |
| CSCC63H | Computability and Computational Complexity |
| CSCC73H | Algorithm Design and Analysis |
Elective courses, all levels
One of (additional Mathematics courses):
| MATB43H | Introduction to Analysis |
| MATB44H | Ordinary Differential Equations |
| MATB61H | Linear Programming and Optimization |
| MATC01H | Groups and Symmetry |
| MATC15H | Introduction to Number Theory |
| MATC34H | Complex Variables |
| PSCB20H | Chaos and Fractals |
One of (additional courses in computer systems):
| CSCC24H | Principles of Programming Languages |
| CSCC43H | Introduction to Databases |
| CSCC69H | Operating Systems |
Four of (additional courses in statistics and related topics):
| any C-level STA course | |
| any 300- or 400- STA course on the St. George campus | |
| MATC61H | Introduction to Mathematical Finance |
One of (additional courses in the relationship between science and society):
| PSCD02H | Current Questions in Mathematics and Science |
| CSCD03H | Social Impact of Information Technology |
6. Software Engineering Stream
Supervisor: R. Pancer (416-287-7679)
This stream requires 14 FCEs
A-level courses
| CSCA08H | Introduction to Computer Programming |
| CSCA48H | Introduction to Computer Science |
| CSCA65H | Mathematical Expression and Reasoning for Computer Science |
| MATA23H | Linear Algebra I |
| MATA30H | Calculus I (Grade 12) |
| or | |
| MATA31H | Calculus I (OAC) |
| MATA37H | Calculus II for Mathematical Sciences |
B-level courses
| CSCB07H | Software Design |
| CSCB09H | Software Tools and Systems Programming |
| CSCB36H | Introduction to the Theory of Computation |
| CSCB58H | Computer Organization |
| CSCB63H | Design and Analysis of Data Structures |
| MATB24H | Linear Algebra II |
| MATB41H | Techniques of the Calculus of Several Variables I |
| MATB42H | Techniques of the Calculus of Several Variables II |
| STAB52H | Introduction to Probability Theory |
C-level courses
| CSCC24H | Principles of Programming Languages |
| CSCC40H | Analysis and Design of Information Systems |
| CSCC43H | Introduction to Databases |
| CSCC63H | Computability and Computational Complexity |
| CSCC69H | Operating Systems |
| CSCC73H | Algorithm Design and Analysis |
D-level courses
| CSCD03H | Social Impact of Information Technology |
| CSCD08H | Software Engineering |
Elective courses, all levels
One of (additional courses in scientific computing):
| CSCC36H | Numerical Methods |
| or | |
| CSCC50H | Numerical Algebra and Optimization |
Four of (additional courses in the practice of computing):
| CSCC09H | Programming on the Web |
| CSCC85H | Microprocessor Systems |
| CSCD18H | Computer Graphics |
| CSCD43H | Database System Technology |
| CSCD58H | Computer Networks |
| CSC469H | Operating Systems Design and Implementation |
| CSC488H | Compilers and Interpreters |
NOTE:
300-series and 400-series must be completed at the St. George campus. Consult the Department of Computer Science Undergraduate Handbook or consult the web site http://www.cs.utoronto.ca
Co-ordinator: R. Louden (416-287-7254)
The Co-operative Program in Computer Science is a work-study Program which combines academic studies in Computer Science with work terms in public and private enterprises. The Program prepares students for direct employment as a computer professional as well as for graduate study in Computer Science. For information on admissions, fees, work terms and standing in the Program, please see Co-operative Programs: General Information on page 71.
Work Terms
Students who entered the Program in 2001/2002 or later, must complete three work terms along with the academic Program. Students who entered before 2001/2002, must complete two work terms, with an optional third work term with permission of the Co-ordinator. Students must complete the Introduction to Co-op Tutorial before going on their first work term. Students are not permitted to complete more than one summer work term.
Course Requirements
The Co-operative Program can be taken in conjunction with any of the streams in the Specialist Program in Computer Science. Please refer to the description of the Specialist Program in Computer Science. The courses may be taken in any order as long as the prerequisites and co-requisites are satisfied.
NOTE: Each student's program requires the annual approval of the Supervisor of Studies.
Students are individually responsible to ensure that they have correctly completed program and degree requirements for graduation.
Admission to the Program
Each year up to 30 students are admitted to the second year of the Program, based on their first year GPA and marks in first-year courses in Computer Science and Mathematics. The minimum GPA to guarantee admission is calculated annually. It is never less than 2.00 and for 2003 it will not be greater than 2.80.
This program requires 8 FCEs.
The courses may be taken in any order as long as the prerequisites and co-requisites are satisfied.
Many Computer Science courses are offered both at UTSC and at the downtown campus. UTSC students are expected to take courses that are offered on both campuses at UTSC. Due to current high demand for Computer Science courses, the Department of Computer Science at the downtown campus cannot guarantee space for UTSC students in their courses, especially those offered at UTSC. This means that it may not be possible for a UTSC Computer Science student to enrol at the downtown section of a course that is offered at UTSC, even in a semester when that course is not offered at UTSC.
Effective writing skills are extremely important for a computer scientist, whether employed in the public or private sector or pursuing a research or academic career. We strongly encourage all students in computer science programs to develop these skills by taking as many courses as they can in subjects of their interest in which there is a strong writing component (e.g., a course in which much of the final mark is based on essays, book reports, term papers or similar assignments). A non-exhaustive list of such courses is maintained on the Department of Computer and Mathematical Sciences web page, and is available from the Supervisor of Studies.
A-level courses
| CSCA08H | Introduction to Computer Programming |
| CSCA48H | Introduction to Computer Science |
| CSCA65H | Mathematical Expression and Reasoning for Computer Science |
| MATA23H | Linear Algebra I |
| MATA30H | Calculus I (Grade 12) |
| or | |
| MATA31H | Calculus I (OAC) |
| MATA37H | Calculus II for Mathematical Sciences |
B-level courses
| CSCB07H | Software Design |
| CSCB36H | Introduction to the Theory of Computation |
| CSCB58H | Computer Organization |
| CSCB63H | Design and Analysis of Data Structures |
| MATB24H | Linear Algebra II |
| STAB52H | Introduction to Probability Theory |
Elective courses, all levels
One of (additional courses in the practice of computing):
| CSCC09H | Programming on the Web |
| CSCC24H | Principles of Programming Languages |
| CSCC40H | Analysis and Design of Information Systems |
| CSCC43H | Introduction to Databases |
| CSCC69H | Operating Systems |
| CSCC85H | Microprocessor Systems |
| CSCD18H | Computer Graphics |
One of (additional courses in scientific computing):
| CSCC36H | Numerical Methods |
| CSCC50H | Numerical Algebra and Optimization |
One of (additional courses in the theory of computing):
| CSCC63H | Computability and Computational Complexity |
| CSCC73H | Algorithm Design and Analysis |
One of (additional courses in mathematics):
| MATB41H | Techniques of the Calculus of Several Variables I |
| MATB61H | Linear Programming and Optimization |
| MATC09H | Introduction to Mathematical Logic |
| MATC32H | Graph Theory and Algorithms for its Applications |
| MATC16H | Coding Theory and Cryptography |
| MATC44H | Introduction to Combinatorics |
NOTE: This course is intended for students with no prior exposure to computer programming. Students who have sufficient programming experience may enrol directly in CSCA48H; consult the instructor or the Supervisor of Studies for guidance.
This course may not be taken after or concurrently with CSCA48H, but may be taken after CSCA02H.
NOTE:
This course assumes programming experience in an object-oriented language such as C++ or Java, as provided by CSCA08H. Students who already have this background may consult the instructor or Supervisor of Studies for advice about skipping CSCA08H. Students who enroll in CSCA48H and find the course too difficult may "drop down" to CSCA08H in terms when CSCA08H is offered. The deadline for "dropping down" is the end of the fifth week of classes.
Core topics: creating and using software tools, pipes and filters, file processing, shell programming, processes, system calls, signals, basic network programming.
Exclusion: CSC209H
Prerequisite: [CSCB07H or (CSCB70H)] & [CGPA 2.5 or enrolment in a CSC subject POSt]

Laboratory experiments will provide hands-on experience.
Limited enrolment: 100
Exclusion: ECE385H
Prerequisite: CSCB58H & [CGPA 3.0 or enrolment in a CSC subject POSt]
Enrolment procedures: Project supervisor's note of agreement must be presented to the Supervisor of Studies, who must issue permission for registration.
If an exception is made allowing a second project on a topic closely related to the topic of an earlier project, higher standards will be applied in judging it. We expect that a student with the experience of a first project completed will be able to perform almost at the level of a graduate student.
Students must obtain consent from the Supervisor of Studies before registering for this course.
Exclusion: CSC495H
Prerequisite: CSCD94H
University of Toronto at Scarborough 2003/2004 Calendar
Back to Cognitive Science
Continue to CO-OPERATIVE PROGRAMS: GENERAL INFORMATION
Up to Index
Search the Calendar