MAJOR IN COMPUTER SCIENCE
60-63 credits
| COURSE |
CREDITS |
TITLE |
| Required courses: |
27-30 |
|
| COMP 202* |
3 |
Introduction to Computing 1 |
| COMP 206 |
3 |
Introduction to Software Systems |
| COMP 250 |
3 |
Introduction to Computer Science |
| COMP 251 |
3 |
Data Structures and Algorithms |
| COMP 273 |
3 |
Introduction to Computer Systems |
| COMP 302 |
3 |
Programming Languages and Paradigms |
| COMP 310 |
3 |
Operating Systems |
| MATH 222 |
3 |
Calculus 3 |
| MATH 223 |
3 |
Linear Algebra |
| MATH 240 |
3 |
Discrete Structures 1 |
| Complementary courses: |
33 |
(to be selected from the courses below) |
| At least 6 credits selected from: |
| COMP 330 |
3 |
Theoretical Aspects: Computer Science |
| COMP 350 |
3 |
Numerical Computing |
| COMP 360 |
3 |
Algorithm Design Techniques |
| At least 3 credits selected from: |
| COMP 303 |
3 |
Software Development |
| COMP 304 |
3 |
Object-oriented Design |
| 3-9 credits selected from: (Must include at least one of MATH 323 and MATH 340) |
| MATH 318 |
3 |
Mathematical Logic |
| MATH 323 |
3 |
Probability |
| MATH 324 |
3 |
Statistics |
| MATH 340 |
3 |
Discrete Structures 2 |
The remaining credits selected from COMP courses at the 300-level or above (except COMP 364, COMP 396, COMP 400, COMP 431) and ECSE 508 |
| Notes: |
| *Students who have sufficient knowledge in a programming language do not need to take COMP 202. |
| Students must make sure they have the appropriate pre-requisites when choosing upper level courses. |
MAJOR IN COMPUTER SCIENCE: COMPUTER GAMES OPTION
62-67 credits
| COURSE |
CREDITS |
TITLE |
| Required courses: |
47-50 |
|
| COMP 202* |
3 |
Introduction to Computing 1 |
| COMP 206 |
3 |
Introduction to Software Systems |
| COMP 250 |
3 |
Introduction to Computer Science |
| COMP 251 |
3 |
Data Structures and Algorithms |
| COMP 273 |
3 |
Introduction to Computer Systems |
| COMP 302 |
3 |
Programming Languages and Paradigms |
| COMP 303 |
3 |
Software Development |
| COMP 308 |
1 |
Computer Systems Lab |
| COMP 310 |
3 |
Operating Systems |
| COMP 322 |
1 |
Introduction to C++ |
| COMP 330 |
3 |
Theoretical Aspects: Computer Science |
| COMP 361D1 , COMP 361D2 |
3 , 3 |
Software Engineering Project |
| COMP 557 |
3 |
Fundamentals of Computer Graphics |
| MATH 222 |
3 |
Calculus 3 |
| MATH 223 |
3 |
Linear Algebra |
| MATH 240 |
3 |
Discrete Structures 1 |
| MATH 323 |
3 |
Probability |
| Complementary courses: |
15-17 |
(to be selected from the courses below) |
| 3 credits selected from: |
| COMP 350 |
3 |
Numerical Computing |
| COMP 360 |
3 |
Algorithm Design Techniques |
| 6-8 credits selected from: |
| COMP 424 |
3 |
Artificial Intelligence |
| COMP 507 |
3 |
Computational Geometry |
| COMP 521 |
4 |
Modern Computer Games |
| COMP 522 |
4 |
Modelling and Simulation |
| COMP 529 |
4 |
Software Architecture |
| COMP 533 |
3 |
Object-oriented Software Development |
| COMP 559 |
4 |
Fundamentals of Computer Vision |
| 6 credits selected from: |
| COMP 409 |
3 |
Concurrent Programming |
| COMP 421 |
3 |
Database Systems |
COMP 535 OR COMP 435 |
3 3 |
Computer Networks 1 Basics of Computer Networks |
Notes: |
| *Students who have sufficient knowledge in a programming language do not need to take COMP 202. |
MAJOR IN SOFTWARE ENGINEERING
60-63 credits
| COURSE |
CREDITS |
TITLE |
| Required courses: |
36-39 |
|
| COMP 202* |
3 |
Introduction to Computing 1 |
| COMP 206 |
3 |
Introduction to Software Systems |
| COMP 250 |
3 |
Introduction to Computer Science |
| COMP 251 |
3 |
Data Structures and Algorithms |
| COMP 273 |
3 |
Introduction to Computer Systems |
| COMP 302 |
3 |
Programming Languages and Paradigms |
| COMP 303 |
3 |
Software Development |
COMP 310 OR ECSE 427 |
3 3 |
Operating Systems Operating Systems |
| COMP 361D1 , COMP 361 D2 |
3 , 3 |
Software Engineering Project |
| ECSE 429 |
3 |
Software Validation |
| MATH 223 |
3 |
Linear Algebra |
| MATH 240 |
3 |
Discrete Structures 1 |
| Complementary courses: |
24 |
(to be selected from the courses below) |
| At least 9 credits selected from Groups A and B, with at least 3 credits selected from each: |
| Group A: |
| MATH 222 |
3 |
Calculus 3 |
| MATH 323 |
3 |
Probability |
| MATH 324 |
3 |
Statistics |
| Group B: |
| COMP 330 |
3 |
Theoretical Aspects: Computer Science |
| COMP 360 |
3 |
Algorithm Design Techniques |
At least 15 credits selected from the following 2 lists, with at least 6 credits selected from Software Engineering Specializations, and at least 6
credits from Application Specialities: |
| Software Engineering Specializations: |
COMP 409 OR ECSE 420 |
3 3 |
Concurrent Programming Parallel Computing |
| COMP 523 |
3 |
Language-based Security |
| COMP 525 |
3 |
Formal Verification |
| COMP 529 |
4 |
Software Architecture |
| COMP 533 |
3 |
Object-oriented Software Development |
| Applications Specialities: |
| COMP 350 |
3 |
Numerical Computing |
| COMP 417 |
3 |
Introduction to Robotics and Intelligent Systems |
| COMP 421 |
3 |
Database Systems |
| COMP 424 |
3 |
Artifical Intelligence |
| COMP 512 |
4 |
Distributed Systems |
| COMP 520 |
4 |
Compiler Design |
COMP 521 |
4 |
Modern Computer Games |
| COMP 522 |
4 |
Modelling and Simulation |
| COMP 535 |
3 |
Computer Networks 1 |
COMP 557 OR ECSE 532 |
3 3 |
Fundamentals of Computer Graphics Computer Graphics |
| COMP 558 |
3 |
Fundamentals of Computer Vision |
| ECSE 424 |
3 |
Human-Computer Interaction |
| Notes: |
| *Students who have sufficient knowledge in a programming language do not need to take COMP 202. |