Overview
The Honours Computer Science program offers courses designed to develop students into highly knowledgeable and skilled systems analysts, database specialists, software developers, and system administrators. Additionally, it prepares students for an accelerated master’s degree. The program is built around three core areas: computing fundamentals, software design, and systems. Students are trained in modern systems-oriented topics such as distributed networks, secure, high-performance, and web-based systems.
“My favourite thing about Computer Science in general is its interdisciplinary nature, in that I can apply my Computer Science degree to solve real-world problems across any industry. The Computer Science curriculum at McMaster University allows me to explore these problems through its flexible curriculum.” – Alyssia M. Jovellanos, Computer Science
The Computer Science program is built on four columns:
- Theoretical foundations of Computer Science
- Programming courses
- Software Design courses
- Systems oriented courses
This design philosophy ensures that our students understand the fundamentals and gives them the key advantage in today’s job market.
- Understand how to compose sound programs in modern programming languages
- Understand Software Design and Software Management
- Understand the needs of modern Software systems including the internet and the World Wide Web
- Select freely from 30 units (10 courses) in other subjects to tailor your education to your interests
The admissions criteria are very flexible and allow students from other programs to transfer into the Computer Science program. Please refer to the Engineering section of the Undergraduate Calendar for the details. See requirements for Computer Science 1.
B.A.Sc – Co-op and Experiential Learning
Experiential learning provides students with hands-on opportunities beyond the traditional lecture-style format to gain valuable experience.
Engineering Co-op Program
The Engineering Co-op Program is an optional program which provides you with the opportunity to work in real engineering positions before you graduate. The Undergraduate Co-op Program is administered by the Engineering Co-op and Career Services Department (ECCS).
Example Employers:
- Advanced MicroDevices (AMD)
- Microsoft
- Bell Canada
- Evertz Microsystems
- IBM Canada
- Ford Motor Company of Canada
- Toronto Hydro Corporation
- ArcelorMittal
- CIBC Canadian Imperial Bank of Canada
Extracurricular Activities
McMaster Engineering has many engineering clubs, teams and societies you can join to enhance your practical knowledge and soft skills, provide support, or give you the chance to explore new activities. Clubs are an enjoyable way to enrich your student life and contribute to your social development and academic success.
- PhaseOne (formerly HackItMAC)
- McMaster SumoBot Club
- MacACM
- McMaster Solar Car Project
- Arduino Club
B.A.Sc – Careers
Career Paths
Computer Science graduates find employment in a wide variety of industries, from large companies in banking, insurance, retail, and software, through to medium sized-firms, but also start-ups. Graduate school is also an option for those who want to further deepen their understanding of computing.
Initial positions for computer science graduates often have titles such as programmer, programmer/analyst, analyst, or web developer. Entrepreneurial students can get help with their start-ups through some courses and The Forge, affiliated with McMaster. IP generated by students is owned by the students at McMaster.
Example Career Paths:
- App development
- Software analysis
- Computer system development
B.A.Sc – Related Courses
Code | Title | Instructor | Outline | Info |
---|---|---|---|---|
COMPSCI 1DM3 Undergraduate | Discrete Mathematics for Computer Science |
|
More | |
COMPSCI 1JC3 Undergraduate | Introduction to Computational Thinking |
|
More | |
COMPSCI 1MD3 Undergraduate | Introduction to Programming |
|
More | |
COMPSCI 1XC3 Undergraduate | Computer Science Practice and Experience: Development Basics |
|
More | |
COMPSCI 1XD3 Undergraduate | Computer Science Practice and Experience: Introduction to Software Design Using Web Programming |
|
More | |
COMPSCI 2AC3 Undergraduate | Automata and Computability |
|
More | |
COMPSCI 2C03 Undergraduate | Data Structures and Algorithms |
|
More | |
COMPSCI 2DB3 Undergraduate | Databases |
|
More | |
COMPSCI 2GA3 Undergraduate | Computer Architecture |
|
More | |
COMPSCI 2LC3 Undergraduate | Logical Reasoning for Computer Science |
|
More | |
COMPSCI 2ME3 Undergraduate | Introduction to Software Development |
|
More | |
COMPSCI 2SD3 Undergraduate | Concurrent Systems |
|
More | |
COMPSCI 2XC3 Undergraduate | Computer Science Practice and Experience: Algorithms and Software Design |
|
More | |
COMPSCI 3AC3 Undergraduate | Algorithms and Complexity |
|
More | |
COMPSCI 3DM3 Undergraduate | Introduction to Data Mining |
|
More | |
COMPSCI 3DP3 Undergraduate | Data Privacy |
|
More | |
COMPSCI 3EA3 Undergraduate | Software Specifications and Correctness |
|
More | |
COMPSCI 3GC3 Undergraduate | Computer Graphics |
|
More | |
COMPSCI 3IS3 Undergraduate | Information Security |
|
More | |
COMPSCI 3MI3 Undergraduate | Principles Of Programming Languages |
|
More | |
COMPSCI 3N03 Undergraduate | Computer Networks and Security |
|
More | |
COMPSCI 3RA3 Undergraduate | Software Requirements and Security Considerations |
|
More | |
COMPSCI 3SH3 Undergraduate | Computer Science Practice and Experience: Operating Systems |
|
More | |
COMPSCI 3TB3 Undergraduate | Syntax-Based Tools and Compilers |
|
More | |
COMPSCI 4AD3 Undergraduate | Advanced Databases |
|
More | |
COMPSCI 4AR3 Undergraduate | Software Architecture |
|
More | |
COMPSCI 4C03 Undergraduate | Computer Networks and Security |
|
More | |
COMPSCI 4DC3 Undergraduate | Distributed Computing |
|
More | |
COMPSCI 4E03 Undergraduate | Performance Analysis of Computer Systems |
|
More | |
COMPSCI 4EN3 Undergraduate | Software Entrepreneurship |
|
More | |
COMPSCI 4F03 Undergraduate | Parallel Computing |
|
More | |
COMPSCI 4FP3 Undergraduate | Functional Programming |
|
More | |
COMPSCI 4HC3 Undergraduate | Human Computer Interfaces |
|
More | |
COMPSCI 4ML3 Undergraduate | Introduction to Machine Learning |
|
More | |
COMPSCI 4O03 Undergraduate | Linear Optimization Algorithms |
|
More | |
COMPSCI 4TB3 Undergraduate | Syntax-Based Tools and Compilers |
|
More | |
COMPSCI 4TE3 Undergraduate | Continuous Optimization Algorithms |
|
More | |
COMPSCI 4TH3 Undergraduate | Theory of Computation |
|
More | |
COMPSCI 4TI3 Undergraduate | Fundamentals of Image Processing |
|
More | |
COMPSCI 4X03 Undergraduate | Scientific Computation |
|
More | |
COMPSCI 4Z03 Undergraduate | Directed Readings |
|
More | |
COMPSCI 4ZP6A/B Undergraduate | Computer Science Capstone Project |
|
More |