COURSE OVERVIEW
This course introduces students to LLM-based approaches for problem solving in software engineering. Students will learn from the state of the art research and practice about how to frame coding problems effectively, generate and refine solutions using AI tools, implement and test code collaboratively with AI, review code and assess software quality, security, and performance. Through both reading research papers pushing the boundaries in the use of LLMs in software engineering and practical advice from grey literature like practitioner blogs, students will gain hands-on practice in leveraging AI as a coding partner while developing critical thinking and problem-solving skills.

COURSE SCHEDULE


Classes starts Jan 6 2026.
No office hours - Email me when you have a question.
Contact Instructor: Mei Nagappan . Please prefix the subject line of your email with the code [CS846] for a timely reply.

COURSE OBJECTIVES
We have a few main objectives in this course:

  • Be able to read and understand a research paper/practitioner blog about the use of LLMs in SE.
  • Identify the guidelines/best practices pointed out in the paper
  • Collaboratively come up with a set of code examples that the rest of the class can experiment on to understand the guidelines.
  • Experiment with the guidelines to see where it fails.
  • Documenting the guidelines and the failures.

Software and Hardware Requirements
We will use GitHub Copilot in the class. As a student you have a free licence to it. Everyone is expected to have a laptop with VS Code installed for class. If you do not have a laptop I can get you one for the term from CSCF.

AI Use
Since this is a class about coding with AI, you are allowed to use AI tools anywhere unless noted otherwise. However, everyone is required to acknowledge how and where they used which AI tools in all reports and presentations. Failure to acknowledge properly will result in academic integrity violations.

COURSE DELIVERY and GRADING
The class is held in DC 2585 every Tuesday at 11.30 AM - 02.20 PM EST. A detailed schedule is available here.

  1. 31% - Student Presentations and Guidelines due Friday before the corresponding Tuesday by Noon. Done as a team of students. :
    1. 15% - Each week a team of students will be assigned to the readings of that week. They will curate three sets of guidelines and provide the reasoning, and any necessary context. The three sets of guidelines are: (1) from the provided readings, (2) from any related research/grey literature like practitioner or developer tool blogs (eg. GitHub Copilot blogs) that the students will curate, and (3) from prompting large language models like GPT/Gemini/Claude/Deepseek models. In the first two sets, please reference the relevant work at appropriate places and in the third case please reference the model/models used and the prompts/prompt interactions used. Experiment with sample problems and then combine all the three guidelines to create one set of guidelines that will then be presented to the class. The unified guidelines need to be in the Guidelines markdown format. The guidelines from the three sources need to be in the Raw Guidelines markdown format.
    2. 10% - They will also upload a set of example problems that will take 45 mins for the rest of the class to do at a time. Some examples can be very small like at a function level and some can be much larger like at a repository level. Each example problem in each set will have a task description and all associated code, that the rest of the class can experiment with. The rest of the class will attempt to solve these problems with and without the guidelines. The example problems will be in the Example Problems markdown format.
    3. 6% - Finally, the students will also create and share a set of evaluation criteria for the example problems that can be used by the rest of the class to see if they solved the problem correctly and if the solution is good. The evaluation will be in the Evaluation markdown format.
    The group will uploaded all four markdown files to "Guidelines, Example Problems and Evaluations" dropbox in Learn by the Friday at Noon before the Tuesday they present. The instructor will provide feedback by Monday Noon that they can then incorporate in their final markdown file for the rest of the class. Also submit the three sets of guidelines to the same Learn folder just for the instructor to see. The number of students per team will depend on class size.
  2. 14% (2% for each of the seven weeks that you are not presenting) - Discussing the example problems during class. This is done individually.:
    1. The rest of the class will be provided with the task descriptions and code examples of the problems devised by the presenting team. This is shared in a repo that the rest of the class can checkout.
    2. The rest of the class will try out the example tasks in any which way they like. They will save the final solution and export their interactions with GitHub Copilot.
    3. The students responsible for that week will then present the combined guidelines from research papers/grey literature/LLMs.
    4. The rest of the class will try out the same example tasks with the guidelines this time. They will save the final solution and export their interactions with GitHub Copilot.
    5. Finally, the students responsible for that week will present the evaluation criteria.
    6. The rest of the class will evaluate both sets of solutions to the same problems with the evaluation criteria presented. This evaluation will be discussed in class.
  3. 35% (5% for each of the 7 weeks that you are not presenting) - Student Feedback due Every Tuesday (after the Tuesday when it is presented) before class time. This is done in teams. : The students teams who did not present will come up with a different set of problems (also roughly 45 mins to complete) that will serve as counterexamples to the guidelines presented. By counterexample we mean an example problem where at least one guideline did not work well. The team will also create an updated set of guidelines that works better on the example they created. They will upload the task description (markdown format) and all associated code in a repo and the guidelines (markdown format) to the appropriate dropbox in Learn by the Tuesday before class time (after the Tuesday when it is presented). The teams will also submit their solutions and the interactions with GitHub Copilot for the problems they created in a separate document to Learn.
  4. 10% - Updated Report 3 weeks after the students presented. Done as a team. : The students who presented the guidelines will collect all the new problems and guidelines from the rest of the class (will be shared by the instructor). They will collate them and create a new and updated set of guidelines and problems in the given markdown format and uploaded to the appropriate dropbox in Learn by the Friday at 5:00 PM three weeks after the Tuesday they present.
  5. 10% - App Coding Comparison. Due Friday at 5:00 PM after Final Tuesday's class. This is done individually: In Week 2 and Week 13 each student individually will build an app that the instructor shares details about. Week 2 app is coded before the 7 weeks of guidelines. Week 13 app is coded after the 7 weeks of guidelines. The students individually will document what they did for each app, which guidelines they used for what, and compare the two apps along a set of self decided evaluation criterion and write a final report on what worked and what did not work. The report will in the given markdown format and uploaded to the appropriate dropbox in Learn by the last Friday at 5:00 PM.
  6. Sharing the reports: The instructor will collate all the reports as one document and edit it before making it available on the course website under a GPL licence. This will be done in the weeks following the end of the term. Each student will be given the option to include/not include their names as the author to the respective sections.
Late Submissions: Late submissions within 24 hours will automatically lose 50% of the grade. Beyond 24 hours, submissions will not be graded and get a 0%.
Announcements: Any and all announcements will be made on Learn. Please set notifications up on Learn.

COURSE REQUIREMENTS
Students are expected to have background in coding, software development and software engineering.

Administrative Notes

Land Acknowledgement

As a settler, I want to acknowledge that I live and work on the traditional territory of the Attawandaron (Neutral), Anishnawbe and Haudenosaunee peoples. The University of Waterloo is situated on the Haldimand Tract, the land promised to the Six Nations that includes six miles on each side of the Grand River. Truth & Reconciliation Response Projects.

Mental Health Support

The Faculty of Math encourages students to seek out mental health support if needed. On-campus Resources:

  • Campus Wellness
  • Counselling Services: counselling.services@uwaterloo.ca/ 519-888-4567 ext 32655
  • MATES: one-to-one peer support program offered by Waterloo Undergraduate Student
  • Association (WUSA) and Counselling Services: mates@wusa.ca
  • Health Services: located across the creek from the Student Life Centre, 519-888-4096.
Off-campus Resources:
  • Good2Talk (24/7): Free confidential helpline for post-secondary students. Phone: 1-866-925-5454 (Ontario and Nova Scotia only)
  • Here 24/7: Mental Health and Crisis Service Team. Phone: 1-844-437-3247 (Waterloo Region only)
  • OK2BME: Set of support services for lesbian, gay, bisexual, transgender or questioning teens. Phone: 519-884-0000 extension 213 (Waterloo Region only)
  • EMPOWER ME 1-833-628-5589 for Cdn./USA other countries see: http://studentcare.ca/rte/en/IHaveAPlan_WUSA_EmpowerMe_EmpowerMe
  • EMPOWER ME in China: China North 108007142831; China South 108001402851
Diversity: It is our intent that students from all diverse backgrounds and perspectives be well served by this course and that students' learning needs be addressed both in and out of class. We recognize the immense value of the diversity in identities, perspectives, and contributions that students bring, and the benefit it has on our educational environment. Your suggestions are encouraged and appreciated. In particular:
  • We will gladly honour your request to address you by an alternate/preferred name or gender pronoun. Please advise us of this preference early in the term so we may make appropriate changes to our records.
  • We will honour your religious holidays and celebrations. Please inform of us these at the start of the course.
  • We will follow AccessAbility Services guidelines and protocols on how to best support students with different learning needs.

Academic Integrity

  • In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check the Office of Academic Integrity for more information.]

Grievance

  • A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt, please be certain to contact the department's administrative assistant who will provide further assistance. , Student Petitions and Grievances, Section 4.

Discipline

  • A student is expected to know what constitutes academic integrity to avoid committing an academic offence, and to take responsibility for his/her actions. [Check the Office of Academic Integrity for more information.] A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about "rules" for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate associate dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties check Guidelines for the Assessment of Penalties.

Appeals

  • A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground.
  • A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals).

Note for students with disabilities

  • AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.