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

------

Computer Science

(B.Sc.)

Faculty List


W.H. Enright, B.Sc. (U.B.C.), M.Sc., Ph.D., (Toronto), Professor
V. Hadzilacos, B.A. (Princeton), Ph.D. (Harvard), Professor
G. Hirst, B.A., B.Sc., (Monash), M.Sc., (A.N.U., U.B.C.) Ph.D. (Brown), Professor
A. Mendelzon, B.S., M.S.E., M.A., Ph.D., (Princeton), Professor
M. Molloy, Ph.D. (Carnegie Mellon), Associate Professor
N. Cheng, B.Sc., Senior Lecturer
G.J. Cupit, B.Sc. (U.B.C.), Senior Lecturer
A. Rosselet, B.Sc. (N. Carolina State), M.Sc., Ph.D. (Toronto) Senior Lecturer
C. Jansen, B.Sc., M.Sc., (Toronto) Lecturer
R. Pancer, B.Sc., M.Sc., (Toronto) Lecturer
M. Szamosi, B.A. (Brandeis), M.A., (Harvard) Lecturer

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.

Note on Admission to CSC Courses

All CSC courses beyond the A-level, except for CSCB07H, are limited enrolment with preference being given to students admitted to and enrolled in CSC programs. If, towards the end of the registration period, spaces become available in CSC courses, registration may be opened up and some non-program students may be admitted on a first-come first-served basis. The following rules will apply:

SPECIALIST PROGRAM IN COMPUTER SCIENCE

This program has six streams:
  1. Comprehensive Stream
  2. Information Systems Stream
  3. Joint Mathematics Stream
  4. Joint Physics Stream
  5. Joint Statistics Stream
  6. Software Engineering Stream

Admission to the Program

Each year, 80 students are admitted to the six streams of the Specialist Program in addition to those admitted to the Specialist Co-operative Program. There are three ways to be admitted:

  1. Directly from Secondary School: Up to 40 students will be admitted directly from high school on the basis of academic performance. Applicants must have completed Grade 12 Geometry and Discrete Mathematics and one other Grade 12 mathematics course, or OAC Calculus and OAC Algebra and Geometry.

  2. At the End of 1st Year: Applicants must have completed all A-level courses required in their stream of the Specialist Program. Students applying for admission on completion of their first year (at least 4 full credit equivalents) will be accepted on the basis of their 1st year GPA and their marks in Computer Science and Mathematics courses. The minimum GPA to guarantee acceptance is calculated annually. It is never less than 2.00 and for 2003 will not be greater than 2.80.

  3. After 2nd Year: Admission of students after second year will also be on the basis of the grades they have received in Computer Science and Mathematics courses.

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
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
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
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
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 One of (additional courses in computing systems):
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

SPECIALIST (CO-OPERATIVE) PROGRAM IN COMPUTER SCIENCE

Supervisor of Studies: R. Pancer (416-287-7679)

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.

MAJOR PROGRAM IN COMPUTER SCIENCE

Supervisor: R. Pancer (416-287-7679)

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): CSC454H The Business of Software
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): CSC448H Formal Languages and Automata CSC465H Formal Methods in Software Design
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

CSCA02H3 The Why and How of Computing

An introduction to computers and their use. System operations (commands, files, security), common applications (data bases, word processing, spreadsheets) and basic programming concepts. Other topics include: data organization, communications, office automation, electronic mail, and internet tools. This course is intended for non-science students.
Exclusions: SMC104H; VIC104H. This course may not be taken after or concurrently with any other CSC course.

CSCA08H3 Introduction to Computer Programming

Structure of computers; the computing environment. Programming in an object-oriented language such as Java. Program structure in an object-oriented language: classes, objects, methods, fields. Internal structure of methods: elementary data types, statements, control flow. Arrays; searching, sorting and complexity.
Exclusions: CSC107H, CSC108H, (CSCA06H), CSCA48H, (CSCA58H)
Prerequisite: Grade 12 Mathematics

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.

CSCA48H3 Introduction to Computer Science

Abstract data types and data structures for implementing them. Linked data structures. Encapsulation and information-hiding. Object-oriented programming. Specifications. Correctness and efficiency of programs. Recursion.
Exclusions: CSC148H, (CSCA58H)
Prerequisites: [CSCA08H or (CSCA06H)] & [two OAC mathematics courses or [Grade 12 Geometry and Discrete Mathematics & one other Grade 12 mathematics course]]

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.

CSCA65H3 Mathematical Expression and Reasoning for Computer Science

Introduction to abstraction and rigour. Understanding, using and developing precise expressions of mathematical ideas, including definitions and theorems. Informal introduction to logical notation and reasoning. Representation of floating point numbers and introduction to numerical computation.
Exclusions: CSC165H, CSC240H
Prerequisites: [(CSCA06H) or CSCA08H] & [two OACs from Calculus, Algebra & Geometry, Finite Mathematics or [Grade 12 Geometry and Discrete Mathematics & one other Grade 12 mathematics course]]
Corequisite: CSCA48H

CSCB07H3 Software Design

An introduction to software design and development concepts, methods, and tools. Core topics: object-oriented design and programming; the role of scripting in the software development process; unit testing; version control; build management.
Exclusions: (CSCB70H), CSC207H
Prerequisite: CSCA48H or (CSCA58H)
Corequisite: CSCA65H

CSCB09H3 Software Tools and Systems Programming

Software techniques in a Unix-style environment, using scripting languages and a machine-oriented programming language (typically C). What goes on in the system when programs are executed.

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]

CSCB36H3 Introduction to the Theory of Computation

Mathematical induction with emphasis on applications relevant to computer science. Aspects of mathematical logic, correctness proofs for iterative and recursive algorithms, solutions of linear and divide-and-conquer recurrences, introduction to automata and formal languages.
Exclusions: (CSCB38H), CSC236H, CSC238H, CSC240H
Prerequisites: [[CSCA48H & CSCA65H] or (CSCA58H)] & [CGPA 2.5 or enrolment in a CSC subject POSt]

CSCB58H3 Computer Organization

Computer structures, machine languages, instruction execution, addressing techniques, and digital representation of data. Computer system organization, memory storage devices, and microprogramming. Block diagram circuit realizations of memory, control and arithmetic functions. There are a number of laboratory periods in which students conduct experiments with digital logic circuits.
Exclusion: CSC258H
Prerequisites: [CSCA48H or (CSCA58H) or (CSCA57H) or PSCB57H] & [CGPA 2.5 or enrolment in a CSC subject POSt]

CSCB63H3 Design and Analysis of Data Structures

Design, analysis, implementation and comparison of efficient data structures for common abstract data types. Priority queues: heaps and mergeable heaps. Dictionaries: balanced binary search trees, B-trees, hashing. Amortization: data structures for managing dynamic tables and disjoint sets. Data structures for representing graphs. Graph searches.
Exclusions: CSC263H, CSC265H, (CSCC78H)
Prerequisites: [CSCB07H or (CSCB70H)] & [CSCB36H or (CSCB38H)] & [STAB52H or (STAB47H)] & [CGPA 2.5 or enrolment in a CSC subject POSt]

CSCC09H3 Programming on the Web

An introduction to software development on the web. Concepts underlying the development of programs that operate on the web. Operational concepts of the internet and the web, static and dynamic client content, dynamically served content, n-tiered architectures, web development processes and security on the web.
Exclusion: CSC309H
Prerequisites: CSCB09H & [CSCC43H or (CSCB28H)] & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC24H3 Principles of Programming Languages

Major topics in the development of modern programming languages. Syntax specification, type systems, type interface, exception handling, information hiding, structural recursion, run-time storage management, and programming paradigms. Two non-procedural programming paradigms: functional programming (e.g., Lisp, Scheme, ML or Haskell) and logic programming (e.g., Prolog, XSB or Coral).
Exclusion: CSC324H
Prerequisite: [CSCB07H or (CSCB70H)] & [CSCB36H or (CSCB38H)] & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC36H3 Numerical Methods

The study of computational methods for solving problems in linear algebra, non-linear equations, approximation, integration, and ordinary differential equations. The aim is to give students both a basic understanding of floating-point arithmetic and the methods used to solve numerical problems as well as a familiarity with the types of subroutines found in typical software packages.
Exclusion: CSCC50H, CSCC51H, ACT323H, ACT335H, CSC336H, CSC350H, CSC351H
Prerequisites: [PSCB57H or (CSCA57H) or CSCB07H or (CSCB70H)] & [MATA37H or (MATA26Y)] & MATA23H & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC40H3 Analysis and Design of Information Systems

Theory, tools and techniques of information systems analysis and design. Topics include: theory of systems and organizations, structured analysis and design, user interface design.
Exclusion: CSC340H
Prerequisite: [CSCB63H or (CSCC78H)] & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC43H3 Introduction to Databases

Introduction to database management systems. The relational data model. Relational algebra. Querying and updating databases: the SQL query language. Application programming with SQL. Integrity constraints, normal forms, and database design. Elements of database system technology: query processing, transaction management.
Exclusion: CSC343H, (CSCD34H), CSC434H
Prerequisites: [CSCB63H or (CSCC78H)] & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC50H3 Numerical Algebra and Optimization

The efficiency and stability of solution techniques for systems of linear equations and least squares problems, including LU- and QR-based methods. Algorithms for optimization problems, including linear programming, and for systems of nonlinear equations.
Exclusion: CSCC36H, CSC336H, CSC350H
Prerequisite: [PSCB57H or (CSCA57H) or CSCB07H or (CSCB70H)] & MATB24H & MATB42H & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC51H3 Numerical Approximation, Integration and Ordinary Differential Equations

Analysis of methods for approximation, integration, and the solution of ordinary differential equations. Emphasis on the convergence and stability properties of the algorithms, rather than on their implementation.
Exclusion: CSCC36H , ACT323H, CSC336H, CSC351H
Prerequisite: CSCC50H & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC63H3 Computability and Computational Complexity

Introduction to the theory of computability: Turing machines, Church's thesis, computable and non-computable functions, recursive and recursively enumerable sets, reducibility. Introduction to complexity theory: models of computation, P, NP, polynomial time reducibility, NP-completeness, heuristics and approximation algorithms, lower bounds on the complexity of problems.
Exclusions: CSC363H, CSC365H, (CSCC64H), CSC364H
Prerequisites: [CSCB36H or (CSCB38H)] & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC69H3 Operating Systems

Principles of operating systems. The operating system as a control program and as a resource allocator. The concept of a process and concurrency problems: synchronization, mutual exclusion, deadlock. Additional topics include memory management, file systems, process scheduling, threads, and protection.
Exclusions: CSC369H, CSC468H
Prerequisites: [CSCB07H or (CSCB70H)] & CSCB09H & CSCB58H & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC73H3 Algorithm Design and Analysis

Standard algorithm design techniques: divide-and-conquer, greedy strategies, dynamic programming, linear programming, randomization, and possibly others.
Exclusions: CSC373H, CSC375H, (CSCC64H), CSC364H
Prerequisites: [CSCB63H or (CSCC78H)] & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCC78H3 Data Structures and Algorithm Analysis

Abstract data types such as priority queues and dictionaries. Advanced data structures for main memory resident information, such as binomialheaps, leftist trees, self-adjusting lists and balanced search trees. Algorithm analysis: worst case, average case, and amortized complexity. Introduction to lower bounds. Emphasis is given to problem solving and a theoretical treatment of the data structures.
Exclusion: CSC378H
Prerequisite: (CSCB70H) & [(CSCB38H) or CSCB36H] & [STAB52H or (STAB47H)]

CSCC85H3 Microprocessor Systems

A study of hardware and software aspects of microcomputers and microprocessors. This course will examine instruction sets, addressing modes, memory devices, bus structures. Input/output and interrupt mechanisms. Assembly language and high-level language programming. System and applications software.

Laboratory experiments will provide hands-on experience.
Limited enrolment: 100
Exclusion: ECE385H
Prerequisite: CSCB58H & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCD03H3 Social Impact of Information Technology

The trade-offs between benefits and risks to society of information systems, and related issues in ethics and public policy. Topics will include safety-critical software; computational invasion of privacy; computer-based crime; and professional ethics in the software industry. There will be an emphasis on current events relating to these topics.
Limited enrolment: 25
Exclusion: CSC300H, (PSCD03H)
Prerequisites: Fourteen full-credit equivalents including (CSCA06H) or CSCA08H or PSCB57H or (CSCA57H) or CSCA48H or (CSCA58H) or [in special cases, CSCA02H and permission of the instructor]

CSCD08H3 Software Engineering

The structure and unique characteristics of large software systems. Concepts and techniques in the design and implementation of large software systems. Requirements definition and specification. Software modularity and programming languages for system implementation. Debugging, testing and software quality assurance. Software project management. Formal methods in software engineering. A course project is used to illustrate software engineering techniques.
Exclusion: CSC408H
Prerequisites: CSCC40H & [CSCB09H or proficiency in C] & [CGPA 3.0 or enrolment in a CSC subject POSt]

CSCD18H3 Computer Graphics

Identification and characterization of objects manipulated in computer graphics, operations on these objects, efficient algorithms to perform these operations, and interfaces to transform one type of object to another. Display devices, display data structures and procedures, graphical input, object modeling, transformations, illumination models, light effects; graphics packages and systems.
Exclusion: CSC418H
Prerequisite: MATB24H & [CSCC36H or CSCC50H] & [CSCB63H or (CSCC78H)] & [CSCC63H or CSCC73H or (CSCC64H) or (CSCC78H)]

CSCD43H3 Database System Technology

Implementation of database management systems. Storage management, indexing, query processing, concurrency control, transaction management. Database systems on parallel and distributed architectures. Modern database applications: data mining, data warehousing, OLAP, data on the web. Object-oriented and object-relational databases.
Exclusion: CSC443H
Prerequisites: [CSCC43H or (CSCD34H)] & CSCC69H & [CSCC73H or (CSCC64H)] & [GPA 3. 0 or enrolment in a CSC subject POSt]

CSCD58H3 Computer Networks

Computer communication network principles and practice. The OSI protocol-layer model; Internet application layer and naming; transport layer and congestion avoidance; network layer and routing; link layer with local area networks, connection-oriented protocols and error detection and recovery; multimedia networking with quality of service and multicasting. Principles in the context of the working-code model implemented in the Internet.
Exclusion: CSC458H
Prerequisites: CSCB58H & CSCB63H & [STAB52H or STAB57H or (STAB47)]

CSCD94H3 Computer Science Project

A significant project in any area of computer science. The project may be undertaken individually or in small groups. This course is offered by arrangement with a computer science faculty member, at UTSC or the St. George campus. This course may be taken in any semester and the project must be completed by the last day of classes in the semester in which it is taken. Students must obtain consent from the Supervisor of Studies before registering for this course.
Exclusion: CSC494H
Prerequisite: [Three C-level computer science half- courses] & [permission of the Supervisor of Studies] & [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.

CSCD95H3 Computer Science Project

Same description as CSCD94H. Normally a student may not take two project half-courses on closely related topics or with the same supervisor.

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