Lecture: Monday/Wednesday 1:30-3:00, DOW 1017 (1:30pm-2:50 clock time)

Remote Lectures starting 3/16:

There is no discussion section.


There is no required textbook for this course.

Course Staff

 Kevin Leach, PhD
 kjleach at
 Senior Research Fellow, UM

Instructional Assistants

 Nikhil Devraj
 devrajn at

 Sahil Farishta
 sahilf at

 Gauri Bapat
 gaurib at

Office Hours

Monday/Wednesday 3-4pm (after class), BBB 2909 (Kevin)

Remote Office Hours Queue: link

IA Office Hours (Online through BlueJeans):

Wednesday 11:30am-1:30pm, Friday 12:30-2:30pm (Sahil)

Tuesday/Thursday 12:30-2:30pm (Nikhil)

Monday 10am-12pm, Thursday 11am-1pm (Gauri)


Sign up for Piazza here. This will be our primary form of communication.


Conversational Artificial Intelligence (EECS 498 Special Topics) will acquaint you with the fundamental ideas surrounding the design and implementation of a virtual assistant. This course will stress a significant, practical course project: an end-to-end virtual assistant that helps users accomplish various goals of your choosing. You will produce a virtual assistant, a front-end, and a back-end during the course of the semester, using a Conversational AI platform: DialogFlow, Rasa, or Clinc. You will master fundamental concepts of virtual assistants, computational linguistics, natural language processing, deep learning, crowdsourcing, data curation, and project management.

This course counts as a Major Design Experience (MDE) elective for CS-ENG majors. As such, there is an expectation that students work in large groups on a significant semester-long project. Students are expected to be independent in forming groups, dividing tasks, and delivering in-class presentations throughout the semester.


'What are my chances for getting off the waitlist?' is by far the most common question we receive. Unfortunately, we cannot guarantee admission to the course, and we can only speculate based on previous semesters. Students are admitted in the order in which they joined the waitlist, although preference is given to undergraduate students. In previous semesters, all students were admitted who wanted to be in the course. We cannot grant overrides and the course capacity is set by the fire marshal. If you are in a group with someone on the waitlist, you should try to target a larger group in case that group member does not get admitted.

Enrollment Restrictions

University-enforced prerequisites



Recommended prerequisites

It is helpful for some of your group members to know about front-ends (e.g., with jQuery, react, angular, etc.), back-ends (e.g., django, nodejs, php, etc.), and remote API endpoint usage.

These are not requirements, but will merely make some parts of your project a bit faster.

Project and Assignments

As an MDE elective, the primary goal of this course is to work on a semester-long project culminating in a full, end-to-end virtual assistant using DialogFlow, Rasa, or the Clinc platform and integrating a front- and back-end.

The Course Project consists of a Project Pitch, a Scoping Review, Internal Testing, 3 Sprint Reviews, a Cooperative Testing Document, a Final Demonstration, and a Video Demonstration.

Students on teams are expected to participate equally in the effort and to be thoroughly familiar with all aspects of the joint work. All members bear full responsibility for the completion of each project component. Members turn in one submission for each project component; each member receives the same grade for the assignment. Teams must be formed early in the semester, and cannot be changed without instructor permission.

Project Components are due at noon on the date in the course schedule. Project Components will be turned in electronically via a special submission server.

Group Formation

You are expected to work in groups of 5 to 8 students. We focus on larger groups to develop experience with project and personnel management during the semester. Find a group early. If you cannot find a group, you will be assigned to one a week before the Project Pitch presentation.

Course Tools and Programming Languages

The implementation of the Course Project is up to you and your group, however in previous semesters, students have leveraged the following tools and programming languages for projects.

Grading Policy

You must complete the Project to receive a passing grade.

  • 1% PC0 — Group Formation
  • 5% PC1 — Project Pitch
  • 5% PC2 — Scoping Review
  • 10% PC3 — Sprint Review 1
  • 15% PC4 — Sprint Review 2 (+ Internal Testing)
  • 10% PC5 — Cooperative Testing
  • 15% PC6 — Sprint Review 3
  • 20% PC7 — Final Presentation / Demonstration
  • 10% PC8 — Demonstration Video
  • 9% Participation

Final grades will be computed based upon the class average. We will target a minimum average grade of 85% (i.e., a B). That is, if the class average is 80%, each student will receive a "curve" of 5%. If the average grade is 90%, no adjustments will be made individually.

Participation is required on days when groups give sprint reviews. It is important to incorporate discussion from other groups in the class. You will submit a sprint review form for each presentation containing your feedback. You may miss up to 4 sprint review blocks before your Participation grade linearly decreases.

All course materials are due by the end of the final exam date: Wednesday, April 29, 2020 at 6pm. There will be no changes after this time.

Late Policy

Project Components are due at noon (12PM eastern) on the due date (unless noted otherwise). Late submissions will be penalized based on lateness. If a submission is made h hours late, that submission's final grade will be reduced by h%. For example, if you get 90% on a submission made 8 hours late, your final grade for that submission is .92*(.90)

Importantly, you must present something on your assigned presentation days. In some sense, you cannot "skip" a sprint review in industry — you present what you have completed regardless. You can turn in slides later (e.g., if you want to polish them), but we expect you to present or discuss something so we can make sure you're on track!

Honor Code Statement

Course Project

Please abide by the following policies with regard to the project. Students who violate these policies are subject to failure for the assignment or semester as well as referral to the Honor Council.

Any attempt to subvert, disable, or disclose information to the submission server or to another team's project will result in an F for the semester and referral to the Honor Council. Examples include: