Student Research Supervision

Brendan Fallon, Masters of Engineering (M.Eng.) Student
September 2020 to Present


Brendan is part of the EMgine (Emotion Engine) project. He is developing an interface so that EMgine can communicate with the Unity game development platform.

For this work, Brendan developed a process and rubric for evaluating game engines with respect to their Non-Player Character (NPC) capabilities and is building a module in Unity for EMgine to interface with to guage how much effort a developer might exert to use EMgine in their game projects.

Co-supervised with Dr. Jacques Carette

McMaster University—Teaching Assistant

Game Design (SFWRENG 3GB3)
Winter Term (January to April)—2023


Course Description

Game concepts. Creative and expressive play. Storytelling and narratives. User interfaces for games. Gameplay. Core mechanics. Game Balancing. Software architecture of games. Level design. Genres. Physics Engines.

Duties & Tasks
  • Co-designed course with course instructor Sasha Soraine, including curriculum development and assignment planning
  • Lead bi-weekly tutorials which included one-hour lecture and one-hour of student work for assessment
  • Supervised eight teams of five students during a term-long game design and Unity development project

Human Computer Interaction (COMPSCI/SFWRENG 4HC3)
Fall Term (September to December)—2021, 2018, 2017, 2016, 2015, 2014


Course Description

Design of user interfaces. Principles of good interface design. Human input. Displaying complex data using graphics and virtual reality. Modes and mode awareness problem. Health issues, information overload. Special purpose graphics hardware. Interface design tools; on-line help systems.

Duties & Tasks
  • Ran weekly tutorials to strengthen students' understanding of fundamental design concepts relevant to user interfaces, writing research papers, and user study design and execution (in-person and virtually)
  • Met with students to discuss assignment feedback and improve their understanding of course topics
  • Provided constructive feedback on student work involving user interface critiques and user study design in writing and conversation

Data Structures and Algorithms (COMPSCI 2C03)
Winter Term (January to April)—2022, 2017, 2016


Course Description

Basic data structures: stacks, queues, hash tables, and binary trees; searching and sorting; graph representations and algorithms, including minimum spanning trees, traversals, shortest paths; introduction to algorithmic design strategies; correctness and performance analysis.

Duties & Tasks
  • Encouraged students to contribute to solution development in tutorials (in-person and virtually)
  • Planned weekly tutorials with the course instructor
  • Prepared and provided solutions to weekly tutorials via the course delivery platform (Avenue to Learn) based on questions from Algorithms by Sedgewick and Wayne (4th Ed.)

Practice and Experience: Basic Concepts (COMPSCI 1XA3)
Winter Term (January to April)—2019, 2018, 2015


Course Description

Practical experience with implementing basic CS concepts such as data representation, recursion, computer architecture, concurrency. Hands-on application of CS concepts to formulating, analyzing, and solving problems.

Duties & Tasks
  • Taught beginner programming concepts, such as data types, control structures, and file processing, to first year computer science students using Python
  • Collaborated with the professor to create hands-on tutorials, as well as assignments and quizzes with sample solutions and grading schemes
  • Graded and returned bi-weekly student assignments within a week of the submission date

Software Testing (SFWRENG 3S03)
Winter Term (January to April)—2021, 2020


Course Description

Measurements. Unit testing, slicing and debugging, integration testing, regression testing, testing strategies, test coverage.

Duties & Tasks
  • Created and delivered interactive tutorial content for assignment review and software test planning (in-person and virtually)
  • Developed grading rubrics for assignments
  • Provided per-question feedback and grade breakdowns on student assignments

Software Requirements and Security Considerations (COMPSCI/SFWRENG 3RA3)
Fall Term (September to December)—2019


Course Description

Software requirements gathering. Critical systems requirements gathering. Security requirements. Traceability of requirements. Verification, validation, and documentation techniques. Software requirements quality attributes. Security policies. Measures for data confidentiality. Design principles that enhance security. Access control mechanisms.

Duties & Tasks
  • Ran tutorial sessions with hands-on activities concerning requirement elicitation
  • Graded and provided feedback on student assignments

Digital Systems and Interfacing (SFWRENG 2DA4)
Fall Term (September to December)—2020


Course Description

Memory, binary arithmetic, hierarchical design. Hardware/software co-design and application specific processors. Interfacing to I/O devices.

Duties & Tasks
  • Prepared for weekly labs by implementing the described system in Verilog via Quartus with the DE1-SoC board as the target device
  • Supervised and evaluated weekly hardware labs via Microsoft Teams with an undergraduate TA (virtually)
  • Maintained student grade spreadsheet (Excel) and course delivery platform (Avenue to Learn)

Student Research Supervision

Brendan Fallon, Masters of Engineering (M.Eng.) Student
September 2020 to Present


Brendan is part of the EMgine (Emotion Engine) project. He is developing an interface so that EMgine can communicate with the Unity game development platform.

For this work, Brendan developed a process and rubric for evaluating game engines with respect to their Non-Player Character (NPC) capabilities and is building a module in Unity for EMgine to interface with to guage how much effort a developer might exert to use EMgine in their game projects.

Co-supervised with Dr. Jacques Carette

McMaster University—Teaching Assistant

Game Design (SFWRENG 3GB3)
Winter Term (January to April)—2023


Course Description

Game concepts. Creative and expressive play. Storytelling and narratives. User interfaces for games. Gameplay. Core mechanics. Game Balancing. Software architecture of games. Level design. Genres. Physics Engines.

Duties & Tasks
  • Co-designed course with course instructor Sasha Soraine, including curriculum development and assignment planning
  • Lead bi-weekly tutorials which included one-hour lecture and one-hour of student work for assessment
  • Supervised eight teams of five students during a term-long game design and Unity development project

Human Computer Interaction (COMPSCI/SFWRENG 4HC3)
Fall Term (September to December)—2021, 2018, 2017, 2016, 2015, 2014


Course Description

Design of user interfaces. Principles of good interface design. Human input. Displaying complex data using graphics and virtual reality. Modes and mode awareness problem. Health issues, information overload. Special purpose graphics hardware. Interface design tools; on-line help systems.

Duties & Tasks
  • Ran weekly tutorials to strengthen students' understanding of fundamental design concepts relevant to user interfaces, writing research papers, and user study design and execution (in-person and virtually)
  • Met with students to discuss assignment feedback and improve their understanding of course topics
  • Provided constructive feedback on student work involving user interface critiques and user study design in writing and conversation

Data Structures and Algorithms (COMPSCI 2C03)
Winter Term (January to April)—2022, 2017, 2016


Course Description

Basic data structures: stacks, queues, hash tables, and binary trees; searching and sorting; graph representations and algorithms, including minimum spanning trees, traversals, shortest paths; introduction to algorithmic design strategies; correctness and performance analysis.

Duties & Tasks
  • Encouraged students to contribute to solution development in tutorials (in-person and virtually)
  • Planned weekly tutorials with the course instructor
  • Prepared and provided solutions to weekly tutorials via the course delivery platform (Avenue to Learn) based on questions from Algorithms by Sedgewick and Wayne (4th Ed.)

Practice and Experience: Basic Concepts (COMPSCI 1XA3)
Winter Term (January to April)—2019, 2018, 2015


Course Description

Practical experience with implementing basic CS concepts such as data representation, recursion, computer architecture, concurrency. Hands-on application of CS concepts to formulating, analyzing, and solving problems.

Duties & Tasks
  • Taught beginner programming concepts, such as data types, control structures, and file processing, to first year computer science students using Python
  • Collaborated with the professor to create hands-on tutorials, as well as assignments and quizzes with sample solutions and grading schemes
  • Graded and returned bi-weekly student assignments within a week of the submission date

Software Testing (SFWRENG 3S03)
Winter Term (January to April)—2021, 2020


Course Description

Measurements. Unit testing, slicing and debugging, integration testing, regression testing, testing strategies, test coverage.

Duties & Tasks
  • Created and delivered interactive tutorial content for assignment review and software test planning (in-person and virtually)
  • Developed grading rubrics for assignments
  • Provided per-question feedback and grade breakdowns on student assignments

Software Requirements and Security Considerations (COMPSCI/SFWRENG 3RA3)
Fall Term (September to December)—2019


Course Description

Software requirements gathering. Critical systems requirements gathering. Security requirements. Traceability of requirements. Verification, validation, and documentation techniques. Software requirements quality attributes. Security policies. Measures for data confidentiality. Design principles that enhance security. Access control mechanisms.

Duties & Tasks
  • Ran tutorial sessions with hands-on activities concerning requirement elicitation
  • Graded and provided feedback on student assignments

Digital Systems and Interfacing (SFWRENG 2DA4)
Fall Term (September to December)—2020


Course Description

Memory, binary arithmetic, hierarchical design. Hardware/software co-design and application specific processors. Interfacing to I/O devices.

Duties & Tasks
  • Prepared for weekly labs by implementing the described system in Verilog via Quartus with the DE1-SoC board as the target device
  • Supervised and evaluated weekly hardware labs via Microsoft Teams with an undergraduate TA (virtually)
  • Maintained student grade spreadsheet (Excel) and course delivery platform (Avenue to Learn)