605.743.81 - Advanced Artificial Intelligence

Computer Science
Fall 2023


Many advanced artificial intelligence systems are using both Machine Learning and Symbolic AI to solve subproblems. This course builds on the foundations of EN.605.645 Artificial Intelligence by delving more deeply into those AI algorithms and approaches that go under the name of Good Old Fashioned AI or Symbolic AI. In this course, we will cover logic programming, expert systems and business rules, fuzzy logic, case based reasoning, and knowledge graphs. We will also explore more advanced versions of planning and reinforcement learning algorithms. The instructor may add additional topics as warranted. Prerequisite(s): EN.605.645 Artificial Intelligence or permission of instructor.

Expanded Course Description

Completion of the Foundation courses for your degree program as well as EN.605.645 Artificial Intelligence (or permission of instructor). It will help if you have a background in several programming languages or at least not afraid of learning new languages.


Profile photo of Stephyn Butcher.

Stephyn Butcher


Course Structure

The course materials are divided into modules which can be accessed by clicking Modules on the course menu n Canvas. A module will have several sections including the overview, content, readings, discussions, and assignments. You are encouraged to preview all sections of the module before starting. Most modules run for a period of two weeks (14 days), exceptions are noted in the Course Outline. You should check Assignments on Canvas for due dates as well as the To Do and Coming Up sections of the right hand menu. You should regularly check the Calendar and Teams for course information, discussions, and changes.

Course Topics

Possible Course Topics include...

1. Simulation
2. AGI
3. Knowledge Graphs
4. Expert Systems
5. Case Based Reasoning
6. Fuzzy Logic
7. Hierarchical Planning
8. Reinforcement Learning
9. Large Language Models (LLM)
10. Artificial Neural Networks

Course Goals

  1. To understand the fundamental problems and challenges in (General) Artificial Intelligence and the Symbolic AI approach to AI.
  2. To develop a detailed understanding of the fundamental algorithms of Symbolic AI, to implement these algorithms from scratch, using libraries, or specialized programming languages; and to be able to implement systems that use Symbolic AI elements.

Course Learning Outcomes (CLOs)


Russell, S. & Norvig, P. (2020). Artificial intelligence: A modern approach (4th ed.) Pearson.

ISBN-10: 013461097
ISBN-13: 978-0134610997

If you took EN605.645, you should already have this book. We will use it for review and background. Textbook information for this course is available online through the appropriate bookstore website: For online courses, search the MBS website.

Required Software

Directions for setting up your programming environment are contained in the following gist:


Student Coursework Requirements

The standard for undergraduate work is 3 hours out of class for every 3 hours in class. This works out to 12 hours total per week. The standards for a STEM graduate course at a top tiered University are higher. Additionally, students’ programming abilities differ widely so it is impossible to predict how long it may take for the typical student to complete the materials. Finally, in general, our modules will run two weeks.

In general, you can expect to spend:

Module – Part 1
Lecture3 hours
4-6 hours  
2 hours
Problem Set
2-3 hours
Module - Part 2

3 hours
2 hours
Programming Assignment  
7-9 hours

The general pattern is a week of “academic” work followed by a week of “engineering” work.

This course will consist of the following basic student requirements:
1. Course Preparation & Participation
This is a Virtual Live course. Attendance is mandatory. Additionally, the Instructor may “flip” the classroom, requiring you watch recorded lectures ahead of time. The expectation is that you will have done so and come prepared to contribute. You will be expected to participate in in-class discussions and assignments.
2. Readings & Lectures
You are responsible for carefully reading/watching of all assigned material. The instructor will provide all readings. Additionally, you are responsible for all posts made by the instructor in Teams. You will indicate your having read the post by giving it a “thumbs up”.
3. Discussions
The learning objectives of each Module will be supported by group discussions. At the start of the semester, you will be assigned to groups. At the start of each Module, the instructor will provide a prompt for discussion or a task to be solved by the group as well as a schedule of milestones.
4. Problem Sets
Problem Sets will consist of short answer questions and small programming tasks. These will be used to demonstrate your understanding of the topic being covered in advance of the Programming Assignment.
5. Programming Assignments
The Programming Assignment will consist of a larger program implementing one of the Module’s algorithms and applying it to a specific problem.
6. Final Project
The Semester Project will consist of a larger program combining several algorithms, from both Symbolic and Numeric AI. Details will be provided later in the semester.

Grading Policy

Assignments are due according to the dates posted in your Canvas course site. You may check these due dates in the Assignments section of Canvas. I will post grades one week after assignment due dates. I do not generally accept late assignments for a grade without prior arrangement with me, or except in the event an emergency. This is a graduate, collaborative course and your participation is required throughout the week. There is no expectation that this course can be completed just on the weekends.

The due date is not the do date. “Due” here means, “due by ”.

We generally do not directly grade spelling and grammar. However, egregious violations of the rules of the English language will be noted without comment. Consistently poor performance in either spelling or grammar is taken as an indication of poor written communication ability that may detract from your grade.

This course uses threshold grading, that is, we expect a certain level of competence each grade and you cannot average your way into an A (or a B). This is consistent with the overall grading philosophy of the EP:

A grade of “A” indicates achievement of consistent excellence and distinction throughout the course—that is, conspicuous excellence in all aspects of assignments and discussion in every week.

A grade of “B” indicates work that meets all course requirements on a level appropriate for graduate academic work. These criteria apply to both undergraduates and graduate students taking the course.

Here are the main components of student assignments,
Class Participation 14
Discussions 6
Problem Sets 6
Programming Assignments 6
Final Project 1

4 (“A”)– Excellent. You completed the assignment in a timely manner, demonstrating a thorough understanding of the technique, tool or concept and conducted an excellent exploration of its use. If it is a discussion, your post was substantive, did not just quote other materials, and contributed to the on-going discussion. You went above what was required, asked for or expected.

3 (“B”)– Acceptable. You completed the assignment in a timely manner, you did exactly what was requested, demonstrating a sufficient understanding of the technique, tool, or concept. There may have been minor deficiencies. If it was a discussion pot, the post contributed to the discussion but it may have been a reference to other materials or perhaps even slightly off topic. You may have done more too much in the hopes that something was correct.

2, 1 (“C”, “D”)– Unacceptable. You either did not complete the assignment, it was not timely or you did what was minimally required. There are significant areas of confusion. A lack of exploration or curiosity about the concept, tool or technique. If it was a discussion post, it may have been off topic.

0 – (“F”) Oops. You did not submit the assignment on-time or post on-time or no bona fide effort was evident.

Basically the only way you can get a 0 is by not doing something on-time or at all.

Final Grades are based on the counts of scores.

For an A, you must at least get:

Class Participation 11 of 14 with a P(ass)
Discussions 4 of 6 with an A
Problem Sets 4 of 6 with an A
Programming Assignments 4 of 6 with an
A Final Project A

For a B, you must at least get:

Class Participation 11 of 14 with a P(ass)
Discussions 4 of 6 with a B or better
Problem Sets 4 of 6 with a B or better
Programming Assignments 4 of 6 with a B or better
Final Project B or better

Basically, an “A” is for “A” work across the board (“consistent excellence”) whereas a “B” may be a mixture of “A” and “B” work. Mixed performance will result in an A- or B+. Anything below this standard will be a “C”.

At my discretion, I will “curve” the required proportions in the various categories.

Academic Policies

Deadlines for Adding, Dropping and Withdrawing from Courses

Students may add a course up to one week after the start of the term for that particular course. Students may drop courses according to the drop deadlines outlined in the EP academic calendar (https://ep.jhu.edu/student-services/academic-calendar/). Between the 6th week of the class and prior to the final withdrawal deadline, a student may withdraw from a course with a W on their academic record. A record of the course will remain on the academic record with a W appearing in the grade column to indicate that the student registered and withdrew from the course.

Academic Misconduct Policy

All students are required to read, know, and comply with the Johns Hopkins University Krieger School of Arts and Sciences (KSAS) / Whiting School of Engineering (WSE) Procedures for Handling Allegations of Misconduct by Full-Time and Part-Time Graduate Students.

This policy prohibits academic misconduct, including but not limited to the following: cheating or facilitating cheating; plagiarism; reuse of assignments; unauthorized collaboration; alteration of graded assignments; and unfair competition. Course materials (old assignments, texts, or examinations, etc.) should not be shared unless authorized by the course instructor. Any questions related to this policy should be directed to EP’s academic integrity officer at ep-academic-integrity@jhu.edu.

Students with Disabilities - Accommodations and Accessibility

Johns Hopkins University values diversity and inclusion. We are committed to providing welcoming, equitable, and accessible educational experiences for all students. Students with disabilities (including those with psychological conditions, medical conditions and temporary disabilities) can request accommodations for this course by providing an Accommodation Letter issued by Student Disability Services (SDS). Please request accommodations for this course as early as possible to provide time for effective communication and arrangements.

For further information or to start the process of requesting accommodations, please contact Student Disability Services at Engineering for Professionals, ep-disability-svcs@jhu.edu.

Student Conduct Code

The fundamental purpose of the JHU regulation of student conduct is to promote and to protect the health, safety, welfare, property, and rights of all members of the University community as well as to promote the orderly operation of the University and to safeguard its property and facilities. As members of the University community, students accept certain responsibilities which support the educational mission and create an environment in which all students are afforded the same opportunity to succeed academically. 

For a full description of the code please visit the following website: https://studentaffairs.jhu.edu/policies-guidelines/student-code/

Classroom Climate

JHU is committed to creating a classroom environment that values the diversity of experiences and perspectives that all students bring. Everyone has the right to be treated with dignity and respect. Fostering an inclusive climate is important. Research and experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. At no time in this learning process should someone be singled out or treated unequally on the basis of any seen or unseen part of their identity. 
If you have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, please reach out to the course instructor directly. Reporting will never impact your course grade. You may also share concerns with your program chair, the Assistant Dean for Diversity and Inclusion, or the Office of Institutional Equity. In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g. sexual harassment).

Course Auditing

When a student enrolls in an EP course with “audit” status, the student must reach an understanding with the instructor as to what is required to earn the “audit.” If the student does not meet those expectations, the instructor must notify the EP Registration Team [EP-Registration@exchange.johnshopkins.edu] in order for the student to be retroactively dropped or withdrawn from the course (depending on when the "audit" was requested and in accordance with EP registration deadlines). All lecture content will remain accessible to auditing students, but access to all other course material is left to the discretion of the instructor.