Course: EECS4080
Supervisor: Alvine Belle
Supervisor's email address: alvine.belle@lassonde.yorku.ca
Project Description: The number of citations of scientific articles has a huge impact on recommendations for funding allocations, recruitment decisions, and rewards, just to name a few. However, some researchers belonging to some socio-cultural groups (e.g., women) are usually less cited than other researchers coming from dominating groups. This may be due to the presence of some unfairness citation patterns in some scientific articles. These citation patterns are tangible examples of biases against researchers from some socio-cultural groups and may inevitably cause unfairness and inaccuracy in the assessment of articles impact. These citations patterns may therefore translate to significant disparities in promotion, retention, grant funding, awards, collaborative opportunities, and publications. The project will first start by analyzing the existing scientific literature to find out the various unfairness citations patterns that may be present in some scientific articles. Then, the project will focus on the exploration of existing mitigation solutions and their limitations. The project will then aim at developing an online tool called CiteFair that will be able to:
The project will also consist in validating the accuracy of the CiteFair tool by making experiments on a sample of the scientific articles published within the last decade in a wide range of venues. Experiments will also focus on evaluating the usability and performance of the CiteFair tool.
Required skills or prerequisites: Solid experience with JavaScript, HTML, and CSS
Recommended skills or prerequisites: Experience with web-development frameworks (e.g., React JS, Spring Boot) and good oral and written skills in English
Course: EECS4080
Supervisor: Afshin Rezaei
Supervisor's email address: rezaei@eecs.yorku.ca
Project Description: We would like to develop a User Interface (UI) using Javascript with the backend calculation using C++. In this project, we will develop forms for the user to enter the equipment data and store them in a database. Some secondary parameters should be also calculated from the user data. In the UI we need to draw simple circuits and figures showing the specified positions on the page and draw some simple symbols.
Required skills or prerequisites: JavaScript, C++, Database
Instructions: Send c.v. with similar projects you have done so far to the project supervisor.
Course: EECS4080
Supervisor: Michael Jenkin
Supervisor's email address: jenkin@yorku.ca
Project Description: With the fast increase in renewable energy generation and electric vehicles, electric load forecasting is becoming more and more important for power system operation. Based on the forecasting horizon, there are mainly three types of load forecasting, i.e., short-term, medium-term, and long-term. Short-term load forecasting mainly aims to predict the electric load in the next few seconds to the next few hours, which can be very helpful for real-world energy dispatching. In recent years, machine learning, especially deep learning, has shown impressive performance for short-term load forecasting. Generative models, e.g., generative adversarial networks, have shown great potential for computer vision and natural language processing. The potential of such generative models has not been well studied for load forecasting. In this project, we mainly aim to benchmark the performance of different types of deep generative models for short-term load forecasting. We will mainly work on OPEN EI data sets which consist of electric load consumption data sets for different buildings in the US.
Required skills or prerequisites: Good python software skills. Interest in AI systems.
Recommended skills or prerequisites: Interest in GANs. Interest in AI software development.
Instructions: Send CV, (unofficial transcript), GitHub repo address if available to Prof. Jenkin.
Course: EECS4080
Supervisor: Michael Jenkin
Supervisor's email address: jenkin@yorku.ca
Project Description: Hacking and false data injection from adversaries threaten can cause significant financial loss. Accurate detection of anomalies is of significant importance for the safe and efficient operation of modern power grids. In recent years, different types of techniques, such as statistical methods, unsupervised learning methods, generative models, and prediction-based methods, have been applied for anomaly detection. However, most of the current works assume the stability of the data distribution and ignore the distribution drift, which often happens in the real world. In this work, we aim to utilize the benefits of ensemble learning to address real-world anomaly detection problems. Specifically, we plan to dynamically utilize the different base models via ensemble learning to tackle the challenges of distribution drift in the real world. For this project, we will mainly work on two data sets, i.e., the Secure Water Treatment (SWaT) Dataset and ICS Cyber Attack Dataset. These two data sets are frequently used real-world data sets for anomaly detection.
Required skills or prerequisites: Interest in AI systems. Interest in AI software development
Recommended skills or prerequisites: Good python programming skills. Some course(s) in AI systems
Instructions: Send CV, (unofficial transcript), GitHub repo address if available to Prof. Jenkin.
Course: EECS4070/EECS4080
Supervisor: Zhen Ming (Jack) Jiang
Supervisor's email address: zmjiang@yorku.ca
Project Description: Software engineering data (e.g., source code repositories and bug databases) contain a wealth of information about a project's status and history. With the recent advances of large language models (e.g., GPT and BERT) as well as their applications (e.g., ChatGPT or GitHub Copilot), many software engineering tasks can be automated or optimized. In this project, the student(s) will explore and investigate various software engineering applications which can benefit from the use of LLMs.
Required skills or prerequisites:
Recommended skills or prerequisites: Some knowledge in AI would be preferred but not required
Instructions: Send c.v. and unofficial transcript to the supervisor.
Course: EECS4070/EECS4080
Supervisor: Zhen Ming (Jack) Jiang
Supervisor's email address: zmjiang@yorku.ca
Project Description: Artificial Intelligence is gaining rapid popularity in both research and practice, due to the recent advances in machine learning (ML) research and development. Many ML applications (e.g., Tesla’s autonomous vehicle and Apple’s Siri) are already being used widely in people’s everyday lives. McKinsey recently estimated that ML applications have the potential to create between $3.5 and $5.8 trillion in value annually. Foundation models are large AI models trained on a vast quantity of data at scale. FMs can be used to power a wide range of downstream tasks (e.g., chat bots, code assistants, tutors, etc.). However, there remain many challenges in efficiently training, deploying and monitoring such FM infrastructure. In addition, there is a lack of tools and processes to further develop applications or services on top of such FMs. The goal of this project is to develop engineering tools and best practices to support effectively operationalizing FMs.
Required skills or prerequisites:
Recommended skills or prerequisites: Some knowledge in AI would be preferred but not required
Instructions: Send c.v. and unofficial transcript to the supervisor.
Course: EECS4080
Supervisor: Marcus Brubaker
Supervisor's email address: marcus.brubaker@yorku.ca
Project Description: In the healthcare field, the nature of decision-making is inherently multimodal, as clinicians explore various modalities of data to deliver optimal care. In this context, machine learning research has devoted efforts to mimic this decision-making process by building algorithms for integrating different data modalities. In this context, we have established a collaborative research team comprising several experts and organizations to conduct a project that explores the intersection of multimodal learning and foundation models. Our goal is to extend the application of foundation models for clinical decision-making tailored to address complex healthcare problems in Canada. We aim to build Generalist Multimodal AI models using national and provincial healthcare data. Our models will integrate and analyze medical records, genomics, and medical images to generate clinical insights and predictions. The research student will assist with building multimodal benchmark datasets, instructions and prompts, and evaluation tasks for the foundation models. In particular, the potential tasks are as follows:
Required skills or prerequisites: Proficient in Python, Git Version Control, and Deep Learning libraries (e.g., TensorFlow or PyTorch), General knowledge of object-oriented programming languages and using High-Performance computing environments
Recommended skills or prerequisites: General knowledge of foundation and large language models
Instructions: This project is in collaboration with Professor Elham Dolatabadi. Please send a CV, transcript and statement of interest describing your interest in the project and how you meet the required/recommended skills to both Professors Brubaker marcus.brubaker@yorku.ca and Dolatabadi edolatab@yorku.ca.
Course: EECS4070/EECS4080
Supervisor: Hamzeh Khazaei
Supervisor's email address: hkh@yorku.ca
Project Description: In this research, we plan to examine the application of large language models (LLMs) in designing more dependable software systems. Dependability in this context refers to the overall trustworthiness of the software, which includes aspects such as performance (how well the system operates under varying conditions and workloads), reliability (the system's ability to function properly and consistently over time), and security (resiliency against malicious attacks and its ability to protect data and maintain privacy). One of these aspects will be addressed in this research. This has not been finalized yet as it will be applicant-dependent. We believe LLMs have great potential in designing intelligent adaptive large-scale computing systems. These models can process vast amounts of data, learn from it, and make decisions or predictions, which is essential for systems that require a high degree of autonomy, such as cyber-physical systems and machine-learning systems that often need to operate and maintain themselves automatically due to their scale and complexity.
Required skills or prerequisites: Good programming skills. Good grades in System and ML courses.
Recommended skills or prerequisites: Interested in the intersection of machine learning and systems. Interested in building large-scale systems.
Instructions: Please send your CV and transcripts to the supervisor.
Course: EECS4480/EECS4080
Supervisor: Jonatan Schroeder
Supervisor's email address: jonatan@yorku.ca
Project Description: Unit testing platforms like Java's JUnit and Python's unittest provide a simple interface for evaluating the correctness of individual functions in a large project. These platforms can also be used in an academic environment to automatically test student-submitted code in programming assignments and generate a grade based on if these tests pass or fail. However, given that these platforms were originally developed for running code that is expected to be trusted, this practice can lead to a potential risk if students are able to provide code that causes the test to pass without resulting in the expected value (see https://www.seas.upenn.edu/~hanbangw/blog/hack-gs/). While most modern autograding platforms introduce security practices to avoid this kind of code from receiving a valid grade, some vulnerabilities still exist.
For this project you will strengthen the security of an autograder process for either Python or Java code for the PrairieLearn platform. You will start by creating possible attack vectors in the form of code that is expected to cause the autograder to pass a test without actually returning the expected results. Examples of attack vectors include code that saves or outputs well-formatted values that are interpreted by the autograder as a success, code that is able to identify secret information from the autograder code, and/or code that crashes the original autograder process. Then you will implement safeguards that ensure student-submitted code is unable to bypass container sandbox limitations, and that ensure that malicious student code does not result in a successful grade.
You will work in coordination with the supervisor and the PrairieLearn developer community to brainstorm possible strategies and guidelines. Your final deliverable will be a pull request to the PrairieLearn codebase with the proposed fix.
Required skills or prerequisites:
Recommended skills or prerequisites: EECS 3221 is highly recommended. Experience with Docker containers is helpful but can be obtained during the project. Git experience is helpful. Experience with open source software development is an asset.
Instructions: Additional information about PrairieLearn can be found here: https://prairielearn.readthedocs.io/en/latest/. A sample PrairieLearn assessment that includes Python autograded questions can be found here: https://us.prairielearn.com/pl/course_instance/136606/assessment/2351069. Please submit a brief description of your experience with the skills listed above.
Course: EECS4080 or EECS4480
Supervisor: Yan Shvartzshnaider
Supervisor's email address: rhythm.lab@yorku.ca
Project Description: Modern sociotechnical systems share and collect vast amounts of information. These systems violate users’ privacy by ignoring the context in which the information is shared and failing to incorporate contextual information norms.
Using techniques in natural language processing, machine learning, network, and data analysis, this project is set to explore the privacy implications of mobile apps, online platforms, and other systems in different social contexts/settings.
To tackle this challenge, the project will operationalize a cutting-edge privacy theory and methodologies to conduct an analysis of existing technologies and design privacy-enhancing tools.
Students will help analyze information handling practices of online services and design privacy-enhancing tools.
Specific tasks include: comprehensive literature review of existing methodologies and tools, analysis of privacy policies and regulations, visualization of information collection practices, and design of a web-based interface for analyzing extracted privacy statements to identify vague, misleading, or incomplete privacy statements.
For prior project, see this link
Required skills or prerequisites: Good programming and data analysis skills overall, and experience in using Jupyter and/or R for data analysis. Ability to work independently. Interest in usable privacy, critical analysis of privacy policies and privacy related regulation.
Recommended skills or prerequisites: Experience with Machine Learning, Natural Language Processing techniques, HCI design. Students with diverse backgrounds, including in technical fields, social sciences and humanities are encouraged to apply.
Instructions: Please fill in this form
Course: EECS4080 or EECS4480
Supervisor: Yan Shvartzshnaider
Supervisor's email address: rhythm.lab@yorku.ca
Project Description: Designing a privacy-preserving VR experience requires adhering to contextual integrity of users’ data . This involves accounting for different modes of interaction and ensuring robustness to accommodate the evolving privacy norms associated with future VR adaptations.
To tackle this challenge, the project will operationalize a cutting-edge privacy theory and methodologies to develop mechanisms that ensure that information flows in accordance with users’ expectations and established societal norms in VR settings.
Students will help analyze information handling practices of VR applications and design tools to enhance privacy of VR users.
Specific tasks include conducting a comprehensive literature review of existing methodologies and tools, performing a dynamic analysis of data practices in VR applications, and checking for compliance with existing regulations and privacy policies.
For reference, see these papers:
Required skills or prerequisites:
Recommended skills or prerequisites:
Course: EECS4080
Supervisor: Meiying Qin
Supervisor's email address: mqin@yorku.ca
Project Description: Debugging is one of the most important skills for computer science students. However, first-year students are usually not comfortable with working with a debugger. In order to help ease the process for first-year students, we plan to write an application that can visualize the process by animating the variable manipulated, either on a screen or using virtual reality/augmented reality. In this project, you will have the opportunity to gain hands-on experience in both designing and implementing a software application. You will gain experience in animation or virtual reality.
Required skills or prerequisites: Proficient in Python (as you will write a visualized debugger for students learning Python) Strong learning ability (You will be expected to learn VR/AR programming if we decide to use NR/AR)
Recommended skills or prerequisites: Experience with virtual reality/augmented reality or animation
Instructions: Please send your c.v. and transcript to the project supervisor. If available, please also send your e-portfolio (e.g., GitHub, or other links) of your previous projects.
Course: EECS4080
Supervisor: Meiying Qin
Supervisor's email address: mqin@yorku.ca
Project Description: One of the biggest challenges that first-year students face is the transition from high school to university. This is expected to be more pronounced once the York Markham campus opens as all courses will use the flipped-class model. In this model, students are required to be more active in learning and preview the content before each class in order to stay on track. In order to assist first-year students in making a smoother transition even before school starts, we plan to release a game that simulates the life of a computer science student at the Markham campus to provide students with a preview of university life. In this project, you'll have the opportunity to gain hands-on experience in both designing and implementing a game.
Required skills or prerequisites: Strong software engineering skills; The game will either be on Android or a web-based game. So you will need to have some experience in either Java or web development; an interest in helping first-year students and suggesting game components based on your own experience.
Recommended skills or prerequisites: Experience with graphical user interface or game design.
Instructions: Please send your c.v. and transcript to the project supervisor. If available, please also send your e-portfolio (e.g., GitHub, or other links) of your previous projects.
Course: EECS4080
Supervisor: Meiying Qin
Supervisor's email address: mqin@yorku.ca
Project Description: The goal of this project is to deploy a robotic tutor to assist first-year programming students. Students enrolled in the first-year programming course will go to a designated location to interact with a robot to do exercises together. While robot tutors have been utilized in pre-university education, few studies have explored their effectiveness within post-secondary education settings. By participating in the 4080 project, students will gain immersive exposure to run user studies given a robot project. The roles and responsibilities of students involved in this project include deploying the robot system developed by other students in the fall term and brainstorming potential ways to analyze the data collected with statistical methods.
Required skills or prerequisites: The project will not involve much programming;
Recommended skills or prerequisites: Have some background in statistical analysis (e.g., T-test, ANOVA)
Instructions: Please send your c.v. and transcript to the project supervisor.
Course: EECS4480
Supervisor: Ruba Al Omari
Supervisor's email address: alomari@yorku.ca
Project Description: Machine learning plays a crucial role in Cybersecurity by detecting and responding to threats in an efficient manner. It is being used in areas like network anomaly detection, malware and phishing detection, and entity and user behaviour analytics. The goal of this project is to conduct a comprehensive survey to learn the following:
Deliverable: Survey
Required skills or prerequisites:
Instructions: Please send your c.v. and unofficial transcript to the project supervisor, along with a cover letter (maximum 500 words) of why you believe you are a suitable candidate for this project.
Course: EECS4480
Supervisor: Ruba Al Omari
Supervisor's email address: alomari@yorku.ca
Project Description: The goal of this project is to show how different encryption methods work under the hood. You will implement different encryption algorithms in Python to show how the internals of the algorithm work. For example, demonstrating how AES works by writing SubBytes, InvSubByets, ShiftRows, MixColumns, and AddRoundKey functions. These functions are then used in a full round of encryption. The same is to be done for the decryption phase. The user should be able to observe the state array at any point in the encryption/decryption process. Input variables will be block size, key size, key, plaintext (if encrypting), number of rounds, and ciphertext (if decrypting). The algorithms in order of implementation are: DES, AES, Feistel Cipher, S-AES, and SHA-256. If time permits, we will be working with other algorithms. Deliverables: A single Jupyter notebook per algorithm.
Required skills or prerequisites:
Recommended skills or prerequisites: Interest in Cryptography
Instructions: Please send your resume and unofficial transcript to the project supervisor, along with a cover letter (maximum 500 words) of why you believe you are a suitable candidate for this project.
Course: EECS4080
Supervisor: Kai Zhuang
Supervisor's email address: kai.zhuang@lassonde.yorku.ca
Project Description: Generative AI is revolutionizing education in many ways. We are looking to develop a AI assisted process/framework to assess written assignments, using either BING or ChatGPT platforms. The goal is to create an application / process that is straightforward for instructors to use, and can provide immediate feedback for students.
Required skills or prerequisites:
Recommended skills or prerequisites:
Instructions: Sending cv, any explanation or demonstration of requisite skills to project supervisor would be helpful.
Course: EECS4080
Supervisor: Kai Zhuang
Supervisor's email address: kai.zhuang@lassonde.yorku.ca
Project Description: We are looking for a computer science student with experience with embedded systems to help develop one or more projects for undergraduate computer programming and mechatronics course(s). Specifically, we are looking to develop a project involving creating a musical instrument using the Arduino platform in combination with MATLAB, Java, and Python.
Required skills or prerequisites:
Recommended skills or prerequisites: Familiarity with Java and Python coding
Instructions: Sending cv, any explanation or demonstration of requisite skills or experience to project supervisor would be helpful. Examples of embedded systems projects from past can be particularly helpful.
Course: EECS4080
Supervisor: Song Wang
Supervisor's email address: wangsong@yorku.ca
Project Description: Recently, pre-trained large language models (LLMs) have emerged as a breakthrough technology in natural language processing and artificial intelligence, with the ability to handle large-scale datasets and exhibit remarkable performance across a wide range of tasks. Meanwhile, software testing is a crucial undertaking that serves as a cornerstone for ensuring the quality and reliability of software products. As the scope and complexity of software systems continue to grow, the need for more effective software testing techniques becomes increasingly urgent, making it an area ripe for innovative approaches such as the use of LLMs. Our recent collaboration with Meta also confirms the limitations of existing widely used testing techniques in mutation testing. This project takes a solid initial step toward exploring the next-generation software mutation testing techniques powered by LLMs.
Required skills or prerequisites: Familiarity with DL libraries such as Tensorflow and Pytorch;
Instructions: Send c.v. and transcript to the project supervisor.
Course: EECS4070/EECS4080
Supervisor: Maleknaz Nayebi
Supervisor's email address: mnayebi@yorku.ca
Project Description: In today's software development landscape, the integration of visual data has become increasingly vital. The Image Processing for Software Teams project aims to empower software teams with robust image processing capabilities, enhancing their ability to work with and derive insights from visual content within their applications. The project includes:
Required skills or prerequisites:
Recommended skills or prerequisites:
Instructions:
Course: EECS4080
Supervisor: Pooja Vashisth
Supervisor's email address: vashistp@yorku.ca
Project Description: The aim of this project is to enhance the course navigation experience for students by providing them with an interactive and intuitive interface that can assist with accessing course materials, finding relevant information, and answering commonly asked questions.
The main objectives of this project are as follows:
Required skills or prerequisites:
Recommended skills or prerequisites:
Instructions: Please send your c.v., transcript, and Statement of Interest in the project to the project supervisor.
Course: EECS4080
Supervisor: Pooja Vashisth
Supervisor's email address: vashistp@yorku.ca
Project Description: The objective of this project is to streamline the process of evaluating programming assignments by automating the grading process, providing timely feedback to students, and reducing the workload of instructors. The main objectives of this project are as follows:
Methodology: The project will follow these general steps.
Required skills or prerequisites: Tech stack for this project:
Recommended skills or prerequisites:
Instructions: Please send your c.v., transcript, and Statement of Interest in the project to the project supervisor
Course: EECS4080
Supervisor: Yves Lesperance
Supervisor's email address: lesperan@yorku.ca
Project Description: Reasoning about action (RAC), including generating plans to achieve goals, is a key capability for autonomous agents. Mainstream techniques for RAC and automated planning (based on heuristic search), are very effective, but they rely on a human modeler specifying the dynamic domain and queries/goals formally. Some recent research has investigated whether pretrained language models (LM) can effectively reason about action and change while avoiding the need to formally specify the domain. For instance, He et al. (ACL 2023) has studied the performance of some LMs on fundamental RAC tasks such as Projection, Executability, Plan Verification, and Goal Recognition. The LMs were first fine-tuned/pretrained on Blocks World domains and task instances (with a STRIPS semantics) and then tested on new instances. The LMs performed rather well on similar instances, but generalized poorly to tasks involving longer action sequences or more domain objects. In this project, the student will use the datasets generated in this work to experiment with newer language models and various fine-tuning methods to see if generalization can be improved.
Required skills or prerequisites: EECS3401, Python programming skills.
Recommended skills or prerequisites: Some previous exposure to machine learning, automated planning, first-order logic.
Instructions: Send CV and unofficial transcript to project supervisor.