Home Undergraduate Graduate  Financial Aid Faculty & Staff  
   

Computer Science

Department of Computer Science

Faculty of Engineering

Undergraduate Courses

Courses offered by the Faculty of Engineering are also found under the following course codes: BME (Biomedical Engineering), CENG (Computer Engineering), ELEC (Electrical Engineering), ENGR (Engineering), MECH (Mechanical Engineering) and SENG (Software Engineering).

CSC 110   Units: 1.5   Schedule

Fundamentals of Programming I

Introduction to designing, implementing, and understanding computer programs using an object-oriented programming language. Topics include an introduction to computing and problem solving, selection and iteration, arrays and collections, objects and classes, top-down design and incremental development.

Note: Credit will be granted for only one of 110, 111.

Prerequisites: Mathematics 12 or Precalculus 12 or Foundations of Math 12 or MATH 120.

CSC 115   Units: 1.5   Schedule

Fundamentals of Programming II

Techniques, methods, and tools for systematic development and maintenance of software systems and documentation; basic algorithms and data structures; and fundamental concepts of object-oriented programming. Topics include control and data abstraction, modularization, abstract data types, layers of abstraction, information hiding, separation of concerns, type checking, program design, separate compilation, software libraries, techniques for the development of high-quality software components, program understanding.

Note: Credit will be granted for only one of 115, 116, 160.

Prerequisites: 110 or 111.

CSC 225   Units: 1.5   Schedule

Algorithms and Data Structures I

An introduction to algorithm design and analysis. Random access machine model. Time and space complexity, average and worst case analysis, upper and lower bounds. Application of correctness proof techniques. Algorithms: internal searching, merging, sorting, selection, hashing; graphs: traversals, topological sort, transitive closure, strongly connected components, shortest path, minimum spanning tree. The existence of intractable problems, heuristics. Data structures: B-trees, heaps and graphs.

Prerequisites: 115 or 116, and MATH 122 or CENG 245.

CSC 230   Units: 1.5   Schedule

Introduction to Computer Architecture

The architecture of computer systems including concepts such as CPU, memory, buses, I/O, cache, instruction sets, interrupt processing, pipelining, performance. Families of processors, CISC, RISC. Memory organization and management (including virtual memory, protection, segmentation and paging). Computer arithmetic. The use of assemblers, linkers and loaders. Assembly language programming and its interface with a high-level language (C).

Note: Credit will be granted for only one of 230, CENG 255.

Prerequisites: 115 or 116.

CSC 320   Units: 1.5   Schedule

Foundations of Computer Science

A survey of formal models and results that form the theoretical foundations of computer science; typical topics include finite automata, Turing machines, undecidable problems, context free languages and computational complexity.

Prerequisites: 225; MATH 222 or PHYS 242 or 342.

CSC 360   Units: 1.5   Schedule

Operating Systems

The major concepts of operating systems and study of the interrelationships between the operating system and the architecture of computer systems. Topics discussed include operating system structures, concurrent programming techniques, cpu scheduling, deadlocks, memory management, file systems and protection.

Prerequisites: 225; 230 or CENG 255; SENG 265 or CENG 241.

CSC 361   Units: 1.5   Schedule

Computer Communications and Networks

An introduction to concepts in computer communication and networks. Topics will include layered network architectures, packet switching networks, local area networks, protocol design, and network security.

Note: Credit will be granted for only one of 361, 450, CENG 460.

Prerequisites: 225, 230, SENG 265.

CSC 370   Units: 1.5   Schedule

Formerly: 470

Database Systems

The use and operating principles of database management systems. Topics include: data entities and relationships; data modelling using Entity-Relation Diagrams: hierarchical, network and relational models of databases; query languages; physical representation of data in secondary storage; relational algebra and calculus as applied to the design of databases; security and integrity in the context of concurrent use; and basic ethical issues associated with database design and use.

Note: Credit will be granted for only one of 370, 470, HINF 200, 300.

Prerequisites: 225, SENG 265 or CENG 241.

CSC 460   Units: 1.5   Schedule

Design and Analysis of Real-time Systems

Fundamental issues in design of real-time operating systems and application software. Typical topics include: hard real-time scheduling, interrupt driven systems, process communication and synchronization, language requirements for real-time systems, decomposition of real-time requirements into process models, and case studies. A project involving design, implementation and testing of a real-time executive and real-time application software will also be included.

Prerequisites: 355, 360, and either SENG 321 or 365.

CSC 482A   Units: 1.5   Schedule

Formerly: 482

Topics in Algorithms

Entrance will be restricted to third- and fourth-year students who meet the prerequisite specified for the topic to be offered.

A01-Summer: Theoretical Models & Applications

Notes: - Credit will be granted for only one of 482, 482A, 482B, 482C, 482D (if taken in the same topic).

- May be taken more than once for credit in different topics with permission of the department.

- *Lab hours may vary depending on the topic

CSC 485A   Units: 1.5   Schedule

Formerly: 485

Topics in Systems

Entrance will be restricted to third- and fourth-year students who meet the prerequisite specified for the topic to be offered.

A01-Summer: Virtual Machines

Notes: - Credit will be granted for only one of 485, 485A, 485B, 485C, 485D, 485E, 485F, 485G, 485H (if taken in the same topic).

- May be taken more than once for credit in different topics with permission of the department.

- * Lab hours may vary depending on the topic.

CSC 485B   Units: 1.5   Schedule

Formerly: 485

Topics in Systems

Entrance will be restricted to third- and fourth-year students who meet the prerequisite specified for the topic to be offered.

A01-Summer: Self-Adaptive and Self-Managing Systems

Notes: - Credit will be granted for only one of 485, 485A, 485B, 485C, 485D, 485E, 485F, 485G, 485H (if taken in the same topic).

- May be taken more than once for credit in different topics with permission of the department.

- * Lab hours may vary depending on the topic.

Graduate Courses

CSC 560   Units: 1.5   Schedule

Design and Analysis of Real-Time Systems

Fundamental issues in the design of real-time operating systems and application software. Typical topics include: hard real-time scheduling, interrupt driven systems, process communication and synchronization, language requirements for real-time systems, decomposition of real-time requirements into process model, and case studies. A project involving design, implementation and testing of a real-time executive and real-time application software will also be included.

Note: Not open to students registered in or with credit in 460.

CSC 582A   Units: 1.5   Schedule

Formerly: 582

Topics in Theoretical Computer Science

A01-Summer: Theoretical Models & Applications

Notes: - Credit will be granted for only one of 582, 582A, 582B, 582C, 582D (if taken in the same topic)

- May be taken more than once for credit in different topics with permission of the department.

CSC 586A   Units: 1.5   Schedule

Formerly: 586

Topics in Computer Systems and Software

A01-Summer: Virtual Machines

Notes: - Credit will be granted for only one of 586, 586A, 586B, 586C, 586D, 586E, 586F (if taken in the same topic).

- May be taken more than once for credit in different topics with permission of the department.

CSC 586B   Units: 1.5   Schedule

Formerly: 586

Topics in Computer Systems and Software

A01-Summer: Self-Adaptive and Self-Managing Systems

Notes: - Credit will be granted for only one of 586, 586A, 586B, 586C, 586D, 586E, 586F (if taken in the same topic).

- May be taken more than once for credit in different topics with permission of the department.

CSC 599   Units: 6.0   Schedule

Master's Thesis

Grading: INP, COM, N, F

CSC 693   Units: 3.0   Schedule

PhD Candidacy

Grading: INP, COM, N, F

CSC 699   Units: 33.0-34.5   Schedule

PhD Dissertation

Prerequisites: 693.

Grading: INP, COM, N, F.

   
 
 
Back to Navigation