SPECIALIST PROGRAM IN COMPUTER SCIENCE (SCIENCE)

Supervisor of Studies: R. Pancer (416-287-7679) Email: pancer@utsc.utoronto.ca

Program Objectives

This program provides a working knowledge of the foundations of computer science: modern computer software and hardware, theoretical aspects of computer science, and relevant areas of mathematics and statistics. It also imparts an appreciation of the discipline's transformative impact on science and society. The program prepares students for further study and for careers in the computing industry. It comprises five streams with different emphases:

The Comprehensive Stream provides a broad and balanced exposure to the discipline. It is the stream best-suited for students planning to pursue graduate study in computer science, but it is also suitable for other career paths.

The Software Engineering Stream places a greater emphasis on the engineering side of the discipline, including computer systems and core applications.

The Information Systems Stream has a similar focus as the Software Engineering Stream, but it provides additional exposure to certain aspects of business management. It is of special interest to students wishing to pursue careers in technical management but who have a deep interest in the technology.

The Health Informatics Stream provides a broad perspective of the discipline and exposure to additional subjects, including statistics and social sciences, that are useful for a career as a computer scientist in the health sector.

The Entrepreneurship Stream includes a solid core of computer science and software engineering, while exposing students to the framework and methodologies that underlie the development of innovative technology ideas into viable commercial opportunities. Enrolment into the Entrepreneurship stream will be limited to highly qualified and motivated students, and preference will be given to students enrolled in the Specialist (Co-operative) program.

The structure of the program requirements allows one to easily switch streams until relatively late in the program. Consequently, these streams should not be viewed as rigidly separated channels feeding students to different career paths, but as a flexible structure that provides computer science students guidance in their course selection based on their broad (but possibly fluid) interests.

Enrolment Requirements

Enrolment in the Specialist in Computer Science (all streams) is limited. Students may apply to enter the program after completing 4.0 credits, and must have passed all of the A-level CSC and MAT courses required in the program. Students with a CGPA of 2.75 or greater across the core A-level courses (CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, and MATA37H3) are guaranteed admission.

Admission to the Entrepreneurship stream also requires the submission of a Supplementary Application Form (SAF) available from the CMS website.

Students who are not admitted as above, may apply after completing at least 7.5 credits, including CSCA08H3, CSCA48H3, CSCA67H3, MATA22H3, MATA31H3, MATA37H3, CSCB07H3, CSCB09H3, CSCB36H3, CSCB63H3, and [one of MATB24H3 or STAB52H3]. The CGPA will be calculated across these 11 courses, and a CGPA of 2.75 or greater guarantees admission to the Specialist. Admission for students with a CGPA that is less than 2.75 will depend on their CGPA, and the space available in the program.

To remain in the program, a student must maintain a CGPA of 2.0 or higher throughout the program.

Program Requirements
The program requirements comprise a core of 18 courses (9.0 credits), common to all streams and additional requirements which depend on the stream, for a total of 27 courses (13.5 credits) for the Comprehensive, Software Engineering, and Entrepreneurship streams, 29 courses (14.5 credits) for the Information Systems stream, and 30 courses (15.0 credits) for the Health Informatics stream.

Note: Many Computer Science courses are offered both at U of T Scarborough and at the St. George campus. When a course is offered at both campuses in a given session, U of T Scarborough students are expected to take that course at U of T Scarborough. The Department of Computer Science at the St. George campus cannot guarantee space for U of T Scarborough students in their courses, especially those offered at both campuses.

Core (9.0 credits)

1. Writing Requirement (0.5 credit) (*)
One of: ANTA01H3, ANTA02H3, (CLAA02H3), (CTLA19H3), CTLA01H3, ENGA10H3, ENGA11H3, ENGB06H3, ENGB07H3, ENGB08H3, ENGB09H3, ENGB17H3, ENGB19H3, ENGB50H3, (ENGB51H3), GGRA02H3, GGRA03H3, GGRB05H3, (GGRB06H3), (HISA01H3), (HLTA01H3), ACMA01H3, (HUMA01H3), (HUMA11H3), (HUMA17H3), (LGGA99H3), LINA01H3, PHLA10H3, PHLA11H3, WSTA01H3. (*) It is recommended that this requirement be satisfied by the end of the second year.

2. A-level courses (3.0 credits)
CSCA08H3 Introduction to Computer Science I
CSCA48H3 Introduction to Computer Science II
CSCA67H3 Discrete Mathematics
MATA22H3 Linear Algebra I for Mathematical Sciences
MATA31H3 Calculus I for Mathematical Sciences
MATA37H3 Calculus II for Mathematical Sciences

3. B-level courses (3.5 credits)
CSCB07H3 Software Design
CSCB09H3 Software Tools and Systems Programming
CSCB36H3 Introduction to the Theory of Computation
CSCB58H3 Computer Organization
CSCB63H3 Design and Analysis of Data Structures
MATB24H3 Linear Algebra II
STAB52H3 Introduction to Probability

4. C-level courses (1.5 credits)
CSCC43H3 Introduction to Databases
CSCC69H3 Operating Systems
CSCC73H3 Algorithm Design and Analysis

5. D-level courses (0.5 credit)
CSCD03H3 Social Impact of Information Technology

A. Comprehensive Stream
This stream requires a total of 27 courses (13.5 credits). In addition to the core requirements 1-5 common to all streams, 9 other distinct courses (4.5 credits) must be chosen satisfying all of the following requirements:

6. Additional required courses (2.5 credits)
MATB41H3 Techniques of the Calculus of Several Variables I
CSCC24H3 Principles of Programming Languages
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD37H3 Analysis of Numerical Algorithms for Computational Mathematics

7. Electives from courses on computer systems and applications (1.0 credit)
Choose from:
CSCC01H3 Introduction to Software Engineering
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC46H3 Social and Information Networks
CSCC85H3 Introduction to Embedded Systems
CSCD01H3 Engineering Large Software Systems
CSCD18H3 Computer Graphics
CSCD27H3 Computer and Network Security
CSCD43H3 Database System Technology
CSCD58H3 Computer Networks
CSCD84H3 Artificial Intelligence
CSC320H Visual Computing
CSC321H Introduction to Neural Networks and Machine Learning
CSC401H Natural Language Computing
CSC469H Operating Systems Design and Implementation
CSC485H Computational Linguistics
CSC488H Compilers and Interpreters

8. Electives from courses related to the theory of computing (0.5 credit)
Choose from:
MATC09H3 Introduction to Mathematical Logic
MATC16H3 Coding Theory and Cryptography
MATC32H3 Graph Theory and Algorithms for its Applications
MATC44H3 Introduction to Combinatorics
CSC438H Computability and Logic
CSC448H Formal Languages and Automata
CSC465H Formal Methods in Software Design

9. CSC, MAT, or STA elective (0.5 credit)
Any C- or D-level CSC, MAT, or STA course, excluding MATC82H3, MATC90H3, and STAD29H3.

B. Software Engineering Stream
This stream requires a total of 27 courses (13.5 credits). In addition to the core requirements 1-5 common to all streams, 9 other distinct courses (4.5 credits) must be chosen satisfying all of the following requirements:

6. Additional required courses (3.0 credits)
MATB41H3 Techniques of the Calculus of Several Variables I
CSCC01H3 Introduction to Software Engineering
CSCC24H3 Principles of Programming Languages
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD01H3 Engineering Large Software Systems

7. Electives from courses on computer systems and applications (1.5 credits)
Choose from:
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC46H3 Social and Information Networks
CSCC85H3 Introduction to Embedded Systems
CSCD18H3 Computer Graphics
CSCD27H3 Computer and Network Security
CSCD43H3 Database System Technology
CSCD58H3 Computer Networks
CSCD84H3 Artificial Intelligence
CSC320H Visual Computing
CSC321H Introduction to Neural Networks and Machine Learning
CSC401H Natural Language Computing
CSC469H Operating Systems Design and Implementation
CSC485H Computational Linguistics
CSC488H Compilers and Interpreters

C. Information Systems Stream
This stream requires a total of 29 courses (14.5 credits). In addition to the core requirements 1-5 common to all streams, 11 other distinct courses (5.5 credits) must be chosen satisfying all of the following requirements:

6. Required management courses (1.5 credits)
MGTA01H3/​(MGTA03H3) Introduction to Business
MGTA02H3/​(MGTA04H3) Managing the Business Organization
MGHB02H3 Managing People and Groups in Organizations

7. Additional required mathematics and computer science courses (3.0 credits)
MATB41H3 Techniques of the Calculus of Several Variables I
CSCC01H3 Introduction to Software Engineering
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD01H3 Engineering Large Software Systems
CSCD43H3 Database System Technology

8. Electives from courses on computer systems and applications (1.0 credit)
Choose from:
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC46H3 Social and Information Networks
CSCC85H3 Introduction to Embedded Systems
CSCD18H3 Computer Graphics
CSCD27H3 Computer and Network Security
CSCD58H3 Computer Networks
CSCD84H3 Artificial Intelligence
CSC320H Visual Computing
CSC321H Introduction to Neural Networks and Machine Learning
CSC401H Natural Language Computing
CSC469H Operating Systems Design and Implementation
CSC485H Computational Linguistics
CSC488H Compilers and Interpreters

D. Health Informatics Stream
This stream requires a total of 30 courses (15.0 credits). In addition to the core requirements 1-5 common to all streams, 12 other distinct courses (6.0 credits) must be chosen satisfying all of the following requirements:

6. Additional courses related to health studies (2.0 credits)
PHLB09H3 Biomedical Ethics
(MGTA06H3) Introduction to Health Management*
One of: (courses on health policy and politics)
- HLTB16H3 Introduction to Public Health
- (HLTB17H3) Conceptual Models of Health
- HLTB40H3 Health Policy and Health Systems
- (HLTC40H3) Introduction to Health Economics
One of: (other courses on health studies)
- HLTB22H3 Biological Determinants of Health
- HLTC05H3 Society, Health and Illness*
(*) These courses have prerequisites not included in this programs requirements.

7. Additional required computer science and statistics courses (1.5 credits)
CSCC01H3 Introduction to Software Engineering
STAB57H3 Introduction to Statistics
STAC50H3 Data Collection

8. Additional CSC, MAT and STA courses (2.5 credits)
MATB41H3 Techniques of the Calculus of Several Variables I
2.0 credits in any other C- or D-level CSC or STA courses, excluding STAD29H3 **†
NOTE: Of the five courses taken to satisfy this requirement, at least one must be a D-level course, and at least three must be CSC courses.
** Some C- and D-level CSC and STA courses have prerequisites that are not included among the required courses for this stream. Review the prerequisites carefully before selecting courses for this requirement. One or more courses taken to satisfy this requirement can be prerequisites for other courses also taken to satisfy this requirement.
†Among the CSC courses that can be used to satisfy this requirement there are two categories of courses that are particularly well aligned with the goals of the Health Informatics stream: software engineering and systems, and computer science applications. Courses in the category of software engineering and systems include: CSCC09H3, CSCC85H3, CSCD01H3, CSCD43H3, and CSCD58H3. Courses in the category of computer science applications include: CSCC11H3, CSCD18H3, and CSCD84H3.

E. Entrepreneurship Stream
This stream requires a total of 27 courses (13.5 credits). In addition to the core requirements 1-5 common to all streams, 9 other distinct courses (4.5 credits) must be chosen satisfying all of the following requirements:

6. Additional required courses (3.0 credits)
CSCC01H3 Introduction to Software Engineering
CSCC37H3 Introduction to Numerical Algorithms for Computational Mathematics
CSCC63H3 Computability and Computational Complexity
CSCD01H3 Engineering Large Software Systems
CSCD54H3 Technology Innovation and Entrepreneurship
CSCD90H3 The Startup Sandbox

7. Electives from courses in computer science, mathematics, and statistics (1.5 credits)
Choose from:
MATB41H3 Techniques of the Calculus of Several Variables I
STAB57H3 Introduction to Statistics
CSCC09H3 Programming on the Web
CSCC10H3 Human-Computer Interaction
CSCC11H3 Introduction to Machine Learning and Data Mining
CSCC24H3 Principles of Programming Languages
CSCC46H3 Social and Information Networks
CSCC85H3 Introduction to Embedded Systems
CSCD18H3 Computer Graphics
CSCD27H3 Computer and Network Security
CSCD43H3 Database System Technology
CSCD58H3 Computer Networks
CSCD84H3 Artificial Intelligence
CSC320H Visual Computing
CSC321H Introduction to Neural Networks and Machine Learning
CSC401H Natural Language Computing
CSC469H Operating Systems Design and Implementation
CSC485H Computational Linguistics
CSC488H Compilers and Interpreters