HONOURS IN COMPUTER SCIENCE
72-75 credits
Honours students must maintain a CGPA of at least 3.00 during their studies and at graduation.
| COURSE |
CREDITS |
TITLE |
| Required courses: |
42-45 |
|
| COMP 202* |
3 |
Introduction to Computing 1 |
| COMP 206 |
3 |
Introduction to Software Systems |
| COMP 250 |
3 |
Introduction to Computer Science |
| COMP 252 |
3 |
Algorithms and Data Structures |
| COMP 273 |
3 |
Introduction to Computer Systems |
| COMP 302 |
3 |
Programming Languages and Paradigms |
| COMP 310 |
3 |
Operating Systems |
| COMP 330 |
3 |
Theoretical Aspects: Computer Science |
| COMP 350 |
3 |
Numerical Computing |
| COMP 362 |
3 |
Honours Algorithm Design |
| COMP 400 |
3 |
Technical Project and Report |
| MATH 222 |
3 |
Calculus 3 |
| MATH 223 |
3 |
Linear Algebra |
| MATH 240 |
3 |
Discrete Structures 1 |
MATH 340 OR MATH 350 |
3 3 |
Discrete Structures 2 Graph Theory and Combinatorics |
| Complementary courses: |
30 |
(to be selected from the courses below) |
| At least 3 credits selected from: |
| COMP 303 |
3 |
Software Development |
| COMP 304 |
3 |
Object-oriented Design |
| 6 credits selected from: |
| MATH 318 |
3 |
Mathematical Logic |
| MATH 323 |
3 |
Probability |
| MATH 324 |
3 |
Statistics |
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. At least 12 credits must be at the 500-level. |
| Notes: |
| *Students who have sufficient knowledge in a programming language do not need to take COMP 202. |
| Honours students must maintain a CGPA of at least 3.00 during their studies and at graduation. |
HONOURS IN SOFTWARE ENGINEERING
72-75 credits
Honours students must maintain a CGPA of at least 3.00 during their studies and at graduation.
| COURSE |
CREDITS |
TITLE |
| Required courses: |
39-42 |
|
| 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 |
| COMP 400 |
3 |
Technical Project and Report |
| ECSE 429 |
3 |
Software Validation |
| MATH 223 |
3 |
Linear Algebra |
| MATH 240 |
3 |
Discrete Structures 1 |
| Complementary courses: |
33 |
(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 18 credits selected from the following 2 lists, with at least 6 credits selected from Software Engineering Specializations, and at least 9
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 |
At least 6 credits selected from any COMP courses at the 500-level or above. These may include courses on the Software Engineering Specializations and Application Specialities lists. Of the 33 credits, at least 12 credits must be at the 500-level or above. Courses at the 600- and 700-levels require special permission. |
| Notes: |
| *Students who have sufficient knowledge in a programming language do not need to take COMP 202. |
| **Students who have successfully completed MATH 150 and MATH 151 are not required to take MATH 222. |