OMS CS7637: Knowledge-Based AI — Summer 2023

This page provides information about the Georgia Tech OMS CS7637 class on Knowledge-Based AI relevant only to the Summer 2023 semester. Note that this page is subject to change at any time. The Summer 2023 semester of the OMS CS7637 class will begin on May 15, 2023. Below, find the course’s calendar, grading criteria, and other information. For more complete information about the course’s requirements and learning objectives, please see the general CS7637 page.

Quick Links

To help with navigation, here are some of the links you’ll be using frequently in this course:

Course Calendar At-A-Glance

Below is the calendar for the Summer 2023 OMS CS7637 class. Note that assignment due dates are all Sundays at 11:59PM Anywhere on Earth time.

Week #Week OfLessonsDeliverableAssignment Due Date
105/15/202301, 02Introductions, Start-of-Course Survey05/21/2023
205/22/202303, 04, 05Mini-Project 105/28/2023
305/29/202306, 07RPM Milestone 1, Homework 106/04/2023
406/05/202308, 09Mini-Project 2, Quarter-Course Survey06/11/2023
506/12/202310, 11RPM Milestone 2, Homework 206/18/2023
606/19/202312, 13, 14Mini-Project 3, Exam 106/25/2023
706/26/202315, 16, 17RPM Milestone 307/02/2023
807/03/202318, 19Mini-Project 4, Mid-Course Survey07/09/2023
907/10/202320, 21, 22RPM Milestone 4, Homework 307/16/2023
1007/17/202323, 24, 25Mini-Project 507/23/2023
1107/24/2023Final RPM Project, Exam 207/30/2023
1207/31/202326End-of-Course Survey, CIOS Survey08/06/2023

Given above are the numeric labels for each lesson. For reference, here are those lessons’ titles, with the estimated time to complete each lesson in minutes in parentheses:

  • 01: Introduction to Knowledge-Based AI (45)
  • 02: Introduction to CS7637 (60)
  • 03: Semantic Networks (60)
  • 04: Generate & Test (30)
  • 05: Means-Ends Analysis (60)
  • 06: Production Systems (60)
  • 07: Frames (45)
  • 08: Learning by Recording Cases (30)
  • 09: Case-Based Reasoning (60)
  • 10: Incremental Concept Learning (60)
  • 11: Classification (45)
  • 12: Logic (90)
  • 13: Planning (75)
  • 14: Understanding (30)
  • 15: Commonsense Reasoning (60)
  • 16: Scripts (30)
  • 17: Explanation-Based Learning (45)
  • 18: Analogical Reasoning (60)
  • 19: Version Spaces (60)
  • 20: Constraint Propagation (45)
  • 21: Configuration (45)
  • 22: Diagnosis (45)
  • 23: Learning by Correcting Mistakes (45)
  • 24: Meta-Reasoning (30)
  • 25: Advanced Topics (60)
  • 26: Wrap-Up (30)

Course Assessments

Your grade in this class is generally made of five components: three homework assignments, five mini-projects, one large project, two exams, and class participation. Final grades will be calculated as an average of all individual grade components, weighted according to the percentages below. Students receiving a final average of 90 or above will receive an A; of 80 to 90 will receive a B; of 70 to 80 will receive a C; of 60 to 70 will receive a D; and of below 60 will receive an F. We do not plan to have a curve. It is intentionally possible for every student in the class to receive an A.

Homework (15%)

You will complete three homework assignments in this course, each worth 5% of your average. Each homework assignment will have two questions, which you will answer in around three pages each. These questions will cover the course material, as well as give you a chance to investigate cutting-edge AI research. You will be expected to do some outside research for some of these questions. All assignments should be written using JDF.

Mini-Projects (30%)

You will complete five mini-projects in this course, each worth 6% of your average. Each mini-project asks you to implement some AI logic shown in the course lectures, although you are also welcome to attempt to solve the problems using other techniques. For each of the mini-projects, you will also provide a short write-up of your approach, mainly to share with classmates and look through others’ approaches. These write-ups should be written using JDF. You’ll submit the write-ups to Canvas and the code to Gradescope.

Raven’s Project Milestones (15%) and Raven’s Final Project (15%)

The semester-long project is the Raven’s project, where you will write an agent that can solve problems on the Raven’s Progressive Matrices test. For the project, you will complete four milestones throughout the semester, and then a final submission. The four milestones together are worth 15% of your average, and the final submission is worth another 15%. The milestones are there to ensure that you get started on the project early and have an opportunity to see your classmates’ approaches. Each milestone, as well as the final project submission, is graded half on performance and half on a written report. These write-ups should be written using JDF. You’ll submit the write-ups to Canvas and the code to Gradescope.

Exams (15%)

You will take two proctored exams in this class, each worth 7.5% of your average. Each exam is 90 minutes long with up to 25 questions, all multiple-choice, multiple-correct with five choices and between 1 and 4 correct answers. Partial credit is awarded. Each exam will cover all lectures through the current week (for example, Exam 1 covers lessons 01 through 12). All exams are open-book, open-note, open-internet: everything except live interaction with another person. The tests are digitally proctored. Tests will open at least one week prior to the deadline, though they may be open earlier.

Class Participation (10%)

One of the major strengths of large online classes it the way they allow students to have significant impact on their classmates’ experiences. As such, 10% of your class grade and 10% of the time you spend on this class will be improving the course experience for other students. This is participation credit, and it can be earned in various ways: participating on the class forum; participating in peer review; submitting annotated bibliographies for the course resources; submitting candidate exam questions; participating in other activities; completing course surveys; completing the secret survey by clicking the hidden link here before the end of week 2 to indicate you read the entire syllabus; and more. There may be other mechanisms to earn participation points announced throughout the semester; check the course forum for that!

Course Policies

The following policies are binding for this course.

Official Course Communication

You are responsible for knowing the following information:

  1. Anything posted to this syllabus (including the pages linked from here, such as the general course landing page).
  2. Anything emailed directly to you by the teaching team (including announcements via the course forum or Canvas), 24 hours after receiving such an email.

Generally speaking, we will post announcements via Canvas and cross-post their content to the course forum; you should thus ensure that your Canvas settings are such that you receive these announcements promptly, ideally via email (in addition to other mechanisms if you’d like). Georgia Tech generally recommends students to check their Georgia Tech email once every 24 hours. So, if an announcement or message is time sensitive, you will not be responsible for the contents of the announcement until 24 hours after it has been sent.

We generally prefer to handle communication via the course forum to help with collaboration among the teaching team, but we understand the course forum is not ideal for having information “pushed” to you. We may contact you via a private the course forum post instead of an email, but if we do so, we will choose to send email notifications immediately, bypassing your individual settings, in order to ensure you’re alerted. As such, this type of communication will also spring under #2 above.

Note that this means you won’t be responsible for knowing information communicated in several other methods we’ll be using. You aren’t responsible for knowing anything posted to the course forum that isn’t linked from an official announcement. You aren’t responsible for anything said in Slack or other third-party sites we may sometimes use to communicate with students. You don’t need to worry about missing critical information so long as you keep up with your email and understand the documents on this web site. This also applies in reverse: we do not monitor or Canvas message boxes and we may not respond to direct emails. If you need to get in touch with the course staff, please post privately to the course forum (either to all Instructors or to an instructor individually) or tag the instructor in the relevant post.

Communicating with Instructors and TAs

Communication with the course teaching team should be handled via the discussion forum. If your question is relevant to the entire class, you should ask it publicly; if your question is specific to you, such as a question about your specific grade or submission, you should ask it privately.

Our workflow is to regularly filter the forum for Unresolved posts, which includes top-level threads with no answer accepted by the original poster, as well as mega-threads with unresolved follow-ups. If your question requires an official answer or follow-up from an instructor or teaching assistant, make sure that it is posted as either a Question or as a follow-up to a mega-thread, and that it is marked Unresolved. Once an instructor or TA has answered your question, it will automatically be marked as Resolved; if you require further assistance, you are welcome to add a follow-up, but make sure to unmark the question as Resolved in order to make sure that it is seen by a member of the teaching team.

Similarly, in order to keep the forum organized, please post as a Post or Note instead of a Question if your question does not require an official response from the teaching team. For example, if you are interested in getting multiple perspective from classmates, getting feedback on your ideas, or having a discussion that does not have a single answer, please use Post or Note instead of Question. Please reserve Question threads for questions that will likely have a single official response. TAs and instructors will regularly convert Questions to Posts or Notes that do not need a single official answer, but it will save time and allow them to focus their attention on other students if you correctly categorize your post in the first place.

Late Work

Running such a large class involves a detailed workflow for assigning assignments to graders, grading those assignments, and returning those grades. As such, work that does not enter into that workflow presents a major delay. We have taken steps to limit as much as possible the need to ever submit work late: we have made the descriptions of all assignments available on the first day of class so that if there are expected interruptions (such as like weddings, business trips, and conferences), you can complete the work ahead of time. If you have technical difficulties submitting the assignment to Canvas by the deadline, post privately to the course forum immediately and attach your submission. Then, submit it to Canvas as soon as you can thereafter.

If due to a personal emergency, health emergency, family emergency, or other unforeseeable life event you find you are unable to complete an assignment on time, please post privately to the course forum with information regarding the emergency. Depending on your unique situation, we will share guidance on how to proceed; if the emergency is projected to delay a significant quantity of the work required for the class, we may recommend withdrawing and reattempting the class at a later date. If the emergency will likely only impact a small amount of the course, we may be able to accept the work late as a one-time exception. If the emergency takes place once you have already completed a significant fraction of the coursework, we may offer an Incomplete grade to allow you to finish the class after the semester is over.

Note that depending on the nature and significance of the request, we may require documentation from the Dean of Students office that the emergency is sufficient to justify offering an incomplete grade or accepting late work. Note also that regardless of the reason, we also cannot promise any particular turnaround time for grading work that was approved to be submitted late; it may be that grades and feedback will not be returned before the end of the term, and it may be that a temporary grade of Incomplete must be entered to leave time to grade work that was accepted late.

If you are not comfortable sharing with us the nature of an emergency, or if you need more comprehensive advocacy, we ask you to go through the Dean of Students’ office regarding class absences. The Dean of Students is equipped to address emergencies that we lack the resources to address. Additionally, the Dean of Students office can coordinate with you and alert all your classes together instead of requiring you to contact each professor individually. The Dean of Students is there to be an advocate and partner for you when you’re in a crisis; we wholeheartedly recommend taking advantage of this resource if you are in need. You may find information on contacting the Dean of Students with regard to personal emergencies here:

Academic Honesty

All students in the class are expected to know and abide by the Georgia Tech Academic Honor Code. Specifically for us, the following academic honesty policies are binding for this class:

  • In written essays, all sources are expected to be cited according to APA style. When directly quoting another source, both in-line quotation marks, an in-line citation, and a reference at the end of the document are required. When directly summarizing another source in your own words, quotation marks are not needed, but an in-line citation and reference at the end of your document are still required. You should consult the Purdue OWL Research and Citation Resources for proper citation practices, especially the following pages: Quoting, Paraphrasing, and Summarizing, Paraphrasing, Avoiding Plagiarism Overview, Is It Plagiarism?, and Safe Practices. You should also consult our dedicated pages (from another course) on how to use citations and how to avoid plagiarism.
  • Any figures borrowed from other sources must similarly be cited. If you borrow an existing figure and modify it, you must still cite the original figure. It must be obvious what portion of your submission is your own creation.
  • Any programming sources, such as existing code or libraries, must be cited as well. Include a link to the original source of the code and clearly note where the copied code begins and ends (for example, with /* BEGIN CODE FROM (source link) */ before and /* END CODE FROM (source link) */ after the copied code). Any external libraries, images, or any other materials not created by you should be referenced either within the code (where possible) or in a README file included with the deliverable.
  • It is important to note that “sources” in the above contexts means any material that you did not write yourself: it does not matter whether you are referencing academic sources with named authors, general web sites with no named writer, popular open-source libraries with many contributors, or AI-generated text in response to a prompt you provided. Any text that is not originally written by you is considered an external source that should be cited accordingly.
  • In written essays, you may not copy any content from any current or previous student in this class, regardless of whether you cite it or not.
  • You may not under any circumstances copy any code from any current or former student in the class, or from any public project addressing the same content as the course projects, such as the Raven’s Progressive Matrices or a Block World agent.
  • The only code segments you are permitted to borrow are isolated project-agnostic functions, meaning functions which serve a purpose that makes sense outside the context of our projects (such as, for example, inverting colors in an image). Include a link to the original source of the code and clearly note where the copied code begins and ends (for example, with /* BEGIN CODE FROM (source link) */ before and /* END CODE FROM (source link) */ after the copied code). This is partially to emphasize what your unique project and deliverable is, and partially to protect against instances where you and a classmate both borrowed a function from the same external repository.
  • During exams, you are prohibited from interacting directly with any other person on the topic of the exam material. This includes posting on forums, sending emails or text messages, talking in person or on the phone, or any other mechanism that would allow you to receive live input from another person.
  • You may not post the work that you submit for this class publicly either during or after the semester is concluded. We understand that the work you submit for this class may be valuable for job opportunities, personal web sites, etc.; you are welcome to write about what you did for this class, and to provide the actual work privately when requested, but we ask that you do not make your actual submissions or code publicly available; this is to reduce the likelihood of future students plagiarizing your work. Similarly, unless you notify us otherwise, by participating in this class you authorize us to pursue the removal of your content if it is discovered on any public assignment repositories, especially if it is clearly contributed there by someone else.

There is one exception to these policies: unless you are quoting the course videos directly, you are not required to cite content borrowed from the course itself (such as figures in videos, topics in the video, etc.). The assumption is that the reader knows what you write is based on your participation in this class, thus references to course material are not inferred to be claiming credit for the course content itself.

These policies, including the rules on all pages linked in this section, are binding for the class. Any violations of this policy will be subject to the institute’s Academic Integrity procedures, which may include a 0 grade on assignments found to contain violations; additional grade penalties; and academic probation or dismissal.

Note that if you are accused of academic misconduct, you are not permitted to withdraw from the class until the accusation is resolved; if you are found to have participated in misconduct, you will not be allowed to withdraw for the duration of the semester. If you do so anyway, you will be forcibly re-enrolled without any opportunity to make up work you may have missed while illegally withdrawn.


Every semester, we make changes and tweaks to the course formula. As a result, every semester we try some new things, and some of these things may not work. We ask your patience and support as we figure things out, and in return, we promise that we, too, will be fair and understanding, especially with anything that might impact your grade or performance in the class. Second, we want to consistently get feedback on how we can improve and expand the course for future iterations. You can take advantage of the feedback box on the course forum (especially if you want to gather input from others in the class), give us feedback on the surveys, or contact us directly via private the course forum messages.