crackmitacsAll disciplines

Engg-Software

36 Mitacs Globalink (GRI) research projects for Summer 2027.

1. AI-Powered Student Success Coaching and Skill Development Platform with Personalized Learning Resource Recommendation

As the complexity of skills being asked for in academia and professional environments continues to grow, a lack of personalisation and adaptive support for student learning is becoming more apparent. While existing educational tools offer generic content delivery. This research project aims to create a novel Coaching Advisor that leverages Large Language Models (LLMs) and Retrieval-Augmented Generation (RAG) to provide students with personalised skill-gap detection with a faculty-governed, dynamically updated resource repository. Since students do not always know where to find suitable resources for self-directed learning, or what skills to focus on to meet their academic or professional goals. Step 1: Student Profiling and Skill-Gap Detection: An independent, AI-driven Advisory will assist students in assessing their past academic history, accomplishments, learning style, and skill development needs. A structured Profile Module will establish and quantify, by rank order, each student's individual academic needs, which then can be used to make recommendations for all future activities Step 2: Autonomous Resource Recommendation and Delivery: Using the identified skill gaps, the agent will retrieve resources from faculty-approved sources and present them to the student in a structured format, along with clearly defined learning outcomes and milestones, and explanations of how each resource supports the student's development. A back-end resource management system will enable faculty members with sufficient authorisation to manage resources in the repository. Recommendations will remain accurate, relevant, up-to-date, and academically correct. The project will employ a human-in-the-loop methodology, giving faculty oversight of the resource repository while allowing for student input regarding the usefulness of each resource, their progress in learning, and the quality of the overall recommendations made. Ultimately, the system aims to improve student self-sufficiency and reduce the time required to bridge identified skill gaps, contributing to better academic and career readiness.

Research area, student roles & skills

Research area: Beside my AI-driven patient monitoring research in MamatjanLab, I developed a second major research direction in responsible AI adaption for engineering education. Building on my experience designing modular AI pipelines for health coaching and decision support, I apply similar system-design principles to student coaching, skill-gap detection, curriculum alignment, and accreditation support. I have advanced this area through invited talks, conference presentations, graduate supervision, and leadership in AI in Education initiatives, including supervising a master’s student and publications. My expertise combines AI system architecture, human-in-the-loop design, educational analytics, and responsible AI adoption to support student success and continuous curriculum improvement.

Student roles:
The student will participate in the following activities:
• Designing and implementing the AI-powered coaching advisor agent architecture, including the LLM and RAG integration pipeline.
• Developing the skill-gap profiling module that identifies and prioritises individual learner deficiencies.
• Building and integrating the faculty-facing backend interface for resource submission, management, and updates.
• Evaluating the system's recommendation quality using appropriate relevance and accuracy metrics.
• Documenting, analysing, discussing, and presenting the obtained results and developed systems.
• Performing weekly meetings with the supervisor.
• Writing a final report that summarises the background, approach, obtained results, and future directions.
• Making presentations and attending a conference.

Skills required:
• Strong programming skills (Python preferred)
• Basic knowledge of machine learning and artificial intelligence
• Familiarity with RESTful APIs and backend development
• Basic understanding of Natural Language Processing (NLP)
• Knowledge of database management systems
• Familiarity with web development frameworks (preferred, but not required)

2. Agentic AI for Software Engineering

The project involves R&D on agent communication and various models and architectures. The multi-agent communications is bounded by NL representation, but it can be expanded to non-NL representations. On a similar note, the LLM responses are not trustworthy and/or explainable. There are several questions to be answered: How to ensure other representations extend the explanaibility? How to find other communication channels that help efficiency and performance? How to tune the models towards more specialized smaller LLMs? How to study the skills used by agents and their efficiency, security, and privacy aspect? The project would align with Agentic LLMs and Agentic pipelines in software engineering, while the exact methodology will be defined closer to the start date, given the fast pace of advancements in AI.

Research area, student roles & skills

Research area: We work at the intersection of AI and SE, with advancing core AI techniques for software engineering.

Student roles:
The student will be involved in all parts of the project. As a student working on this project, you should:
1- Spend a few days to become familiar with the lab environment and the project you will be working on including the libraries and tools. (weeks 1)
2- Become familiar with the literature and models that you should be working with. (week 2)
3- Become familiar with the project, models, datasets. (week 3)
4- Run/develop the model and get results. (weeks 4-8)
5- Wrap up and documentation. (Week 9-12)

You will be required to write weekly short reports on your progress and the steps for your algorithms or your code.
You will be required to be punctual and we will have daily meetings, known as SCRUM, in agile software development.
Please note that your main responsibility is writing code to conduct the project and also doing research. You will be provided with the required techniques that you should use, and you have to become familiar with the required libraries. However, in the first 2-3 weeks, you have to learn about the required architectures. As deep learning research and models change so quickly, you should be willing to read some papers and research some of the ideas before the implementation. If you are interested, you are more than welcome to do research and develop your own methodology, but that may be a longer-term goal and do not completely fit in a 12-week program. A benefit of this research is to submit a research paper with the help of graduate students and myself. The student will work directly with a senior lab member.

Skills required:
+Proficient in: Java Python
+Proficient in: Linux command lines
+Proficient in: deep learning concepts and coding
+Proficient in: PyTorch library or other deep learning frameworks
+ Proficient in: running code on a GPU cluster
+ Have previous experience with agentic framework development
+Familiar with Agile Software Development and GitHub
+Interested in software analytics, text mining, natural language processing, Machine learning, and Deep learning
+Fluent in Reading/Writing/Speaking English
+Interested and be able to read research papers, and adapt new ideas to

3. Agentic AI-Human Collaboration in Software Development

Agentic AI systems are rapidly transforming software development by autonomously performing tasks traditionally carried out by human developers. Modern AI agents can generate code, review pull requests, fix bugs, write tests, and assist with deployment activities. Despite these capabilities, important challenges remain regarding the interaction between human developers and AI agents. Developers must decide when to trust agent-generated outputs, how to supervise autonomous actions, and how to effectively collaborate with multiple AI agents during software development activities. This project aims to study and improve human-agent collaboration in software engineering. The student will investigate how developers interact with AI agents during coding, code review, debugging, and software maintenance tasks. Using empirical software engineering methods, the project will analyze developer-agent interactions, identify common collaboration challenges, and evaluate factors affecting productivity, trust, cognitive workload, and software quality. The project will involve collecting and analyzing data from software repositories, developer studies, and controlled experiments involving AI-assisted development tools. The student will also contribute to the design and evaluation of novel approaches that enhance transparency, explainability, and reliability of agentic AI systems. The outcomes of this project will provide valuable insights into the future of software development and contribute to the design of trustworthy and effective human-AI collaboration environments.

Research area, student roles & skills

Research area: This project focuses on Agentic AI and Software Engineering. Recent advances in large language models have enabled AI agents that can autonomously perform software development tasks such as coding, testing, debugging, code review, and DevOps activities. While these systems offer significant productivity benefits, their effective integration into software development workflows remains poorly understood. This project investigates how human developers collaborate with AI agents, identifies factors influencing trust, productivity, and software quality, and develops techniques to improve human-agent collaboration in real-world software engineering environments.

Student roles:
The student will participate in all stages of the research project. Responsibilities include conducting literature reviews on Agentic AI and human-AI collaboration, collecting and analyzing data from software repositories and AI-assisted development environments, designing and conducting empirical studies and experiments, and implementing software prototypes and research tools.

The student will collaborate closely with graduate students and researchers in the Software Engineering Research Laboratory at ÉTS Montréal. They will apply quantitative and qualitative research methods to investigate developer-agent interactions and evaluate the effectiveness of proposed solutions.

The student will contribute to data analysis, result interpretation, technical reporting, and research dissemination activities. Depending on progress, the student may also contribute to the preparation of research publications for leading software engineering conferences and journals.

The internship offers a unique opportunity to gain hands-on experience in cutting-edge research on Agentic AI, software engineering, empirical studies, and human-centered AI systems while working within an internationally recognized research group.

Skills required:
Applicants should have a background in Computer Science, Software Engineering, Artificial Intelligence, Data Science, or a related field. Experience with programming (e.g., Python, Java, JavaScript), software development practices, machine learning, or large language models is desirable. Familiarity with Git/GitHub, empirical research methods, data analysis, and software engineering tools is an asset. Strong analytical skills, motivation for research, and good communication abilities are expected.

4. Applications of AI for automated diagnosis of ophthalmic disease

The proejct will involve developing new AI models for automated diagnosis of clinical conditions based on photographs (OCT or Fundus) of the retina of the eye

Research area, student roles & skills

Research area: I work in vaious aspects of multidisciplinary science ranging from optical science and engineering to image processing and AI.

Student roles:
Do extensive literature search in the selected area
program and trouble shoot software for AI
work with clincian
analyze results
write draft of paper or presentaiton to be presented at a conference

Skills required:
Good programming skills (Python,C++, MATLAB, etc)
Experience in using deep learning alrgorithms.
knowledge of elementary statistics and linear algebra as applied to image processing

5. Automated Engineering of Reinforcement Learning Environments

Virtual training environments are software-intensive systems in which reinforcement learning (RL) agents learn, adapt, and demonstrate meaningful behavior. Such environments offer a safe and cost-efficient alternative to training agents in real-world settings. However, to converge, most realistic RL problems require training in multiple, mostly similar but slightly different environments, i.e., families of environment variants. The typical development process of environment families is a labor-intensive and error-prone manual endeavor that does not scale well. Recently, we developed a method for the automated engineering (generation) of RL environment families. In this project, you will extend our previous work by developing new features, techniques, algorithms, and tools for the generation of RL environments. Your approach will consider hard and soft constraints, human preferences, etc. The minimal outcome of your work will be a nice open-source project that you can put on your CV. Ideally though, and if the results are strong enough, you will be encouraged to publish your results in a nice conference or journal paper and receive every support from our lab in the process. (We have a strong track record of publishing award-winning papers with undergraduate students.)

Research area, student roles & skills

Research area: My research is situated under the broader umbrella of systems engineering. Reinforcement learning (RL) has been particularly interesting to us because it helps us accelerate complex engineering processes. We are conducting frontier research on challenging RL problems, e.g., the ones with super-sparse reward structures and massively multi-dimensional state spaces, and on principled software engineering techniques to address these challenging setups. Some topics of interest include guided RL, generating environment families under structural constraints, curriculum learning, etc. I maintain additional lines of research on select topics in digital twins, cyber-physical systems, modeling and simulation, and information systems engineering.

Student roles:
You will work in a team with the professor and a graduate researcher. You will solve well-defined technical and/or scientific challenges within our research line focusing on guided reinforcement learning. Most of your work will consist of discussing research problems within the team; solving them, mostly by programming; running experiments (e.g., performance evaluation of a reinforcement learning method); and discussing your advancement time by time.

We foster an egalitarian culture in our lab, which means that we treat you as a colleague: we work together, ideate together, and solve problems together. You and the PI will scope your internship in a way that is interesting and motivating for you, and useful for our lab. Ours is a particularly high-paced research environment that requires above-average drive, autonomy, and communication skills. Apply only if you consider yourself an excellent, motivated, and driven student and you truly want to excel in your profession.

Skills required:
1. Rock-solid object-oriented programming skills, particularly in Python.
2. Rock-solid understanding of the typical software engineering lifecycle. At minimum, you will need to be comfortable with using git/GitHub and be able to debug RL programs.
3. Possess some background knowledge in reinforcement learning. For example, understand what a policy gradient algorithm is and be able to implement it from scientific literature.
4. Optionally: experience with LLMs and RAG. (Not mandatory!)
5. Ability to read technical reports and scientific articles.
6. Ability to analyze data and write reports.
7. Autonomous and goal-oriented personality. Excellent communication skills.

6. Automation of deployment and testing of IoT applications

IoT applications undergo extensive testing due to stringent safety and performance requirements and the heterogeneity of the environments in which they are deployed. Virtualization is a practical solution to address this heterogeneity; however, it comes at the cost of a complicated and often time-consuming deployment. Automation can help reduce human intervention in such testing and enable reliable deployment and testing of IoT applications. The goal of this project is to automate the deployment and testing of IoT applications, taking into consideration the specification of the testing environment as well as the actions to be taken during testing. The implementation should start from a set of specifications for the environments in which testing is to be conducted, as well as the tests to be conducted. It should then use automation tools to deploy and execute the tests on the deployed environments and collect the relevant data.

Research area, student roles & skills

Research area: My work focusses on automation of software engineering activities. I worked on the automation of live upgrade and live testing of cloud systems. Model Driven Engineering (MDE) is my approach of choice in the automation of software engineering activities. I often use UML as a modeling environment, and extend it as needed using UML Profiles or Domain Specific Modeling Languages (DSMLs). Recently I became interested in the integration of AI in MDE based automation solutions. This integration will help tackle several issues that hamper the fast adoption of MDE based solutions.

Student roles:
1) Review of the state of the practice and assess the useability of existing solutions
2) Use analysis skills to identify the required functionnalities and the architectural constraints
3) Develop an implementation that realizes the identified functionnalities
4) Document the implemented solution

Skills required:
1) Strong background in software modeling and programing
2) Good python or bash scripting skills
3) Familiarity with cloud concepts
4) Analysis and problem solving skills
5) Good spoken and written English or French

7. Automation of security testing in cloud environment

Security testing aims to identify the vulnerabilities that threaten the users of software products. Such testing is often time consuming and requires hardware resources that service providers often cannot afford. Cloud providers offer a low-cost access to powerful hardware infrastructure. As a result, such infrastructure can be used by software vendors to security test their products in a cost-efficient manner. Manually deploying the environment for security testing is a tedious an error-prone task. A solution that automates such activity will not only help alleviate the risk associated with the human error, but also enables the broadening of the spectrum of security testing since more tests will be feasible in shorter time. The aim of this project is to implement a solution for the automation of the deployment of security testing environments in a cloud infrastructure. The implementation should start from a user provided description of the test environment, and use the tools available to automate the deployment of such environment in a cloud infrastructure. The project will use tools for the automation of the orchestration such as Kubernetes, Docker, Ansible, and Linux scripting.

Research area, student roles & skills

Research area: My work focusses on automation of software engineering activities. I worked on the automation of live upgrade and live testing of cloud systems. Model Driven Engineering (MDE) is my approach of choice in the automation of software engineering activities. I often use UML as a modeling environment, and extend it as needed using UML Profiles or Domain Specific Modeling Languages (DSMLs). Recently I became interested in the integration of AI in MDE based automation solutions. This integration will help tackle several issues that hamper the fast adoption of MDE based solutions.

Student roles:
1) Review of the state of the practice and assess the useability of existing solutions
2) Use analysis skills to identify the required functionnalities and the architectural constraints
3) Develop an implementation that realizes the identified functionnalities
4) Document the implemented solution

Skills required:
1) Strong background in software modeling and programing
2) Good python or bash scripting skills
3) Familiarity with cloud concepts
4) Analysis and problem solving skills
5) Good spoken and written English or French

8. Automation of the migration to microservices

Refactoring is a key activity in software engineering. It improves software quality by changing the design, structure, or implementation while preserving the same behaviour and semantics. The rapid adoption of cloud computing has increased interest in refactoring, as many industry actors are working to migrate their legacy monolithic software to more cloud-compatible architectures, such as microservices. Such migration involves decomposing the existing codebase into separate microservices that can be compiled, deployed, and scaled independently. The aim of this project is to contribute to the development of a tool that automates this migration process. The project will focus on refactoring and on automating code changes to migrate to a microservice-based architecture.

Research area, student roles & skills

Research area: My work focusses on automation of software engineering activities. I worked on the automation of live upgrade and live testing of cloud systems. Model Driven Engineering (MDE) is my approach of choice in the automation of software engineering activities. I often use UML as a modeling environment, and extend it as needed using UML Profiles or Domain Specific Modeling Languages (DSMLs). Recently I became interested in the integration of AI in MDE based automation solutions. This integration will help tackle several issues that hamper the fast adoption of MDE based solutions.

Student roles:
1) Review of the state of the practice and assess the useability of existing solutions
2) Use analysis skills to identify the required functionnalities and the architectural constraints
3) Develop an implementation that realizes the identified functionnalities
4) Document the implemented solution

Skills required:
1) Strong background in software modeling and programing
2) Good python or bash scripting skills
3) Familiarity with cloud concepts
4) Analysis and problem solving skills
5) Good spoken and written English or French

9. Autonomous Software Agent for Pull Request Analysis and Resolution

Software agents are advanced AI tools designed to autonomously understand and act in various software engineering tasks. These agents possess the capability to grasp various language nuances and provide appropriate responses within seconds. The agent leverages LLMs to analyze code changes, understand intent, and assist in the review and resolution process. It is designed to support developers by identifying potential issues, suggesting improvements, and, in some cases, generating fixes aligned with project standards. By integrating automated reasoning with software engineering practices, the system aims to improve the efficiency, consistency, and reliability of pull request management while reducing manual review effort.

Research area, student roles & skills

Research area: My research interests cover a wide range of software engineering-related topics including software agents, software quality, empirical software engineering, mining software repositories and SE4AI.

Student roles:
Students collaborate with other team members in the development and implementation of the agent(s) that leverages Large Language Models (LLMs) to help practitioners in resolving the pull-request. This includes coding, scripting, and configuring the automated workflows and integration pipelines. Furthermore, they are responsible for testing the effectiveness and efficiency of the developed chatbot. This involves conducting thorough evaluations, identifying strengths, weaknesses, and areas for improvement, and providing constructive feedback.

Skills required:
- A strong foundation in software development is essential, including proficiency in languages such as Python.
- Understanding software development processes, version control systems (e.g., Git), and software architecture principles is crucial.
- The ability to analyze large datasets and extract meaningful insights from them is necessary for leveraging LLMs effectively.

10. Cost-Performance Optimization of Hybrid Cloud Networking Using Measurement-Driven Approaches

This project focuses on developing a measurement-driven framework to optimize the cost and performance of hybrid cloud networking between AWS and Google Cloud. The student will design and implement a system that continuously measures network performance (latency, throughput, jitter) and cloud pricing in real time, then uses this data to make intelligent routing and resource allocation decisions. The goal is to reduce networking costs while maintaining or improving application performance. This applied research project has strong industrial relevance and aims to produce both a working prototype and a research paper suitable for publication in a cloud computing or networking conference.

Research area, student roles & skills

Research area: My research focuses on computer networking and network measurement, with a particular interest in modern cloud networking architectures. My expertise lies in evaluating the performance, reliability, and security of large-scale networks, including hybrid and multi-cloud environments. I combine theoretical knowledge from my PhD with practical cloud skills (AWS and GCP) to study how real-world cloud networks behave under different conditions.

Student roles:
The student will play a major hands-on and developmental role and will be responsible for:

Setting up hybrid networking environments between AWS and Google Cloud
Developing scripts and tools to collect real-time network performance and cost data
Designing and implementing optimization algorithms or heuristics based on measurement data
Building a prototype system that dynamically adjusts networking paths or resources
Running experiments to validate the effectiveness of the proposed approach
Analyzing results, creating visualizations, and comparing against baseline methods
Contributing to the research paper (especially methodology, system design, and evaluation sections)
Participating in regular project meetings and demos

Skills required:
Good understanding of computer networking fundamentals
Strong programming skills in Python (especially for automation and data analysis)
Experience with Linux and command-line tools
Interest in cloud computing, cost optimization, and data-driven systems
Analytical mindset and good technical writing skills

Prior experience with AWS or Google Cloud APIs is helpful but not mandatory. The student will be trained on the required cloud services and tools.

11. Designing Secure and Reliable AI-Enabled Software Systems for Digital Health: From Heterogeneous Patient Data to Real-World Stroke Risk Coaching Implementation

Many patients at elevated risk of brain stroke require continuous support for lifestyle modification, medication adherence, symptom awareness, and management of risk factors such as blood pressure, diabetes, physical inactivity, diet, smoking, and stress. Recent advances in small language models, speech processing, wearable sensing, and embedded software systems make it possible to design privacy-focused, local on-device health coaching tools that can support patients in daily self-management. This research project will develop a proof-of-concept modular health coaching pipeline to help individuals reduce their risk of stroke through personalized, AI-assisted guidance. The system will require a microphone, speaker, and optional integration with patient-generated health data such as wearable activity, blood pressure, or self-reported lifestyle information. When the user speaks aloud, their question or health update will be transcribed using a speech-to-text model, displayed on the screen, and processed by a small language model to provide a personalized coaching response. The system will support reminders, educational feedback, risk-factor tracking, and goal-oriented coaching related to stroke prevention. All computing will occur locally on the assistive device, with no dependence on cloud processing, to support privacy, security, transparency, and practical deployment. Step 1: Identify and configure appropriate open-source tools, databases, memory management techniques, and models for the proposed health coaching pipeline based on the literature. Step 2: Create ‘Lightweight’ knowledge base (KB) that stores person profiles that can be queried by integrating SLM through agentic tool-use approach. New people will be added to the KB via an enrollment workflow using voice or text. Step 3: Integrate all modules and evaluate the system’s response quality, usability, safety, personalization, and latency using simulated patient coaching scenarios. The final outcome will be a proof-of-concept demonstration of how AI and software engineering methods can be combined into a modular, interpretable, and privacy-focused health coaching system for stroke risk reduction.

Research area, student roles & skills

Research area: Healthcare systems increasingly rely on integrating medical imaging, clinical information and patient-generated data into meaningful clinical decision support. However, many approaches remain difficult to translate into clinical practice because they lack reproducibility, validation, reliability and human oversight. We aim to develop diagnostic tools and Smart digital health monitoring systems by applying AI, LLM techniques to improve disease diagnosis. As an expert in translational medicine and applied machine learning (ML) to developed >20 ML models and healthcare pipeline including stroke risk predictor, heart attack risk stratification, Diabetes etc. I authored 60+ journals, 150+ conference publications. (refer to my lab: https://www.mamatjanlab.com/).

Student roles:
Build and connect the system modules into a working pipeline using Python.
Set up a simple database to store and manage person profiles.
Test the full system using realistic scenarios and document the results.
Meet weekly with the supervisor to discuss progress.
Write a final report covering the approach, implementation, and findings.
Present the project at the end of the term.

Skills required:
Strong python programming skills
Basic understanding of machine learning concepts
Basic understanding of SLM
Basic understanding of Computer Vision

12. Development of a Gamified Learning Environment for Engineering Education

Engineering students often encounter challenges in developing a deep understanding of fundamental circuit analysis concepts, particularly in large-enrolment courses where opportunities for individualized interaction and collaborative learning are limited. While traditional instructional approaches such as lectures, tutorials, and laboratory exercises remain essential, there is growing interest in leveraging digital technologies and gamification to improve student engagement, motivation, and learning outcomes. However, there is limited research on the design and effectiveness of discipline-specific gamified learning platforms for engineering education. This project aims to design, develop, and evaluate a gamified digital learning environment for introductory electric circuits. Building on an existing web-based platform that introduces students to Ohm’s Law through an interactive escape-room style experience, the project will investigate how game-based learning can be used to support the acquisition of increasingly complex circuit analysis skills. The student will contribute to the development of new educational modules covering advanced circuit topics while incorporating gamification elements such as team-based challenges, leaderboards, achievements, progress tracking, and timed problem-solving activities. The project will also investigate user experience design principles that maximize student engagement and encourage collaborative learning in digital environments. Research activities will include software development, educational content creation, user testing, and analysis of platform usage data and student feedback. The student will assess how different gamification strategies influence engagement, participation, and perceived learning. Findings will be used to refine the platform and identify best practices for applying gamification in engineering education. The anticipated outcome is a scalable educational technology platform that complements traditional engineering instruction while generating new knowledge on the use of gamification to enhance learning in STEM disciplines. The project will contribute to engineering education research and provide evidence-based recommendations for the development of interactive learning tools in higher education.

Research area, student roles & skills

Research area: Development and evaluation of technology-enhanced learning approaches, including educational software, gamified learning platforms, and multimedia educational content, to improve engineering education and broaden participation in STEM.

Student roles:
The student will play a key role in the design, development, and evaluation of a gamified digital learning platform for engineering education. Working under the supervision of the research team, the student will investigate how game-based learning strategies can be applied to improve student engagement, collaboration, and conceptual understanding in introductory electric circuits.
The student will contribute to the development of new educational modules that address progressively more advanced circuit analysis topics. This will involve designing interactive challenges, implementing gamification features such as points, leaderboards, achievements, and team-based activities, and ensuring that these elements align with established educational and motivational theories. The student will also participate in the design and refinement of the platform’s user interface to improve usability and enhance the overall learning experience.
A significant component of the project will involve research and evaluation. The student will assist in developing methodologies to assess student engagement and learning outcomes through platform usage data, surveys, and user feedback. They will analyze interaction patterns and evaluate the effectiveness of different gamification strategies in supporting learning and participation. The findings will be used to guide iterative improvements to the platform and identify best practices for digital learning environments in engineering education.
The student will also be responsible for software testing, documentation, and dissemination activities. This includes validating platform functionality, documenting system architecture and educational design decisions, and contributing to technical reports, conference presentations, or scholarly publications arising from the project.
Through participation in this project, the student will gain interdisciplinary experience in educational technology, software development, user experience design, data analysis, and engineering education research. The project will provide training in both technical and research methodologies while contributing to the development of innovative, evidence-based approaches to improving student learning in STEM disciplines.

Skills required:
The ideal student will be enrolled in a Software Engineering, Computer Science, Electrical Engineering, Education Technology, or related program and have a strong interest in educational innovation and applied research. Experience with software development, web technologies, data analysis, or user-centered design is desirable. Familiarity with programming, database systems, and software testing will support contributions to platform development and evaluation activities. Knowledge of gamification, learning technologies, human-computer interaction, or engineering education research is considered an asset. The student should demonstrate strong analytical, problem-solving, communication, and teamwork skills, as well as the ability to work independently in a research-oriented environment.

13. Développement d’un système de triage médical intelligent à l’aide de l’intelligence artificielle

L’utilisation des technologies de l’information et de l’intelligence artificielle dans le domaine de la santé permet d’améliorer considérablement la qualité et l’efficacité des soins, en particulier dans des contextes où les ressources sont limitées. Dans les milieux hospitaliers, la gestion du flux croissant de patients est un enjeu majeur. Les délais d’attente sont souvent longs, même pour les cas critiques, et les professionnels de la santé peuvent être débordés, ce qui augmente le risque de mauvaise priorisation. Ce projet propose de développer un système de triage médical automatisé, s’appuyant sur les données du patient dès son arrivée (symptômes, antécédents, résultats préliminaires, images médicales, etc.). À l’aide de techniques d’intelligence artificielle avancées — notamment des modèles fondamentaux pour l’analyse d’images et de textes médicaux, l’apprentissage fédéré pour protéger la confidentialité des données, et la distillation pour simplifier les modèles — nous construirons un prototype capable d’attribuer un niveau de priorité à chaque patient. L’objectif est de réduire la charge des professionnels de santé tout en augmentant la qualité du triage. Ce système pourra être intégré dans un processus clinique existant, ou utilisé comme un outil d’aide à la décision. L’étudiant participera activement à la conception, au développement et à la validation du système.

Research area, student roles & skills

Research area: Mes domaines de recherche couvrent l’intelligence artificielle appliquée, notamment la vision par ordinateur, le traitement de signaux biomédicaux, l’apprentissage automatique et profond, les modèles fondamentaux, l’apprentissage fédéré, la distillation de connaissances, et les systèmes intelligents pour la santé. Je m’intéresse particulièrement à l’analyse de données hétérogènes (images, textes médicaux, signaux physiologiques) pour développer des solutions concrètes et déployables dans des environnements cliniques.

Student roles:
Le projet se déroulera en deux phases : une première phase de 3 mois à distance, suivie d’une deuxième phase de 3 mois en présentiel au Canada.

Pendant la phase à distance, l’étudiant réalisera une revue de littérature sur les systèmes de triage automatisé, explorera les modèles fondamentaux récents (pour images médicales ou textes cliniques), et contribuera à la préparation et à l’analyse de jeux de données. Il participera à l’élaboration d’un prototype en Python, en testant différentes approches d’apprentissage supervisé ou fédéré.

À son arrivée au Canada, il ou elle poursuivra le développement du modèle en collaboration avec le superviseur, en intégrant les différentes composantes dans un pipeline complet. Il sera également amené à valider le système à l’aide de jeux de données simulés ou anonymisés, à effectuer des expériences comparatives, et à documenter méthodiquement les résultats obtenus.

En fin de stage, l’étudiant devra rédiger un rapport scientifique ou un brouillon d’article pouvant potentiellement faire l’objet d’une publication conjointe. Il ou elle participera également à des réunions régulières de suivi afin de présenter les progrès et de recevoir des retours sur les choix méthodologiques.

Skills required:
L’étudiant doit avoir une bonne maîtrise du langage Python et une familiarité avec les bibliothèques courantes en apprentissage automatique et traitement de données (NumPy, Pandas, scikit-learn, TensorFlow ou PyTorch). Des connaissances de base en traitement d’images ou de signaux, ainsi qu’un intérêt pour l’intelligence artificielle appliquée à la santé, sont souhaitées. Une expérience avec Google Colab, les modèles préentraînés ou l’apprentissage fédéré serait un atout. L’autonomie, la rigueur scientifique et la capacité à apprendre rapidement sont essentielles.

14. Empowering CI/CD with Agentic AI for Enhanced Software Security

Continuous Integration and Delivery (CI/CD) represents a pivotal shift in software development practices, encompassing a comprehensive set of methodologies and automated workflows. It has arisen as a proactive response to the limitations inherent in traditional software development approaches. The surge in the adoption of agile methodologies and the heightened expectations for rapid, dependable software deployment have propelled the widespread implementation of CI/CD pipelines. Despite the undeniable benefits of CI/CD, integrating these processes into software development poses its own set of challenges. These challenges can range from technical complexities to organizational hurdles, such as ensuring seamless collaboration among development teams and maintaining consistency across various environments. This project endeavours to develop an agentic AI system that streamlines the integration of CI/CD practices into software development workflows and ensure the security of the software builds. Through the intelligent analysis of code repositories, documentation, and collaborative communication channels, the agent can offer invaluable insights and recommendations, facilitating a smoother and more efficient adoption of CI/CD methodologies.

Research area, student roles & skills

Research area: My research interests cover a wide range of software engineering-related topics including software agents, chatbots, software quality, empirical software engineering, mining software repositories and SE4AI.

Student roles:
Students collaborate with other team members in the development and implementation of the CI/CD processes enhanced by Large Language Models (LLMs). This includes coding, scripting, and configuring the automated workflows and integration pipelines. Furthermore, they are responsible for testing the effectiveness and efficiency of the CI/CD workflows augmented by the developed agent(s). This involves conducting thorough evaluations, identifying strengths, weaknesses, and areas for improvement, and providing constructive feedback.

Skills required:
A strong foundation in software development is essential, including proficiency in languages such as Python.

Understanding software development processes, version control systems (e.g., Git), and software architecture principles is crucial.

The ability to analyze large datasets and extract meaningful insights from them is necessary for leveraging LLMs effectively.

Familiarity with software security and machine learning is a plus.

15. Enhancing Large-scale Machine Learning by Highly-efficient Intelligent Networks

Machine learning (ML) has demonstrated its incredible ability to solve complex tasks. Especially with the advent of deep neural networks, today's models are comparable to human brains in solving some certain tasks, e.g., image processing, language translation and playing strategic games such as Chess or Go [1]. It can be expected that ML will be an indispensable part of future intelligent networks such as vehicular ad hoc networks (VANET), Internet of Things (IoT) and 5G networks. On the other hand, the development of intelligent networks also opens up unique opportunities to enhance ML [2]. For example, with millions of devices (or vehicles) connected, it is possible to train a large-scale ML model in a distributed way to reduce training cost and improve efficiency. However, designing such intelligent networks to train ML models can be very challenging. First, as the devices may have limited memory, storage and computation capabilities, and restricted energy, no single device can train the whole ML models. Second, the bandwidth is limited and communication of million devices can result in congestion and delay. Third, the privacy of each device should be protected, as devices may not want to disclose their own data. In this project, we are motivated to design novel intelligent network structures and their corresponding large-scale ML algorithms that can be trained and run on devices with lower costs, more efficient communication, and stronger privacy protection. [1] Kairouz P, McMahan H B, Avent B, et al. Advances and open problems in federated learning. arXiv preprint arXiv:1912.04977, 2019. [2] Agarwal N, Suresh A T, Yu F X, et al. cpSGD: Communication-efficient and differentially-private distributed SGD. Advances in Neural Information Processing Systems. 2018: 7564-7575.

Research area, student roles & skills

Research area: Computer communications and networks, especially protocol design, performance evaluation and applied network security.

Student roles:
The intern student will work with faculty members and graduate students, learning through the research process and helping with simulation and simple prototyping, which will lead to publishable work with technology transfer potentials.

Selected publications involving former MITACS interns:

[1] Hu, B., Chen, Y., Huang, Z. (Mitacs Globalink 2017 Intern), Mehta, N. A., & Pan, J., Intelligent Caching Algorithms in Heterogeneous Wireless Networks with Uncertainty. In Proc. IEEE ICDCS 2019.

[2] Huang, Z. (Mitacs Globalink 2017 Intern), Hu, B., & Pan, J., Caching by User Preference with Delayed Feedback for Heterogeneous Cellular Networks, Published at IEEE Transactions on Wireless Communication (TWC).

[3] Huang, Z. (Mitacs Globalink 2017 Intern), Xu, Y., Hu, B., Wang, Q. (Mitacs Globalink 2019 Intern), & Pan, J., Thompson Sampling for Combinatorial Semi-bandits with Sleeping Arms and Long-Term Fairness Constraints, arXiv preprint arXiv:2005.06725.

[4] Huang, Z. (Mitacs Globalink 2017 Intern), Xu, Y. & Pan, J. TSOR: Thompson Sampling-based Opportunistic Routing, Accepted by IEEE Transactions on Wireless Communications (TWC).

Skills required:
Interest and basic knowledge in computer networks, statistics and linear algebra, and programming skills in Python, are expected. Experience with deep learning frameworks, such as PyTorch and TensorFlow is a plus.

16. Enhancing Software Development Workflows with Agentic AI

Software development teams increasingly rely on a wide range of tools and processes to manage coding, testing, deployment, maintenance, and collaboration activities. While modern AI systems can automate individual tasks, there is still limited understanding of how autonomous AI agents can effectively coordinate and optimize entire software development workflows. This project aims to design, develop, and evaluate Agentic AI solutions that enhance software engineering workflows. The student will investigate how AI agents can support developers during various phases of software development, including requirements analysis, implementation, testing, code review, continuous integration, deployment, and maintenance. The project will explore the use of single-agent and multi-agent systems capable of autonomously performing software engineering tasks and collaborating with human developers. Particular attention will be given to improving workflow efficiency, reducing development bottlenecks, increasing software quality, and supporting developer decision-making. The student will design and implement prototype AI agents, integrate them into software development environments, and evaluate their effectiveness through empirical studies and experiments using open-source software projects. The project may also investigate challenges related to reliability, explainability, trust, and human oversight of autonomous agents. The outcomes of this research will contribute to the development of next-generation intelligent software engineering environments where human developers and AI agents work together to accelerate software delivery and improve software quality.

Research area, student roles & skills

Research area: This project focuses on the application of Agentic Artificial Intelligence to improve software development workflows. Recent advances in large language models have enabled AI agents capable of autonomously performing complex software engineering tasks, including code generation, testing, bug fixing, code review, documentation, and DevOps operations. The project investigates how AI agents can be integrated into software development pipelines to automate repetitive tasks, improve developer productivity, reduce software defects, and support decision-making throughout the software lifecycle.

Student roles:
The student will participate in the design, implementation, and evaluation of AI agents for software engineering. Activities include conducting literature reviews, developing AI-based software engineering assistants, collecting and analyzing data from software repositories and development tools, and performing empirical evaluations of agent-based workflows.

The student will implement and evaluate prototype agents capable of automating software development tasks such as code generation, testing, bug fixing, issue triaging, code review, and CI/CD support. They will work closely with researchers and graduate students to assess the effectiveness of these agents in real-world development scenarios.

The student will also contribute to experimental design, data analysis, technical reporting, and dissemination of research results. Depending on project progress, opportunities may exist to contribute to scientific publications and open-source research tools.

Skills required:
Applicants should have a background in Computer Science, Software Engineering, Artificial Intelligence, or a related discipline. Experience with programming (Python, Java, JavaScript, or similar), software development tools, Git/GitHub, and machine learning is desirable. Familiarity with large language models, AI agents, DevOps practices, cloud platforms, or software engineering research methods is considered an asset. Strong problem-solving skills and an interest in AI-driven software engineering are expected.

17. Environment modelling and path planning for industrial AGVs

Automated Guided Vehicles (AGV) are intensively used in many industrial sectors and for numerous and diverse applications. In this context, automated and optimized path planning of AGV has been a very important subject of research for the last years. Automated path planning for AGV starts with modelling the static environment in which the vehicle is likely to move and operate. Various 2D and 3D representations may be applied for modelling such environments, among which point clouds, classical CAD representations, grids, quadtrees, octrees, classical structured and unstructured discretizations, etc. In a second step, the static model of the environment needs to be transformed and adapted for applying classical path planning algorithms. Moreover, modelling the environment needs to be adapted and updated to take into account different types of dynamic obstacles (humans, other automated or human operated vehicles, etc.). The types of models used for representing static and dynamic environments are strongly dependent on the application context (type of environment, type of vehicle, applications and tasks targeted, speed, accuracy required, security issues, etc.). In this context, the research work of our team is focused on developing optimal strategies and methods, in a specific application context, aimed at modelling static and dynamic environments for AGV path planning.

Research area, student roles & skills

Research area: Geometric modelling Robotics Automated Guided Vehicles Path planning

Student roles:
The specific application targeted for this project is palletization processes. Path and movement planning for palletization is particularly complex since it needs coordinating different movements and operations in order to move the cargo from an initial 3D location to a final 3D location. In general, 3D motion planning and execution are required, which requires using 3D models of the environment and/or using hybrid 2D and 3D models. More specifically, the intern should be involved in helping a PhD student who is working on this subject, which will more specifically involve:
- setting up and executing test cases for assessing robustness and efficiency of algorithms used for movement and path planning
- building and adapting 3D environments for these test cases
- writing and adapting computer code with respect to these test cases

Skills required:
Background in engineering and computer science.
Knowledge in CAD and geometric modelling.
Strong interest and knowledge in computer programming.
Knowledge of Linux OS and would be considered as a plus.

18. Evaluating Developer Trust and Reliance on LLM-Generated Code Review Feedback

The rapid integration of Large Language Models (LLMs) such as GPT-4 and Claude into software development workflows is transforming how code reviews are conducted. These tools can automatically analyze code, identify potential bugs, and provide natural language explanations at a scale and speed beyond human reviewers. However, this growing reliance raises a critical and underexplored question: how do developers form, calibrate, and act on trust toward LLM-generated code review feedback, and when does that trust lead to harmful over-reliance? Trust calibration, the alignment between a developer's confidence in an AI system and the system's actual reliability, is a well-established concern in human-automation interaction. When poorly calibrated, developers may accept incorrect or misleading LLM feedback without adequate scrutiny, introducing bugs rather than eliminating them. This risk is compounded by the fact that LLMs can produce confident, fluent, and plausible-sounding feedback that is nonetheless factually wrong, making it difficult for developers to distinguish high-quality from low-quality AI suggestions. This project addresses that gap through a controlled empirical study in which participants perform realistic code review tasks under three conditions: no LLM feedback, accurate LLM feedback with explanation, and inaccurate LLM feedback with plausible but misleading explanation. Bug detection accuracy, false positive acceptance rates, time-on-task, and validated trust scale scores will be measured across conditions. The study will also examine whether developer experience level moderates trust calibration and over-reliance behaviors. Findings will be synthesized into evidence-based design recommendations for LLM-assisted code review tools that promote appropriate trust calibration. All experimental materials, including the code review task corpus and LLM feedback stimuli, will be released as open-source artifacts. Results will be prepared for submission to a leading software engineering venue such as ICSE or FSE.

Research area, student roles & skills

Research area: I am the director of the ARiSE research lab (https://arise-lab.ca/). My research focuses on human-centric requirements and software engineering, with an emphasis on developing methodologies and frameworks that place human needs, values, and experiences at the center of the software development process. I investigate how requirements are elicited, represented, and validated in complex socio-technical contexts, and how software systems can be designed to better serve diverse user populations, including those with accessibility needs. My work spans empirical software engineering, participatory design, and AI-enabled requirements engineering, contributing to the development of more reliable, inclusive, and user-responsive software systems.

Student roles:
The intern will serve as a junior researcher within the ARiSE Lab at Ontario Tech University, taking an active and ownership-driven role across all phases of this controlled empirical study. The internship is structured to provide progressive responsibility, with the intern transitioning from guided onboarding to independent execution of research tasks as the project advances.
In the opening weeks, the intern will conduct a focused synthesis of existing literature on LLM-assisted code review, trust in automation, and over-reliance behaviors in human-AI collaboration. They will assist in finalizing the code review task corpus, evaluating pre-generated LLM feedback stimuli for accuracy and plausibility, and preparing the study protocol and any required ethics documentation.
During the pilot phase, the intern will recruit and run sessions with a small group of participants to refine the experimental protocol, validate the behavioral coding scheme, and ensure the counterbalancing procedure functions as intended. This phase is critical for identifying and resolving procedural issues before the main study begins.
In the main data collection phase, the intern will independently recruit and run sessions with 24–36 participants, administer the three experimental conditions, collect behavioral screen recordings, and administer the trust scale and post-session interview. They will perform daily data quality checks and begin concurrent behavioral coding of session recordings.
Following data collection, the intern will lead the quantitative analysis using repeated-measures statistical methods in R or Python, conduct moderation analyses examining the role of developer experience, and perform thematic analysis of post-session interview transcripts.
In the final weeks, the intern will synthesize findings into design recommendations for LLM-assisted code review tools, co-author a draft research manuscript targeting ICSE or FSE, deliver a formal oral presentation to the ARiSE Lab group, and submit a comprehensive written project report.

Skills required:
Applicants should be in their 3rd or 4th year of an undergraduate degree in Computer Science or Software Engineering. Required skills include proficiency in Python or Java, solid understanding of software development practices, and familiarity with code review concepts and software testing. Experience working with LLM APIs such as OpenAI or Anthropic is a strong asset, as is prior exposure to experimental research methods or human subjects studies. Strong analytical skills are essential for processing both quantitative and qualitative data. Coursework or demonstrated interest in human-computer interaction, AI-assisted development, or empirical software engineering is considered a strong advantage.

19. Extending an Open-Source IDE Extension for Real-Time TypeScript Code Modeling

Analyser la conception des logiciels orientés objet (Java, C#, C++, TypeScript, etc.) du point de vue de la réutilisation et de la stabilité à long terme. Proposition de stratégies empiriques permettant aux développeurs de produire un code plus facile à réutiliser à court et à long terme.

Research area, student roles & skills

Research area: Analyses of the designs of object-oriented software (Java, C#, C++, TypeScript, etc.) with respect to long-term reuse and stability. Proposing empirically-based strategies for developers to produce code with better long and short-term reusability.

Student roles:
The student will extend the VSCode extension that runs importer logic for an open-source static-analysis tool, following test-driven and modern Continuous Integration (CI) practices with GitHub, based on theoretical experimentation guided by the professor and other researchers in the team.

Skills required:
Familiarity with TypeScript and VSCode extensions is essential. Familiarity with open-source software repositories (GitHub) and tools (git, svn), programming and design with object-oriented design heuristics (GoF patterns) are a plus. The models generated by the extension must integrate within the ecosystem of the Pharo/Moose environment, which is a Smalltalk dialect, and so understanding this is a recommended skill for applicants. Applicants can become familiar with this technology via a MOOC: http://files.pharo.org/mooc/. Understanding of parsing and abstract syntax trees, as well as the ts-morph library in TypeScript is a plus.

20. Extending an open-source static analysis tool (parser) for TypeScript

The intern will improve the features of an open-source static analysis tool (parser) for the TypeScript language. This tool is used in a chain of tools used for doing research involving data-mining of object-oriented (TypeScript, Java, Python) code for understanding the evolution of software projects on popular web frameworks such as Angular and React. The current version of the tool can be found at https://github.com/fuhrmanator/FamixTypeScriptImporter

Research area, student roles & skills

Research area: Analyses of the designs of object-oriented software (Java, C#, C++, TypeScript, etc.) with respect to long-term reuse and stability. Proposing empirically-based strategies for developers to produce code with better long and short-term reusability.

Student roles:
The student will put in place new features of the open-source static-analysis tool, following test-driven and modern Continuous Integration (CI) practices with GitHub, based on theoretical experimentation guided by the professor and other researchers in the team.

Skills required:
Familiarity with open-source software repositories (GitHub) and tools (git, svn), programming and design with object-oriented design heuristics (GoF patterns). Familiarity with the TypeScript language. The tool to extend works within the ecosystem of the Pharo/Moose environment, which is a smalltalk dialect, and so it is a recommended skill for applicants. Applicants can become familiar with this technology via the MOOC: http://files.pharo.org/mooc/. Understanding of parsing and ASTs is a plus.

21. Formal Specification Driven Development with AI Coding Agents

Coding agents based on large language models (LLMs) are increasingly used to automate the implementation step in software development. While these agents show impressive generation capabilities, their outputs still suffer from issues such as hallucination and inaccuracy. These issues especially hinder the use of coding agents in business and mission-critical domains, where the correctness of generated outputs becomes paramount. A formal specification is a software artifact that precisely defines the intended behavior of a system, typically expressed as preconditions, postconditions, and invariants of the code. In the context of LLM-based coding agents, formal specifications enable rigorous validation, early detection of hallucination, and precise feedback to the agent. This project aims to use formal specifications to improve the correctness and reliability of LLM-based coding agents. Specifically, it will consider the following aspects: 1. Explore suitable formal specification languages for validating and providing feedback to coding agents. 2. Identify approaches that combine formal validation with testing to evaluate properties beyond what formal specifications can capture. 3. Evaluate how these approaches help coding agents built on different LLMs.

Research area, student roles & skills

Research area: My research focuses on the reliable and robust integration of AI components, including large language models and multi-agent systems, into software engineering processes. I develop techniques that bring engineering rigor to AI-assisted development through two main approaches: model-based validation, which uses formal models and constraints to provide correctness guarantees and fallback mechanisms for AI-generated outputs; and principled agentic workflow design, which structures LLM-driven workflows to behave predictably and verifiably. I am also broadly interested in empirically evaluating the quality of ML models on tasks such as code generation, bug detection, and code summarization.

Student roles:
Over the internship, the student will design and implement a validation-and-feedback pipeline for a coding agent, experiment with specification languages and verification tools, and use existing contract-based development benchmarks to measure correctness gains across different LLMs. The student will gain hands-on experience with agentic LLM systems, formal methods, and empirical software engineering research, and potentially contribute to results suitable for an academic publication.

Skills required:
A background in software engineering or programming is expected; prior exposure to formal methods, LLMs, coding agents, or Python is helpful but not required.

22. Generative AI-Based Prompts for Effective Learning in K-12 Education with Augmented Reality

This project focuses on the development of an intelligent educational platform that combines Generative Artificial Intelligence (AI) and Augmented Reality (AR) to create immersive, interactive, and personalized learning experiences for K–12 students. The goal is to enhance student engagement, improve knowledge retention, and support diverse learning styles through AI-generated educational prompts integrated with real-world augmented experiences. The system is designed to use Generative AI to dynamically create educational content, learning prompts, quizzes, simulations, and guided activities tailored to each student’s grade level, learning pace, and subject area. Augmented Reality technology would then transform these prompts into interactive 3D visual experiences, allowing students to explore educational concepts directly within their physical environment using mobile devices, tablets, AR headsets, or classroom smart technologies. The project aims to bridge traditional classroom instruction with next-generation immersive learning by making abstract or difficult concepts more understandable and engaging. Students would be able to visualize and interact with educational material in real time while receiving AI-generated guidance, explanations, and feedback.

Research area, student roles & skills

Research area: AI, ML, Systems, Programming Languages, Hardware/Software Integration

Student roles:
Development and reporting, also presentation

Skills required:
Programming knowledge, AI/ML Knowledge, Hardware/Software Integration

23. Hypatie

Projet Hypatie La programmation multi-paradigmes consiste à décrire une solution informatique en utilisant le modèle (paradigme) le plus approprié (adéquat) pour chacune de ses parties. Le projet Hypatie s’intéresse à la définition d’environnements informatiques multi-paradigmes et au développement d’une machine multi-paradigmes (MMP) capable d’exécuter des programmes écrits dans un langage multi-paradigmes (LMP) fondé sur la composition de ces paradigmes. Ces paradigmes sont dérivés des théories fondatrices de l’informatique, telles que * la logique du premier ordre, * la théorie des ensembles (incluant l’arithmétique), * la théorie des types de Russel, * la théorie des automates de Turing, * la théorie des langages formels de Chomsky, * la théorie relationnelle de Codd, * la sémantique axiomatique de Floyd-Dijkstra-Hoare, * la théorie des processus séquentiels concurrents de Hoare, * l’algèbre des intervalles d’Allen, * la théorie de la temporalité de Lorentzos, * etc. Deux sous-projets complémentaires sont présentement en cours, Magister et Discipulus. Sous-projet Magister (2 postes à pourvoir) Magister vise à définir une première version de la MMP incluant la définition formelle de la machine (le jeu d’instructions et la façon de les organiser), l’établissement de la syntaxe abstraite de ses programmes et le développement d’un premier interprète. Sous-projet Discipulus (2 postes à pourvoir) Discipulus vise à définir un premier LMP incluant sa syntaxe concrète, sa sémantique (exprimée en termes de MMP), un outil de vérification (fondé sur les théories sous-jacentes) et un premier compilateur.

Research area, student roles & skills

Research area: Le professeur Luc Lavoie a participé tout au long de sa carrière à plusieurs projets liés aux systèmes d’information pour les petites et moyennes organisations. La théorie relationnelle, la temporalité et la modélisation de données sont au centre de ses intérêts tant en recherche qu’en enseignement. Il s’intéresse également aux domaines de la spécification des exigences, de la systématisation des processus de développement, d’évolution, de vérification et de validation du logiciel. Il s’intéresse présentement plus particulièrement aux outils de modélisation de données temporalisées, historicisées ou relatives, aux langages multi-paradigmes et à leur intégration aux procédés de développement.

Student roles:
Le laboratoire Μῆτις dispose de postes de travail regroupés dans un espace ouvert favorisant l’échange et la collaboration.
Cet espace, situé à la Faculté des sciences de l’Université de Sherbrooke, est partagé avec les groupes de recherche GRIIS et Hora.

Les projets sont pilotés selon le procédé en spirale (Boehm et Turner) afin de favoriser la créativité tout en permettant
la maitrise progressive des exigences, des ressources utilisées, des jalons à respecter et de la qualité des produits.

Sur la base d'un document de spécification, la personne stagiaire devra proposer une conception, la mettre en oeuvre, la tester et participer à sa validation.

Parmi les outils utilisés au laboratoire, on note
* Java, jUnit, JaCoCo, Gradle, IntelliJ ;
* ANTLR, StringTemplate ;
* SQL, PostgreSQL, psql, pgTAP, jOOQ, DataGrip ;
* B, Event-B, Alloy ;
* AsciiDoc, LibreOffice, Antidote ;
* Git, GitHub, GitLab ;
* Ubuntu, bash, macOS, zsh.

Skills required:
Bonnes bases
* en logique,
* en théorie des ensembles,
* en programmation,
* en structures de données,
* en algorithmique

Notions élémentaires
* en langages formels (plus particulièrement les langages rationnels et algébriques)
* en théorie relationnelle et
* en sémantique axiomatique.

Dans le cadre de ses tâches, la personne stagiaire est appelée à consolider ces bases et développer
ainsi ses compétences en regard des méthodes, des technologies et des outils en usage au laboratoire Μῆτις.

24. Implementing and Evaluating Game Server Solutions

Massive Multi-Player Online games (MMO) are one of the most profitable marketing in entertainment domain. MMOs connect millions of players each day in game campaigns extremely on sophisticated environments. However, MMO games impose several technical challenges to software engineers and system administration: real-time issues and scalability. To tackle that challenges, Google, in partnership with Ubisoft Entertainment, proposed Agones, an open-source project that uses Kubernetes to host and scale dedicated game servers. In this project, students will collaborate to instantiate and evaluate Agones to support MMOs. The principal purpose of this project is to create an evaluation environment to MMO game servers on software quality aspects, producing the state of art on game server practices. At the end of the internship, students will be able to work in AAA video game teams to implement complex MMO game servers.

Research area, student roles & skills

Research area: My specialized research areas are Software Quality, and Architecture, Debugging, Software Visualization, Virtual Reality/Augmented Reality, and I have been recognized as a pioneer and an international reference on Digital Games and Software Engineering. Further, he was the creator of Swarm Debugging, a new collaborative approach to support debugging activities. Finally, I developed new approaches to logging analysis using Machine Learning techniques.

Student roles:
The student role is to project, analyze and implement a prototype of game server using Go, Java, or C/C++ to support multiplayer games. The student will experiment a true experience how to implement real-time systems to video game systems. Finally, the students could be able present their results to video game companies and research groups in Canada.

Skills required:
The students' required skills are programming and general concepts on Distributed systems. Good communication skills, autonomy, proactive. The students have to be interested on video game development and distributed systems.

25. Improving Developer Experience in Modern Software Observability Platforms

Modern software systems, particularly cloud-native and microservices-based applications, require advanced observability techniques to ensure reliability, performance, and maintainability. However, the developer experience (DX) of using observability tools like OpenTelemetry, Prometheus, Jaeger, and Grafana remains a major challenge. Developers struggle with setting up instrumentation, interpreting metrics, logs, and traces, and correlating these signals during debugging or performance analysis. This project aims to systematically study and enhance the usability and developer experience of open-source observability platforms. The project will include: * Conducting a developer-centric usability study of selected observability tools. * Identifying friction points through interviews, surveys, and heuristic evaluations. * Prototyping improvements (e.g., dashboards, CLI helpers, configuration abstractions). * Validating these improvements through user studies or field evaluations. This research contributes to software engineering by bridging the gap between tooling capabilities and real-world developer needs, without relying on artificial intelligence.

Research area, student roles & skills

Research area: My specialized research areas are Software Quality, and Architecture, Debugging, Software Visualization, Virtual Reality/Augmented Reality, and I have been recognized as a pioneer and an international reference on Digital Games and Software Engineering. Further, he was the creator of Swarm Debugging, a new collaborative approach to support debugging activities. Finally, I developed new approaches to logging analysis using Machine Learning techniques.

Student roles:
Deploy and experiment with observability stacks in containerized environments.
Design and conduct user studies (e.g., observational testing, heuristic evaluation).
Develop lightweight prototypes (e.g., improved dashboards, CLI tools, or config wizards).
Analyze results and contribute to the publication of findings (e.g., technical reports or open-source contributions).

The student will work within an experienced research team and receive mentoring in empirical software engineering, systems design, and developer experience research. This project provides hands-on experience with tools that are in high demand in the industry, offering both academic and career advancement opportunities.

Skills required:
Background in software engineering (architecture, DevOps, testing, debugging).
Interest in tools like Prometheus, Grafana, Jaeger, or OpenTelemetry.
Skills in backend programming (e.g., Rust, Go, or Python).

26. Industrial-Grade Computer Vision for Circular Economy Automation

The global surge in material extraction necessitates an urgent transition toward a high-quality circular economy, yet current e-waste and metal sorting remains hindered by inefficient sensor technologies and hazardous manual labor. IntelliCycle is addressing this bottleneck by developing a network of "Smart Hubs" powered by an industrial-grade automated Computer Vision (CV) system. This project focuses on overcoming the significant performance gaps of standard CV models in industrial environments characterized by extreme object occlusion, clutter, and deformation. By leveraging advanced architectures like Masked Autoencoder-based Vision Transformers (ViT), the research seeks to achieve commercial-grade accuracy in detecting both high-value components, such as Printed Circuit Boards (PCBs), and hazardous items like volatile lithium-ion batteries and pressurized canisters. To scale this solution without the traditional manual labeling bottleneck, the intern will develop an automated "data engine" using the Segment Anything Model (SAM) and Contrastive Language-Image Pre-training (CLIP) for semi-automated annotation. The project will further utilize Self-Supervised Learning (SSL) to refine model robustness against the unpredictable morphologies of scrap metal. Successful integration of these models into a real-time valuation API will enable precise "Urban Mining" of secondary copper and precious metals, while simultaneously safeguarding worker health. This research provides a critical technical foundation for automated robotic deployment within IntelliCycle’s Smart Hubs, directly supporting Canada’s domestic critical mineral supply chain and 2050 net-zero targets.

Research area, student roles & skills

Research area: My research involves developing computational frameworks for AI-enabled design and analysis of composite materials and structures.

Student roles:
In collaboration with the industry partner, the intern will support the design, development, and implementation of AI-based software tools for IntelliCycle’s Smart Hub platform. Their role will include preparing and annotating image datasets, developing and testing computer vision models for detecting and classifying e-waste components, and assisting with the integration of these models into practical software systems such as real-time valuation and sorting APIs. They will also contribute to performance evaluation, software optimization, and technical documentation, helping translate advanced research in machine learning and computer vision into deployable industrial solutions.

Skills required:
Software Engineering, Computer Vision, Machine learning

27. Integrated Multimodal and Multi-Agent Framework for Early Detection and Personalized Cognitive Support in Alzheimer's Disease

Alzheimer's disease (AD) is a progressive neurodegenerative disorder affecting millions of individuals worldwide and represents a growing healthcare challenge associated with aging populations. Early detection is vital for treatment purposes, cognitive monitoring and personalized support. The objective of this study is to propose a multimodal system that can detect and evaluate the risk, along with offering adaptive cognitive support to people at risk of developing Alzheimer’s disease. Step 1: Multimodal Risk Factor Identification. The latest machine learning algorithms and multimodal learning methods will be used to find relevant predictors based on audio recordings of speech, cognitive tests, activity tracking, and clinical records over time. Models based on transformer networks will help us create embeddings that reveal interactions between different data types while mitigating their overlap. Step 2: Explainable Multimodal Recommender. Based on the recognized risk factors associated with cognitive decline and Alzheimer’s, an explainable AI-based recommender system will be developed that predicts cognitive decline for individuals according to these risk factors. Biomarkers from speech and activity measurements will be mapped to correlations with disease progression; and will be integrated into a cognitive health score for each evaluated individual. The integration of these modalities and measurement techniques will yield a model less prone to overfitting than models that use only a single modality. From there, we will create a cognitive agent for intelligence-based monitoring, reminding, memory, recognizing people and objects, activity, and intervention via wearable and mobile devices. The application of vision language model, and speech transformer will provide context-specific assistance based on each user's cognitive state and daily activities. The proposed research will establish a novel human-centered AI framework that combines explainable multimodal risk factor prediction with personalized cognitive assistance. The resulting technology has the potential to support clinicians in decision-making, and improve quality of life for affected individuals.

Research area, student roles & skills

Research area: HealthTech represents promising opportunities for applying AI to improve quality of life, healthcare delivery, and community well-being. Healthcare systems increasingly rely on integrating medical imaging, clinical information and patient-generated data into meaningful clinical decision support in clinical. We aim to develop diagnostic tools and Smart digital health monitoring systems by applying AI, LLM techniques to improve disease diagnosis. As an expert in translational medicine and applied machine learning (ML) to developed >20 ML models and healthcare pipeline including stroke risk predictor, heart attack risk stratification, Diabetes etc. I authored 60+ journals, 150+ conferences (refer to my lab: https://www.mamatjanlab.com/)

Student roles:
The project will investigate how multimodal data sources including speech patterns, cognitive assessments, daily activities, visual observations, wearable sensor measurements, and contextual information, can be integrated to identify early signs of cognitive decline and support independent living.

The student will contribute to the design and implementation of a multimodal cognitive assistant capable of continuously monitoring behavioral and cognitive indicators associated with Alzheimer's disease. This includes developing methods to analyze speech and conversational patterns, designing memory cueing mechanisms that assist with person, object, and activity recognition, and creating intelligent agents that provide adaptive reminders and context-aware support based on an individual's cognitive status. The student will also participate in developing explainable machine learning models that generate interpretable risk assessments and provide meaningful explanations for clinicians, caregivers, and patients.

In addition, the student will assist in building and evaluating a proof-of-concept prototype that integrates multimodal sensing, intelligent agents, and personalized cognitive support. Activities will include data analysis, model development, multimodal data fusion, system validation, and performance evaluation. The student will investigate how different modalities contribute to prediction accuracy and determine the most effective strategies for combining speech, activity, visual, and contextual information to improve early detection and intervention.

Through this research, the student will gain hands-on experience in multimodal artificial intelligence, intelligent agent systems, explainable AI, computer vision, speech analytics, wearable technologies, and digital health applications. The student will strengthen technical skills in machine learning, data integration, predictive modeling, and healthcare system development while also developing research communication, scientific writing, and interdisciplinary collaboration skills through regular mentoring, technical discussions, conference presentations, and publication activities. This experience will provide valuable preparation for future careers in artificial intelligence, healthcare innovation, biomedical research, and advanced graduate studies.

Skills required:
Basic background in Large Language Models (AI).
Basic knowledge in Intelligent Agents skills
Basic knowledge in Clinical Design Making
Strong programming skills (preferred python).
Basic knowledge about health monitoring systems.
Basic knowledge about source code management (like Git protocol).

28. Intelligent Anomaly Detection in Cloud Environments

The rapid expansion of cloud computing infrastructure has resulted in highly dynamic and distributed environments, generating massive volumes of logs and performance metrics. Ensuring the reliability and security of these systems requires timely detection of anomalies such as system failures, misconfigurations, or cyberattacks. However, real-world anomalies in cloud networks are rare, diverse, and often lack sufficient labeled data for traditional supervised learning methods. This project addresses these challenges by leveraging Few-Shot Learning (FSL), which enables anomaly detection models to generalize from just a handful of labeled examples. Unlike conventional approaches that require extensive annotated datasets, FSL offers adaptability to emerging or unseen anomaly types with minimal supervision—making it well-suited for complex and evolving cloud environments. The project will investigate multiple FSL strategies, including metric-based models such as prototypical and Siamese networks, for identifying anomalies in network logs and cloud system metrics. To improve model performance and compatibility with visual FSL models, log sequences and metric data will be encoded into structured or visual representations (e.g., embeddings or log images). By combining data-efficient learning with robust time-series/log processing, this project aims to deliver a lightweight, scalable, and adaptive anomaly detection framework tailored for modern cloud infrastructures—capable of operating effectively under conditions of high variability, limited labels, and evolving threats.

Research area, student roles & skills

Research area: Cloud security

Student roles:
- Investigate the limitations of traditional anomaly detection techniques in cloud network environments.
- Explore and implement Few-Shot Learning (FSL) techniques (such as Siamese Networks, and Matching Networks) for detecting rare or unseen anomalies with minimal supervision.
- Evaluate the performance of FSL-based models using benchmark cloud anomaly datasets, assessing metrics such as precision, recall, F1-score, and adaptability to new anomaly classes.

Skills required:
- Machine learning: data processing, feature extraction, classification, evaluation metrics.
- Cloud Computing Fundamentals (Optional but useful) : Understanding of basic cloud architecture, services, and monitoring/logging tools (e.g., AWS CloudWatch, Azure Monitor).
- Python programming: with libraries like PyTorch, TensorFlow, scikit-learn.

29. IoT et IA pour la décurité des personnes agées

Le nombre de personnes âgées est en augmentation continuelle. Leur sécurité devient alors de plus en plus préoccupante à cause de plusieurs facteurs observés ces dernières années. Leur désir à rester le plus longtemps possible dans leurs maisons ou résidences est souvent confronté par le niveau de leur autonomie, l’état de leur santé, l’isolement, et les conditions de sécurité la sécurité. D’autres parts, les coupures budgétaires et les fonds gouvernementales limités contribuent à apporter un bon nombre de problèmes au niveau des centres hospitaliers et des résidences pour les personnes en question. Ce projet met l’accent à exploiter les concepts de l’internet des objets pour favoriser un environnement sécuritaire aux personnes âgées dans leurs domiciles. Le design et le développement d’un système de surveillance spécifiques aux personnes est primordial. Le système se compose de deux parties électroniques : - une première sera portable sur la personne âgée : Elle permet de détecter les signaux vitaux, le mouvement, les chutes, et pouvoir communiquer automatique via internet et réseau cellulaire pour envoyer des alertes lorsque la situation s’impose. Elle peut aussi rappeler la prise de médicaments, le renouvellement et les rendez-vous médicaux et les alertes de feux - et une deuxième composée de plusieurs modules de détection placés dans les différents locaux et chambres. Cette partie doit contenir différent capteurs pour s’assure de la présence et peut contenir des caméras utilisant des algorithme d’intelligence artificielle pouvant identifier les situations anormales tels les chutes brusques et les position inhabituelles des personnes (allongés sur le sol, évanouissement,) . Le projet utilise des cartes Raspberry PI, des modules ESP32, caméra, des capteurs pour les signes vitaux, capteurs accéléromèetre, feu, flames, les gaz, lumière, ultrason, module communication cellulaire.

Research area, student roles & skills

Research area: Électronique de puissance, électronique, les microcontrôleurs, commande des systèmes. Mes réalisations sont dans la commande adaptative des moteurs synchrones à aimant, la commande optimale appliquées aux moteurs CC et CA, le développement de convertisseurs statiques et des applications avec microcontrôleurs. Ces dernières années l’accent est mis sur l’Internet des objets (IdO) et robotique mobile. Mes travaux actuels : la minimisation de la consommation énergétique dans les moteurs CA et le chauffage électrique résidentiel. J'ai travaillé sur plusieurs projets de développement pour l'industrie (robotique industrielle, IoT, capteurs,électronique) et j'ai supervisé un nombre considérable d’étudiant(e)s des différents cycles et des des stagiaires.

Student roles:
L'étudiant doit étudier et concevoirs les cartes électroniques connectés à Internet pour assurer la détection des signes vitaux et des conditions de l'utilisateur et tous les modules pour la détection de l'environnmenet de l'utilisateur. Le circuit électronique portable sur soit doit être de taille petite. Les caméra doivent être munies d'algorithme d'intelligence artificielle pour la détection des positions anormales que les personnes agées peuvent prendre inconciemment.L'apprentissage machine doit être pris en charge par l'étudiant.
la configuration et l'utilisation doit être simple et intuitive.L'autonomie énergétique du système portable doit être assurée sur plusieurs jours avant qu'une nouvelle recharge soit faite.

Skills required:
- Une bonne compréhension de la simulation des circuits électroniques et le développement de circuits imprimés
- Bonne compréhension de la programmation des microntrôleurs
- Familier avec l'utilisation de capteurs et et des circuits électroniques
- Compréhension des concepts de l'Internet des objets, les microcontrolleurs, Raspberry PI, et les modules ESP32 (ou l'équivalent) avec les langages de programmation , HTML, PHP.
- L'étudiant doit être familier avec le logiciel MSProject (ou tout autre logiciel équivalent), logiciel pour la réalisation des circuits imprimés et Matlab.

30. Mitigating Cybersickness through Imperceptible Visual Stimuli in Virtual Reality

Despite advances in VR technology, cybersickness remains a significant barrier to widespread adoption. Cybersickness manifests as eye strain, nausea, and disorientation. While existing research explores symptom attenuation, current interventions (such as aggressively restricting the user's field of view) are disruptive and compromise the original immersive experience. The leading theory behind cybersickness is the visuo-vestibular mismatch. This sensory conflict occurs when the visual motion perceived by the eyes contradicts the physical stillness sensed by the inner ear. Our lab hypothesizes that subtle or consciously imperceptible visual stimulation can attenuate these symptoms without breaking immersion. By subtly shifting the orientation perception of the user in space using imperceptible visual cues, we can better anchor them in the physical or virtual world. This approach aims to reduce the sensory mismatch directly. This project explores the integration and evaluation of these imperceptible visual stimuli to delay the onset and decrease the severity of cybersickness. The intern will join our lab and work under the direct mentorship of a senior PhD student. Our lab has extensive experience working with cybersickness research protocols. As an active member of the institutional Research Ethics Board, I ensure our team is highly sensitive to the safety and ethical nuances of these studies. The student will conduct a targeted literature review, implement the visual manipulation techniques within Unity, and collaborate on a formal user study. By participating in data collection, statistical analysis, and drafting an academic publication, the intern will gain hands-on experience in HCI research while making immersive technologies more comfortable.

Research area, student roles & skills

Research area: Prof. Pascal E. Fortin has been affiliated with the Computer Science and Mathematics Department of Université du Québec à Chicoutimi since 2022. He holds a PhD from McGill University. His main research expertise lies in human-computer interactions, with a specific focus on multisensory and physiological interaction techniques. Prof. Fortin’s current projects tackle the mechanisms of cybersickness in extended reality (XR) environments to design more comfortable, immersive systems. His work not only pushes the boundaries of interactive technology but also fosters interdisciplinary collaboration through strategic partnerships with local industries and governmental entities, driving innovation and producing tangible benefits.

Student roles:
During the internship, the student will act as a junior researcher, fully integrated into our lab's culture under the direct mentorship of a senior PhD student. Key responsibilities include:
- Conducting a targeted literature review on cybersickness and imperceptible visual stimuli.
- Developing and implementing visual manipulation techniques within Unity.
- Assisting in the design and execution of a formal user study.
- Performing data collection and statistical analysis.
- Collaborating on the drafting of an academic publication or presentation.
- Actively participating in weekly lab meetings to present progress.

Skills required:
Required: Completed or currently pursuing a degree in computer science, software engineering, electrical engineering, or computer engineering. Strong proficiency in C# and the Unity game engine. Excellent autonomy and problem-solving skills.

Preferred: Background or strong interest in human-computer interaction (HCI), user experience (UX), or multisensory systems.

Willingness to Learn: Highly motivated to integrate into our lab's culture, learn statistical data analysis, conduct user studies safely, and contribute to academic writing alongside a senior PhD mentor.

31. Modular and Reusable Flight Software Architecture for machine learning on Small Satellites

This research project aims to advance the development of autonomous small satellite systems by leveraging a reusable software framework to streamline the creation of flight software for space missions on low-power embedded processors. The focus is on integrating onboard artificial intelligence (AI) capabilities into the flight software architecture of small satellites, such as CubeSats, to enhance their autonomy, adaptability, and resilience in space environments. Traditionally, flight software development is a time-intensive process requiring mission-specific customization and extensive testing. By employing a modular and extensible software framework from NASA and ESA, this project will significantly reduce development time while ensuring reliability and standardization across missions. Interns will contribute to adapting and extending this framework to support AI-driven functionalities, including real-time data analysis, anomaly detection, decision-making, and fault tolerance onboard the spacecraft. The project provides an interdisciplinary learning experience at the intersection of aerospace engineering, embedded systems, and machine learning. Interns will gain hands-on experience with flight software development, AI integration techniques, and testing in simulated or hardware-in-the-loop environments, preparing them for careers in cutting-edge space technology development.

Research area, student roles & skills

Research area: My research specializes in advancing the design and autonomous capabilities of small spacecraft through a systems-level approach that integrates reliable power systems and onboard machine learning. I focus on developing and applying rigorous design methodologies to ensure scalability, efficiency, and resilience across all subsystems. This includes model-based design, hardware-in-the-loop testing, and modular components that support rapid prototyping and deployment. By addressing both hardware and software challenges, my work aims to enable next-generation small satellites capable of autonomous operation to support the New Space.

Student roles:
Working under the guidance of faculty and senior researchers, the student will:
Conduct a literature review on existing flight software architectures, onboard AI techniques, and autonomy in small satellite systems to inform the project’s design direction.
Contribute to the design, development, and testing of flight software using a reusable software framework tailored for low-power embedded processor in space applications.
Assist in the integration of onboard machine learning algorithms, focusing on enabling real-time decision-making and fault detection in small satellite systems.
Participate in software validation through simulations and hardware-in-the-loop testing to evaluate performance in realistic mission scenarios.
Document findings, code, and results, and contribute to the preparation of technical reports or publications as appropriate.

Skills required:
Motivated students with a strong foundation in computer science, electrical engineering, software engineering, or a related field.
Ideal candidates should have:
Programming experience in C/C++ and/or Python, particularly for embedded or real-time systems.
A solid understanding of software development principles, including modular design and version control (e.g., Git).
Strong problem-solving skills, the ability to work independently, and an interest in space systems and autonomy.
Experience working in a Linux-based development environment will be considered a strong asset, particularly for tasks involving software integration, simulation, and testing.

32. Security and Privacy in Distributed Machine Learning for Vehicular Ad hoc Networks

Different from traditional centralized machine learning approaches, distributed machine learning allows multiple workers to work together and make informed decisions from large amounts of data. It distributes the workload and improves the efficiency. Nowadays, researchers draw attention to the security and privacy issues in distributed machine learning. The requirements are more concrete and different in particular mobile ad hoc networks (MANET). For example, in vehicular ad hoc networks (VANET), the communication performance is a bottleneck for cryptography-based solutions. In smartphone-based social ad hoc networks (SANET), the personal information is more sensitive and the management of workers faces more challenges. In this project, we will focus on a particular VANET and design a secure and privacy-preserving distributed machine learning framework. The potential topics may include but are not limited to: 1. to prevent data leakage in the process of communication. 2. to avoid sharing sensitive data with other workers and the server in machine learning. 3. to provide anonymity of workers. 4. to protect the trajectory of drivers or smartphone holders. 5. to define, discover and manage the malicious workers. 6. to prevent collusion attacks from inside entities. 7. to meet other specific security and privacy goals for the chosen VANET. 8. to consider the limitation of computing resources, communication capability and memory space for the chosen VANET. Please note only selected, not all topics will be explored at the same time.

Research area, student roles & skills

Research area: Computer communications and networks, especially protocol design, performance evaluation and applied network security.

Student roles:
The intern student will work with faculty members and graduate students, learning through the research process and helping with simulation and simple prototyping, which will lead to publishable work with technology transfer potentials. For more information about the research projects, the related projects and the experience of the former MITACS interns, please refer to http://web.uvic.ca/~pan and the references therein.

Skills required:
Interest and basic knowledge in computer networks, and programming skills in C/C++ and Python, are expected. Experience with network simulation tools such as ns-2/3 is a plus.

33. Sustainable and Efficient Continuous Integration for Open-Source Projects

This research project targets inefficiencies in continuous integration (CI) pipelines commonly used in open-source projects hosted on platforms like GitHub. Developers often rely on free CI services (e.g., GitHub Actions) without considering their impact on shared infrastructure. The project proposes a predictive and redundancy-aware approach that uses historical CI data to estimate build durations and assess code change impact. These estimates guide job prioritization and help skip redundant builds, improving scheduling decisions and feedback latency. Applied to real-world repositories, the approach reduces build queue times, improves resource utilization, and minimizes unnecessary energy consumption, thus supporting both scalable CI operations and more sustainable open-source development.

Research area, student roles & skills

Research area: My research specializes in software engineering, with a focus on applying AI and data-driven techniques to improve software development processes. I work on mining software repositories, optimizing continuous integration and delivery (CI/CD), and leveraging large language models (LLMs) for tasks like code generation, testing, and configuration migration.

Student roles:
The student’s role in this project will involve the following tasks:
- Select and collect CI data from a small set of GitHub repositories
- Preprocess build logs and extract relevant features (e.g., build duration, job type)
- Implement a lightweight build-time prediction model using existing tools
- Simulate CI job scheduling strategies based on predicted durations
- Evaluate improvements in queue time and build efficiency
- Document the methodology and results
- Prepare a short report or poster summarizing the project outcomes

Skills required:
The student should have a strong background in software engineering and be comfortable working with CI tools, such as GitHub Actions, Travis CI, or CircleCI. Experience with Python and basic machine learning is required. Familiarity with mining software repositories (e.g., using GitHub APIs, analyzing build logs) and an interest in open-source development practices are highly recommended.

34. User experience (UX) design for and with AI

In recent years, AI-empowered software systems, such as music and video recommendation applications, voice assistance systems, decision support tools, and intelligent cyber-physical systems (e.g., drones), have grown significantly. While the technology behind these systems is increasingly powerful, today's AI-empowered systems are experiencing a user experience (UX) design innovation crisis, which limits their ability to truly improve people's lives and meet practical needs. At the same time, generative AI is becoming increasingly powerful, which can have important implications to the UI/UX design practice. The overall goal of this project is to investigate, create, and assess a new set of UX design-support techniques and tools that harness the power of intelligent data-driven systems. These techniques and tools can facilitate the collaborative and creative UX design process, and assist practitioners in creating more usable and innovative systems. To achieve this, we will focus on identifying, modelling, detecting, and using UX design patterns that capture the emergent characteristics of AI systems. Based on these patterns, creativity support tools will be investigated to help UX designers organize and retrieve design artifacts (e.g., sketches, mock-ups, and storyboards). Further, tools that use these design patterns will also be studied for synchronous and asynchronous design collaboration among various multidisciplinary stakeholders (e.g., designers, developers, data scientists, and end users). These efforts take a human-centered perspective, involving designers and other software stakeholders throughout the process of proposing, creating, and evaluating techniques and tools.

Research area, student roles & skills

Research area: User experience (UX) design of the increasingly powerful AI-empowered systems have profound social and economic impacts on modern society. The special characteristics of the AI technologies have posed new design challenges. Particularly, designers face a new conundrum of planning the UX of a system that can independently change its behavior according to the data it receives over time, while being essentially a black box. This research program aims to devise novel methods and tools to address such challenges and support the collaborative and creative UX design process of AI-empowered systems.

Student roles:
Interns will be integrated into a group of PhD and master's students. The specific direction and tasks can be flexible based on the intern’s expertise and interest. Overall, we will pinpoint the designers' challenges through human-centered studies, explore UX design patterns that can help address these challenges, and investigate methods and tools to support the UX design of AI-empowered systems.

Skills required:
- Motivated learner, critical thinker, and team contributor
- Experience or interests in human-computer interaction and/or user-centered interaction design
- Passionate for UX and design

35. Using Agentic AI for Test Debt Management

Software testing is essential for ensuring software quality, but test suites often accumulate technical debt over time. Test debt includes issues such as flaky tests, redundant test cases, weak assertions, overly complex test structures, and outdated tests that no longer reflect the system behavior. Such debt increases software maintenance effort, reduces confidence in test results, and thus can negatively affect software quality. Existing approaches for managing test debt primarily rely on static analysis techniques and rule-based detection methods. While these methods are effective for identifying explicit forms of debt, they often fail to detect implicit debt that requires understanding the intent, context, and quality of a test case. This project investigates the use of Agentic Artificial Intelligence (AI) for managing test technical debt. Agentic AI systems use multiple collaborating agents that can analyze information, reason about problems, make decisions, and evaluate outcomes. Rather than relying on a single model or a fixed set of rules, these agents collaborate to analyze testing artifacts and support decision-making throughout the technical debt management process. The project will explore how agents can assist in identifying debt, interpreting its potential impact, recommending management actions, and explaining their recommendations for the test suites. By combining multiple perspectives and reasoning steps, agentic AI may offer a more flexible and effective approach to managing test debt than traditional methods. Keywords: Software Testing, Test Debt, Technical Debt, Artificial Intelligence (AI), Agentic AI, Multi-Agent Systems, Software Quality Assurance, Software Engineering, Large Language Model (LLM).

Research area, student roles & skills

Research area: My research focuses on improving software quality by managing Technical Debt (TD) in both traditional and scientific software. I conduct empirical studies with practitioners to understand real-world TD practices and leverage Artificial Intelligence and Empirical Software Engineering to automate TD management. Recent work includes using TD as a lens to identify security vulnerabilities, analyzing how developers induce and address TD through refactoring, and mining repositories to uncover TD patterns. I also study developer challenges on crowdsourcing platforms, aiming to inform intelligent, practical tools and solutions for sustainable software development.

Student roles:
Week 1: Get set up and become familiar with the lab environment and the project; become familiar with the relevant libraries, tools, technologies, and core concepts; review relevant literature.
Week 2: Data collection and labeling
Weeks 3-4: Implement baseline (e.g., rule-based and single LLM)
Weeks 6-7: Agent implementation
Weeks 8-9: Evaluation
Week 10: Model refinement
Week 11: Write the project report.
Week 12: Wrap up, including preparing and delivering the final presentation.

You will be required to write short daily and weekly reports on your progress, including the steps performed during the experiment. Your main responsibility is to follow the predefined steps and not to do research. You will be provided with the required techniques and will need to become familiar with the relevant libraries. Your input regarding the libraries and frameworks that you are familiar with will be considered. However, based on the results of earlier phases, we might need to tweak later phases of the project. You will integrate into a diverse and inclusive research group. You will be required to be punctual daily, work independently, and maintain a positive attitude. We will have weekly progress meetings, but will interact almost daily. You may get the opportunity to interact with our international collaborators and be a co-author of any publication resulting from this study.

Skills required:
The preferred background is in computer science, software engineering, or a closely related field. The student should be comfortable with software development (programming). The specific required skills are:
-Proficient in either Python or R and related environments such as Jupyter Notebooks, Quarto
-Familiar with Artificial Intelligence (AI), LLM, agentic AI
-Familiar with core computer science and software engineering concepts
-Familiar with data mining
-Familiar with Git and GitHub
-Fluent in reading/writing/speaking English

36. Visualizing and Understanding Modern Cloud-Native Software Architectures

Modern cloud-native systems—composed of microservices, APIs, containers, and orchestration platforms like Kubernetes—are difficult to understand, maintain, and evolve. This complexity can slow development and increase the risk of failure. However, students often lack hands-on experience working with such systems in a comprehensible and interactive way. This project aims to build and evaluate novel interactive software visualization tools that help developers better understand the architecture, behavior, and evolution of real-world cloud-native systems.

Research area, student roles & skills

Research area: My specialized research areas are Software Quality, and Architecture, Debugging, Software Visualization, Virtual Reality/Augmented Reality, and I have been recognized as a pioneer and an international reference on Digital Games and Software Engineering. Further, he was the creator of Swarm Debugging, a new collaborative approach to support debugging activities. Finally, I developed new approaches to logging analysis using Machine Learning techniques.

Student roles:
Work with Kubernetes configurations and tools (kubectl, Helm, Kustomize).
Extract data from cloud-native configurations and generate architecture diagrams.
Build UI/UX features (e.g., using Python, JavaScript, or Rust).
Help conduct a usability study with open-source projects or synthetic cases.
Document all findings, implementation steps, and project outcomes.

Skills required:
Strong software development skills in any programming language.
Interest in DevOps, cloud platforms, or software visualization.
Basic knowledge of Docker/Kubernetes is a plus (can also be learned during the internship).
Curiosity and motivation to work on software that helps other developers.