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.