Areas of Specialization

Computer Systems
Design, analysis, and development of systems that involve the interaction of a combination of hardware, software, user behaviour, and data.
Computer systems consist of operating systems, systems architecture and hardware, data storage and management systems, distributed systems, and computer networks. Computer system research at McMaster University addresses a diverse range of challenges posed by the ever-increasing demands to acquire, transfer and analyze large amounts of data in real-time, and develops dependable, reliable and efficient system solutions to enable and support compute-intensive services and applications.
Our group has expertise in several well established and emerging areas in computer systems, including big data systems, resource management in data centres and wireless networks, mobile computing and pervasive sensing, immersive simulation software and hardware platforms, and dependable distributed systems.
Research Groups
Related Faculty

Dr. Fei Chiang
Associate Professor (On research leave, returning July 2021)
database systems; data quality; data privacy; data analytics; information extraction; text mining.

Dr. Martin v. Mohrenschildt
Undergraduate Advisor for Mechatronics
Control, Signal Processing, Simulation, Sensors

Dr. Rong Zheng
Associate Chair of Graduate Study
Mobile computing, wireless networking, cyber physical systems, active machine learning

Dr. Ryan Leduc
Graduate Advisor for Software Engineering
Discrete-Event Systems (fault tolerance and detection, hierarchical structure, concurrency and implementation); Formal Verification of Hardware and Software
Related Courses
Code | Title | Instructor | Outline | Info |
---|---|---|---|---|
CAS 704Graduate | Embedded, Real-Time Software Systems | Outline | More Info. | |
CAS 736Graduate | Analysis of Stochastic Networks | More Info. | ||
CAS 745Graduate | Supervisory Control of Discrete-Event Systems | Outline | More Info. | |
CAS 771Graduate | Introduction to Big Data Systems and Applications | More Info. | ||
COMPSCI 2GA3Undergraduate | Computer Architecture | More Info. | ||
COMPSCI 3DB3Undergraduate | Databases | More Info. | ||
COMPSCI 3GC3Undergraduate | Computer Graphics | More Info. | ||
COMPSCI 3SH3Undergraduate | Computer Science Practice and Experience: Operating Systems | More Info. | ||
COMPSCI 4AD3Undergraduate / Technical Elective | Advanced Databases List D : Software Engineering and Society Technical Electives | More Info. | ||
COMPSCI 4AR3Undergraduate | Software Architecture | More Info. | ||
COMPSCI 4DC3Undergraduate / Technical Elective | Distributed Computing List E: Software Engineering Technical Electives | More Info. | ||
COMPSCI 4E03Undergraduate | Performance Analysis of Computer Systems | More Info. | ||
COMPSCI 4F03Undergraduate | Parallel Computing | More Info. | ||
COMPSCI 4HC3Undergraduate | Human Computer Interfaces | More Info. | ||
COMPSCI 4WW3Undergraduate / Technical Elective | Web Systems and Web Computing List E: Software Engineering Technical Electives | More Info. | ||
COMPSCI 6E03Graduate | Performance Analysis of Computer Systems | More Info. | ||
COMPSCI 6F03Graduate | Distributed Computer Systems | More Info. | ||
COMPSCI 6WW3Graduate | Web Systems and Web Computing | More Info. | ||
MECHTRON 3TA4Undergraduate | Embedded Systems Design I | More Info. | ||
MECHTRON 4AA4Undergraduate | Real-Time Systems and Control Applications | More Info. | ||
MECHTRON 4AX3Undergraduate / Technical Elective | Predictive and Intelligent Control List A : Mechatronics, List E: Software Engineering Technical Electives | More Info. | ||
SFWRENG 2DA4Undergraduate | Digital Systems and Interfacing | More Info. | ||
SFWRENG 2GA3Undergraduate | Computer Architecture | More Info. | ||
SFWRENG 3DB3Undergraduate / Technical Elective | Databases List A : Mechatronics | More Info. | ||
SFWRENG 3GC3Undergraduate / Technical Elective | Computer Graphics List D : Software Engineering and Society Technical Electives | More Info. | ||
SFWRENG 3SH3Undergraduate / Technical Elective | Operating Systems List D : Software Engineering and Society Technical Electives, List E: Software Engineering Technical Electives | More Info. | ||
SFWRENG 4AA4Undergraduate | Real-Time Systems and Control Applications | More Info. | ||
SFWRENG 4AD3Undergraduate / Technical Elective | Advanced Databases List D : Software Engineering and Society Technical Electives, List E: Software Engineering Technical Electives | More Info. | ||
SFWRENG 4E03Undergraduate / Technical Elective | Performance Analysis Of Computer Systems List A : Mechatronics, List F: Additional Technical Electives for Software Engineering and Embedded Systems or Game Design | More Info. | ||
SFWRENG 4F03Undergraduate / Technical Elective | Parallel Computing List A : Mechatronics, List D : Software Engineering and Society Technical Electives, List E: Software Engineering Technical Electives | More Info. | ||
SFWRENG 4GC3Undergraduate | Sensory Perception, Cognition And Human/Computer Interfaces For Game Design | More Info. | ||
SFWRENG 4HC3Undergraduate | Human Computer Interfaces | More Info. | ||
SFWRENG 4J03Undergraduate / Technical Elective | Communications Systems List A : Mechatronics, List D : Software Engineering and Society Technical Electives, List E: Software Engineering Technical Electives, List G: Computer Science | More Info. | ||
SFWRENG 6GA3Graduate | Real-Time Systems and Computer Game Applications | More Info. | ||
SFWRENG 6GC3Graduate | Sensory Perception, Cognition And Human/Computer Interfaces For Game Design | More Info. | ||
SFWRENG 6HC3Graduate | Human Computer Interfaces | More Info. |

Health informatics and Bioinformatics
Advancing computational theories and software applications to improve our understanding of basic building blocks of life.
The health informatics and bioinformatics are at the cross-section of information technology and health care delivery as well as biomedicine. McMaster researchers are carrying out transformative research in the management of information related to the underlying basic biological processes, making use of the enormous amount of biomedical and healthcare data for knowledge discovery, and designing safety critical medical software and devices to promote health. Our work contributes to the advancement in both fundamental theory and applications on health informatics and bioinformatics related topics.
Related Faculty
Related Courses
Code | Title | Instructor | Outline | Info |
---|---|---|---|---|
CAS 757Graduate | Modern Software Technology for eHealth | Outline | More Info. |

Scientific Computing and Optimization
The design of advanced formulations and algorithms as well as efficient implementation to tackle large scale and complex instances.
Rigorous evidence-based decision-making through quantitative modelling and analysis is one of the key principles behind Scientific Computing and Optimization, a research area with several far-reaching applications across engineering, sciences, and industry. Finding optimal allocations of resources, scheduling tasks, and designing prototypes are a few of the domains this line of research is concerned with. Enhancing and developing new models to handle application driven questions forms a key focus for the faculty members belonging to the Scientific Computing and Optimization research area.
Research Groups
Related Faculty

Dr. Antoine Deza
Professor
Combinatorial and Continuous Optimization, Discrete and Computational Geometry

Dr. Spencer Smith
Associate Professor
software engineering; scientific computing; requirements analysis; program families; finite element method
Related Courses
Code | Title | Instructor | Outline | Info |
---|---|---|---|---|
CAS 708Graduate | Scientific Computation | Outline | More Info. | |
CAS 740Graduate | Numerical Methods for Ordinary Differential Equations and Differential-Algebraic Equations | More Info. | ||
CAS 741Graduate | Development of Scientific Computing Software | Outline | More Info. | |
CAS 746Graduate | Advanced Topics in Combinatorial Optimization | Outline | More Info. | |
COMPSCI 4O03Undergraduate | Linear Optimization Algorithms | More Info. | ||
COMPSCI 4TE3Undergraduate | Continuous Optimization Algorithms | More Info. | ||
COMPSCI 4X03Undergraduate | Scientific Computation | More Info. | ||
COMPSCI 6O03Graduate / Technical Elective | Linear Optimization | Outline | More Info. | |
COMPSCI 6TE3Graduate | Continuous Optimization | Outline | More Info. | |
MECHTRON 3DX4Undergraduate | Dynamic Models and Control of Physical Systems | More Info. | ||
SFWRENG 3DX4Undergraduate | Dynamic Models and Control of Physical Systems | More Info. | ||
SFWRENG 3GB3Undergraduate | Modelling For Virtual Reality | More Info. | ||
SFWRENG 3MX3Undergraduate / Technical Elective | Signals and Systems List G: Computer Science | More Info. | ||
SFWRENG 3O03Undergraduate / Technical Elective | Linear Optimization List F: Additional Technical Electives for Software Engineering and Embedded Systems or Game Design, IBEHS Technical Electives | More Info. | ||
SFWRENG 3O03Undergraduate | Operations Research | More Info. | ||
SFWRENG 4TE3Undergraduate / Technical Elective | Continuous Optimization Algorithms List A : Mechatronics, List D : Software Engineering and Society Technical Electives, List E: Software Engineering Technical Electives, List F: Additional Technical Electives for Software Engineering and Embedded Systems or Game Design, IBEHS Technical Electives | More Info. | ||
SFWRENG 4X03Undergraduate | Scientific Computation | More Info. |

Security, Privacy, and Data Analytics
Reliability and power of data analytics and developing algorithms, tools, and platforms to protect privacy and security.
Organizations are collecting increasingly vast amounts of data with the goal of using data analytics to make better decisions and to provide solutions that are better targeted to individuals, as well as identifying anomalous behaviour that could indicate malicious activity. At the same time, these large datasets, as well as other personal, financial, business, and government information assets are attractive targets for hackers, criminals, and nation-state adversaries, threatening the privacy and security of citizens. At McMaster, our team is working on developing next-generation cryptographic algorithms and protocols, data cleaning and curation solutions, privacy governance and preserving tools, and anomaly detection techniques to ensure the safety and dependability of critical cyber and physical systems.
Research Groups

Related Faculty

Dr. Hassan Ashtiani
Assistant Professor
Machine Learning; Statistical Learning Theory; Algorithms and Complexity

Dr. Fei Chiang
Associate Professor (On research leave, returning July 2021)
database systems; data quality; data privacy; data analytics; information extraction; text mining.

Dr. Rong Zheng
Associate Chair of Graduate Study
Mobile computing, wireless networking, cyber physical systems, active machine learning
Related Courses
Code | Title | Instructor | Outline | Info |
---|---|---|---|---|
CAS 767Graduate | Information Privacy and Security | More Info. | ||
CAS 770Graduate | Modern Cryptography | More Info. | ||
COMPSCI 3IS3Undergraduate / Technical Elective | Information Security List E: Software Engineering Technical Electives | More Info. | ||
COMPSCI 3RA3Undergraduate | Software Requirements and Security Considerations | More Info. | ||
COMPSCI 4C03Undergraduate | Computer Networks and Security | More Info. | ||
SFWRENG 3RA3Undergraduate / Technical Elective | Software Requirements And Security Considerations List A : Mechatronics | More Info. | ||
SFWRENG 4C03Undergraduate / Technical Elective | Computer Networks And Security List A : Mechatronics | More Info. |

Software Quality
Focuses on rigorous engineering approaches to building and evaluating dependable software applications.
Software is everywhere and in everything. It powers our entertainment, social media, financial and management systems, vehicles and transportation in general, medical devices and medical information systems. It even controls our production and use of energy. We have come to depend on software to an extent totally beyond expectation. With that dependence has come the realization that software has to be dependable, secure, and must not pose undue risks to its users. Software Engineering plays a pivotal role in this technological world. It builds on our knowledge from Mathematics, Computer Science, Economics, Management, and System Safety, to produce principles, models, methods and tools that help us build demonstrably dependable, secure, safe and efficient software systems.
Our group has expertise in essential areas of Software Engineering, including: Rigorous software development processes; Requirement formal approaches and tools, especially tabular expressions; Product families formal specification and architecture; Validation & verification of complex systems formal approaches applicable in practice; Multicore concurrency; Software Engineering approaches to Scientific Computation; Domain Specific Languages; Generative Programming specifically; and Model-Driven Engineering of Cyber-Physical Systems in general; and the Development and Certification of Safety-Critical Systems. We have applied our methods, tools and theories to the nuclear power industry, medical devices; automotive, financial legacy systems, water quality, and serious gaming. Our members are active in the Formal Requirements and Information Security Enhancement Research Group (FRAISE), the Gaming Scalability Environment project (G-ScalE), and the McMaster Centre for Software Certification (McSCert). We are co-founders of the Software Certification Consortium (SCC) a group of researchers and practitioners primarily in North America, from government agencies, industry and academia, and who are actively involved in building and certifying software-intensive safety-critical systems.
Related Faculty

Dr. Jacques Carette
Undergraduate Advisor for Software Engineering
metaprogramming; mechanized mathematics; game design; programming languages; probabilistic programming

Dr. Ryan Leduc
Graduate Advisor for Software Engineering
Discrete-Event Systems (fault tolerance and detection, hierarchical structure, concurrency and implementation); Formal Verification of Hardware and Software

Dr. Spencer Smith
Associate Professor
software engineering; scientific computing; requirements analysis; program families; finite element method
Related Courses
Code | Title | Instructor | Outline | Info |
---|---|---|---|---|
CAS 703Graduate | Software Design | Outline | More Info. | |
COMPSCI 2XB3Undergraduate | Computer Science Practice and Experience: Binding Theory to Practice | More Info. | ||
MECHTRON 3TB4Undergraduate | Embedded Systems Design II | More Info. | ||
SFWRENG 2AA4Undergraduate | Software Design I - Introduction to Software Development | More Info. | ||
SFWRENG 2XA3Undergraduate | Software Engineering Practice and Experience: Software Development Skills | More Info. | ||
SFWRENG 2XB3Undergraduate | Software Engineering Practice and Experience: Binding Theory to Practice | More Info. | ||
SFWRENG 3A04Undergraduate | Software Design II - Large System Design | More Info. | ||
SFWRENG 3BB4Undergraduate | Software Design III - Concurrent System Design | More Info. | ||
SFWRENG 3K04Undergraduate | Software Development | More Info. | ||
SFWRENG 3S03Undergraduate / Technical Elective | Software Testing List G: Computer Science | More Info. | ||
SFWRENG 3XA3Undergraduate | Software Engineering Practice & Experience: Software Project Management | More Info. | ||
SFWRENG 4G06A/BUndergraduate | Software Engineering Capstone Design Project | More Info. |

Theory and Methodologies of Computation
Create efficient algorithms to solve problems, and investigate computational models and their limits.
McMaster researchers are working on a wide range of topics in theoretical computer science, foundations of software engineering, and includes applications to knowledge representation and synthesis of software from mathematical specifications. Our researchers are active in exploring the limits of the problems that can be solved by computer programs, and in designing algorithms that solve problems on strings and networks effectively, with awareness for energy preservation. We design high-level formalisms for mechanised mathematics and logical specification of ontologies and software architecture, and develop tools for software synthesis using rigorous mathematical foundations.
Research Groups
Related Faculty

Dr. Hassan Ashtiani
Assistant Professor
Machine Learning; Statistical Learning Theory; Algorithms and Complexity

Dr. Jacques Carette
Undergraduate Advisor for Software Engineering
metaprogramming; mechanized mathematics; game design; programming languages; probabilistic programming

Dr. William M. Farmer
Professor
logic; mechanized mathematics; mathematical knowledge management; formal methods

Dr. Ryszard Janicki
Professor
concurrency; abstract approximation; rough sets; non-numerical ranking, fundamentals of software engineering, tabular expressions, mereology

Dr. Ryan Leduc
Graduate Advisor for Software Engineering
Discrete-Event Systems (fault tolerance and detection, hierarchical structure, concurrency and implementation); Formal Verification of Hardware and Software

Dr. Jeffery Zucker
Professor Emeritus
Generalised computability theory, including computability on the reals and analog computability; Logical foundations of software documentation; Program semantics
Related Courses
Code | Title | Instructor | Outline | Info |
---|---|---|---|---|
CAS 701Graduate | Logic and Discrete Mathematics | Outline | More Info. | |
CAS 702Graduate | Data Structures and Algorithms | Outline | More Info. | |
CAS 705Graduate | Computability and Complexity | Outline | More Info. | |
CAS 706Graduate | Programming Languages | Outline | More Info. | |
CAS 707Graduate | Formal Specification Techniques | Outline | More Info. | |
CAS 722Graduate | Computing Patterns in Strings | Outline | More Info. | |
CAS 724Graduate | Concurrency Theory | More Info. | ||
CAS 732Graduate | Logical Foundations of Computer Science | More Info. | ||
CAS 744Graduate | Advanced Topics in Design of Algorithms | More Info. | ||
CAS 758Graduate | Advanced Compiler Design and Optimization | Outline | More Info. | |
CAS 770Graduate | Modern Cryptography | More Info. | ||
COMPSCI 2C03Undergraduate | Data Structures and Algorithms | More Info. | ||
COMPSCI 2FA3Undergraduate | Discrete Mathematics with Applications II | More Info. | ||
COMPSCI 3AC3Undergraduate / Technical Elective | Algorithms and Complexity List E: Software Engineering Technical Electives | More Info. | ||
COMPSCI 3EA3Undergraduate / Technical Elective | Software Specifications and Correctness List E: Software Engineering Technical Electives | More Info. | ||
COMPSCI 4ML3Undergraduate / Technical Elective | Introduction to Machine Learning List A : Mechatronics, List E: Software Engineering Technical Electives | More Info. | ||
COMPSCI 4TB3Undergraduate / Technical Elective | Syntax Based Tools and Compilers List D : Software Engineering and Society Technical Electives, List E: Software Engineering Technical Electives | More Info. | ||
COMPSCI 6TB3Graduate / Technical Elective | Syntax Based Tools and Compilers | More Info. | ||
COMPSCI 6TC3Graduate | Recursive Function Theory and Computability | More Info. | ||
SFWRENG 2C03Undergraduate | Data Structures And Algorithms | More Info. | ||
SFWRENG 2DM3Undergraduate | Discrete Mathematics with Applications I | More Info. | ||
SFWRENG 2FA3Undergraduate | Discrete Mathematics with Applications II | More Info. | ||
SFWRENG 2S03Undergraduate | Principles Of Programming | More Info. | ||
SFWRENG 3TC3Undergraduate / Technical Elective | Theory of Computation List D : Software Engineering and Society Technical Electives, List E: Software Engineering Technical Electives | More Info. | ||
SFWRENG 4E03Undergraduate / Technical Elective | Performance Analysis Of Computer Systems List A : Mechatronics, List F: Additional Technical Electives for Software Engineering and Embedded Systems or Game Design | More Info. |