Topics in Computer Science
| Course | Meet Days | Meet Time | Location | Instructor(s) |
|---|---|---|---|---|
| CS 398 001 [LEC] | Mon, Wed May 11 – Aug 5 |
10:00AM – 11:20AM | MC 4041 | Mei Nagappan mei.nagappan@uwaterloo.ca |
| CS 398 002 [LEC] | Mon, Wed May 11 – Aug 5 |
11:30AM – 12:50PM | MC 4041 | Mei Nagappan mei.nagappan@uwaterloo.ca |
Instructor: Mei Nagappan (mei.nagappan@uwaterloo.ca) – DC 3349.
TAs: Maksym Bidnyi (mbidnyi@uwaterloo.ca), Xavier Schneider (xschneider@uwaterloo.ca), Zesheng Jia (zesheng.jia@uwaterloo.ca).
Office Hours: With the instructor or TAs by appointment.
This course introduces students to AI-powered approaches for problem-solving in software development. Students will learn how to frame coding problems effectively, generate and refine solutions using AI tools, implement and test code collaboratively with AI, and assess software quality, security, and performance. Through hands-on practice, students will gain experience in leveraging AI as a coding partner while developing critical thinking and problem-solving skills.
By the end of this course students should be able to…
| Clearly define the requirements: problems, constraints, and edge cases before applying AI. |
| Use AI to generate multiple solution strategies and critically evaluate their trade-offs. |
| Implement and refine code solutions with attention to reliability. |
| Pick up human-in-the-loop skills when using AI tools. |
| Apply non-functional requirements (security, performance) when working with AI-generated code. |
| Debug, test, and optimize code in collaboration with AI systems. |
| Week | Date | Lecture Topic |
|---|---|---|
| 1 | May 11, 2026 | Intro to CS398: Coding With AI |
| 1 | May 13, 2026 | Intro to CS398: Coding With AI |
| 2 | May 18, 2026 | Holiday: Victoria Day |
| 2 | May 20, 2026 | Dr. Margaret-Anne Storey Guest Lecture |
| 3 | May 25, 2026 | Code Comprehension without LLMs |
| 3 | May 27, 2026 | Code Comprehension without LLMs |
| 4 | June 1, 2026 | Requirements |
| 4 | June 3, 2026 | Requirements |
| 5 | June 8, 2026 | Code Generation |
| 5 | June 10, 2026 | Code Generation |
| 6 | June 15, 2026 | Code Summarization |
| 6 | June 17, 2026 | Code Summarization |
| 7 | June 22, 2026 | Debugging |
| 7 | June 24, 2026 | Debugging |
| 8 | June 29, 2026 | In Class Test 1 |
| 8 | July 1, 2026 | Holiday: Canada Day |
| 9 | July 6, 2026 | Testing |
| 9 | July 8, 2026 | Testing |
| 10 | July 13, 2026 | Code Review |
| 10 | July 15, 2026 | Code Review |
| 11 | July 20, 2026 | Performance |
| 11 | July 22, 2026 | Performance |
| 12 | July 27, 2026 | Security |
| 12 | July 29, 2026 | Security |
| 13 | August 4, 2026 | In Class Test 2 |
| 13 | August 5, 2026 | Guest Lecture: TBD |
| Name of Technology | Required | Price (CAD) |
|---|---|---|
| Learn | Required | – |
| OpenAI Codex / Claude Code / Cursor / GitHub Copilot / Kiro | Required | 25–27 CAD + HST/month |
Any one of the 5 tools above can be used in class. GitHub Copilot has unfortunately paused new sign-ups. If you already had GitHub Copilot as a student, you may still have access. Amazon Kiro (kiro.dev/students) has a 1-year free subscription for UWaterloo students.
| Item | Notes | Required |
|---|---|---|
| Laptop | If you do not have one, we will work to get you a loaner. | Required |
| Component / Activity | Date or Due Date | Submission Method | Weight (%) |
|---|---|---|---|
| In-class activities | Every class between weeks 3 and 12 | Learn Dropbox | 20% |
| In class test 1 | June 29 | In Person | 24% |
| In class test 2 | Aug 4 | In Person | 24% |
| Final | TBD | In Person | 32% |
No automated assignment screening will be utilized within this course.
Generative AI (GenAI) tools such as OpenAI Codex, Claude Code, Cursor, GitHub Copilot, and Kiro should be used for in-class exercises with proper documentation, citation, and acknowledgement. See the UWaterloo Library recommendations for how to cite GenAI in student work.
You are accountable for the content and accuracy of all work you submit, including any supported by generative AI. Keep your rough notes, sources, brainstorming, drafts, and prompts — you may be asked to submit these along with earlier drafts.
The University of Waterloo acknowledges that much of our work takes place on the traditional territory of the Neutral, Anishinaabeg, and Haudenosaunee peoples. Our main campus is situated on the Haldimand Tract, the land granted to the Six Nations that includes six miles on each side of the Grand River. Our active work toward reconciliation is co-ordinated within the Office of Indigenous Relations.
Mental Health: UWaterloo Counselling Services offer confidential support, including individual counselling, workshops, and crisis intervention. Call 519-888-4096 or visit the Counselling Services website.
Academic Integrity: Members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect, and responsibility.
Grievance: A student who believes a decision was unfair may initiate a grievance under Policy 70. Contact the department's administrative assistant for assistance.
Discipline: Students should refer to Policy 71 for categories of offences and penalties, and the Guidelines for the Assessment of Penalties for typical penalties.
Appeals: Decisions under Policy 70 or 71 may be appealed if grounds exist. Refer to Policy 72, Student Appeals.
Note for students with disabilities and disabling conditions: Register with AccessAbility Services (AAS) as early as possible. Contact AAS at 519-888-4567 ext. 35082 or access@uwaterloo.ca, or visit Needles Hall North, 1st Floor, Room 1401.
Turnitin.com: Text matching software (Turnitin®) may be used to screen assignments. Students with privacy concerns regarding U.S. server storage will be provided an alternative. Notify the instructor in the first week of term if you wish to submit an alternate assignment.