Mehrdad Sabetzadeh
We will be using Piazza for class discussions. The system is meant to get you help fast and efficiently from the professor and your classmates.
Find our class page at: https://piazza.com/uottawa.ca/fall2025/csi5187 . Please create an account and enrol there as soon as possible.
The first lecture will be held on Friday September 9, 2025.
Lectures: Tuesday 2:30-5:20pm
MRT 251 in Morisset Hall (65 University Private)
Office hours: By appointment
Natural Language Processing (NLP) Pipeline, Conceptual Modelling of the Content and Semantics of Software Engineering Artifacts, Information Extraction and Classification, Clustering, Supervised Machine Learning, Empirical Evaluation of NLP and ML Techniques, Deep Learning, Transformers, Word Embeddings, Prompt Engineering
Students who successfully finish this course will develop:
applied knowledge of several important NLP and ML techniques in software engineering (the course has a strong emphasis on NLP and ML in requirements, design and quality assurance);
a detailed understanding of the suitability and the strengths and limitations of these methods;
the ability to critique scientific research related to the applications of NLP and ML in software engineering;
the ability to formulate research problems, articulate their context, and devise solutions that can potentially address these problems;
the ability to summarize research findings and communicate research results in a scientifically rigorous manner.
There are no official prerequisites for this course. Nonetheless, excellent programming skills in Python, Java, and/or R are required. A mature knowledge of software engineering (SEG2105 and SEG2016) is assumed. If you are not specializing in systems and/or software engineering or a subfield thereof, this course may not be for you.
Large-scale software development involves the construction and manipulation of large sets of a variety of engineering artifacts, including requirements specifications, system models, design documents, source code, and test cases. Natural Language Processing (NLP) and Machine Learning (ML) are increasingly gaining traction as a way to provide automated assistance with the creation, quality assurance and reconciliation of these artifacts.
This course will introduce students to how NLP and ML are applied in a software engineering context. The first part of the course will be an (application-oriented) introduction to some important NLP and ML techniques that have generated interest in software engineering. Notably, these techniques include text parsing, clustering, feature-based learning, pre-trained language models, and word embeddings. In the 2024 offering, we will further cover prompt engineering for the first time, introducing this recent and important skill for crafting effective input prompts for large language models. The last 2-3 lectures of the course will be seminar-style, focusing on student presentations. Course projects are expected to tackle software engineering issues through the application of NLP, ML or a combination thereof. Course projects can be defined on a wide range of themes, as long as the targeted application area is software engineering. While not restricted to these, potential themes include automated decision support, quality assessment of natural language specifications, extraction of information from unstructured and semi-structured artifacts, traceability, compliance, testing, and evolution.
The evaluation is based on four assignments (both conceptual and implementation work), a project proposal (short report), a project-progress presentation (oral presentation), participation, and a final course-project paper (long report). The assignments will be announced in class, and posted on BrigthSpace. The tentative due dates for the course deliverables are:
Assignment 1: September 29, 2025
Project Proposal: October 10, 2025
Assignment 2: October 27, 2025
Assignment 3: November 17, 2025
Assignment 4: December 1, 2025
Seminar Presentation (oral), during the last 2 weeks of class
Final Course Project Report: December 22, 2025 * * * Strict * * *
The project proposal will be 2 pages long (excluding references), covering the basic ideas of the problem that a student (team) intends to solve and why the student thinks the problem is important. In addition, each student needs to provide in their project proposal an evaluation plan, explaining how they are going to validate the findings in the course project. A template will be provided for the project proposal.
The final project report will be 6-8 pages long (excluding references). This report will describe in a precise and scientific manner the project goals, the method(s) used, the evaluation strategy (including the analysis procedure and metrics) and the conclusions. Artifact submissions, for example, a prototype tool, will receive bonus credit. Like the project proposal, the final project report is supposed to adhere to a template that will be provided to you.
For their seminar presentations, students will present chapters from a forthcoming book on the application of NLP in Requirements Engineering. These presentations occur in the last two lectures. A preference poll will be set up in due course to enable students to choose their preferred chapter and time-slot, assigned on a first-come, first-served basis. Each presentation lasts 20-30 minutes (exact duration to be confirmed based on enrolment). The presentation should clearly explain the technical content in a manner that provides educational value to the class. The presentation is meant to offer a chance for detailed interaction with the professor and other students.
Four assignments = 30 (4 * 7.5) marks
Project proposal = 15 marks
Participation: 5 marks
Seminar presentation = 15 marks
Course project report = 35 marks
The course emphasizes teamwork and collaboration. All assignments, projects, and presentations are team-based, involving groups of two or three students. It is expected that team composition should remain constant throughout the course. Equal involvement from each team member is anticipated in all individual course activities.
The course does not have exam components, but considerable commitment is necessary if one wants to successfully fulfil the requirements of this course, particularly the course project.
The course does not have a traditional textbook; however, the practical applications targeted in the course align with those discussed in the upcoming book, Handbook on Natural Language Processing for Requirements Engineering, edited by Ferrari and Ginde. This book is a collection of invited chapters; the chapters will be presented by students in seminar sessions. In addition, suggested readings will be provided for some lectures as we go along (please check the lecture information on the Course Homepage). Parts of the following textbooks will be used throughout the course.
Speech and Language Processing by Daniel Jurafsky and James Martin
Data Mining: Practical Machine Learning Tools and Techniques by by Ian Witten, Eibe Frank and Mark Hall
An Introduction to Information Retrieval by Christopher Manning, Prabhakar Raghavan and Hinrich Schütze
Experimentation in Software Engineering by Claes Wohlin, Per Runeson, Martin Höst, Magnus C. Ohlsson, Björn Regnell, Anders Wesslén.
Guide to Advanced Empirical Software Engineering by Forrest Shull, Janice Singer, Dag Sjøberg (Editors)
The Coding Manual for Qualitative Researchers by Johnny Saldaña
The course slides and discussions alongside papers and online material should suffice for achieving the course's learning objectives.
Attendance is required. The course will be delivered in-person.
Academic fraud is an act by a student that may result in a false evaluation (including papers, tests, examinations, etc.). It is not tolerated by the University. Any person found guilty of academic fraud will be subject to severe sanctions. Here are some examples of academic fraud:
Plagiarism or cheating of any kind;
Present research data that has been falsified;
Submit a work for which you are not the author, in whole or part;
Submit the same piece of work for more than one course without the written consent of the professors concerned.
Please consult this webpage: it contains regulations and tools to help you avoid plagiarism.
An individual who commits or attempts to commit academic fraud, or who is an accomplice, will be penalized. Here are some examples of possible sanctions:
Receive an “F” for the work or in the course in question;
Imposition of additional requirements (from 3 to 30 credits) to the program of study;
Suspension or expulsion from the Faculty.
You can refer to the regulations on this webpage.
All documents prepared by the course instructor, including assignments and course notes are protected by copyright. Copying, digitizing, or publishing on a web site is therefore a violation of copyright and is illegal.
There are many reasons to take advantage of the Counselling Service. They offer:
Personal counselling
Career counselling
Study skills counselling
Further information is available at http://www.sass.uottawa.ca/personal/
The Access Service acts as an intermediary between students, their faculty and other University offices to ensure that the special needs of these students are addressed and that the best possible learning conditions are being offered.
Note that the University of Ottawa is affiliated with AERO and ACE services for the adaptation of accessible academic materials for students with perceptual disabilities. If you have any questions, please contact the Accessibility Librarian or the Access services for textbooks.
The University of Ottawa will not tolerate any act of sexual violence. This includes acts such as rape and sexual harassment, as well as misconduct that take place without consent, which includes cyberbullying. The University, as well as various employees and student groups, offers a variety of services and resources to ensure that all uOttawa community members have access to confidential support and information, and to procedures for reporting an incident or filing a complaint. For more information, please visit https://www.uottawa.ca/sexual-violence-support-and-prevention/