This is a foundational course in Artificial Intelligence. Although we hear a lot about machine learning, artificial intelligence is a much broader field with many different aspects. In this course, we focus on three of those aspects: reasoning, optimization, and pattern recognition. Traditionally, the first was covered under “Symbolic AI” or “Good Old Fashioned AI” and the latter two were covered under “Numeric AI” (or more specifically, “Connectionist AI” or “Machine Learning”). However, despite the many successes of machine learning algorithms, practitioners are increasingly realizing that complicated AI systems need algorithms from all three aspects. This approach falls under the ironic heading “Hybrid AI”. In this course, the foundational algorithms of AI are presented in an integrated fashion emphasizing Hybrid AI. The topics covered include state space search, local search, example based learning, model evaluation, adversarial search, constraint satisfaction problems, logic and reasoning, expert systems, rule based ML, Bayesian networks, planning, reinforcement learning, regression, logistic regression, and artificial neural networks (multi-layer perceptrons). The assignments weigh conceptual (assessments) and practical (implementations) understanding equally.
The course materials are divided into modules which can be accessed by clicking Modules on the course menu in 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. Modules run for a period of seven (7) days. Details can be found in the Course Outline. You should regularly check the Calendar and Announcements for assignment due dates.
The course of this course are:
Russell, S. & Norvig, P. (2020). Artificial intelligence: A modern approach (4th ed.) Pearson.
ISBN-10: 013461097
ISBN-13: 978-0134610997
Textbook information for this course is available online through the appropriate bookstore website. For online courses, learn more about ordering textbooks from Follett.
Note that this text is a great resource for artificial intelligence but it’s not necessarily the best textbook. We will be going through the material in a non-standard order to more fully develop a picture of “Hybrid AI”.
Here is a link to the directions for setting up your Python environment:
https://gist.github.com/actsasgeek/19952660399be0c6dbb0407fe8c56ec4
Generative AI (GenAI) Policy
GenAI use is not permitted
Here is a link to the directions for setting up your Python environment:
https://gist.github.com/actsasgeek/19952660399be0c6dbb0407fe8c56ec4
Course Participation
In an online course, participation comes mainly in the form of participation on Canvas and any other platforms that may be adopted and through email.
You are expected to respond to email following the same communication policy I follow: reply within 36 hours. Please make sure that your email in SIS is current and that it is either an email you check every day or it is forwarded to an email account that you check every day.
You should check Canvas every day for Announcements, Posts, etc., that may have a bearing on assignments.
Readings & LecturesEach student is responsible for carefully reading/watching of all assigned material. The majority of readings are from the course text. Additional reading may be assigned to supplement text readings and group discussions. Each student is also responsible for all posts in the forums contained in the Course Discussions section, whether by the instructor or other students.
Self-CheckEvery week there is a self-check assignment. You should download it from the appropriate Course Module section before you start your reading the text/watching the video lectures.
The main goal of the Self-Check is to prepare you for the Programming Assignment.
The Self-Check is due on Thursday by Midnight, Eastern Time and you can post your submission to Canvas. Your submission should be in PDF format. You will be assigned two (2) Peer Reviews for the Self-Check that need to be completed by Saturday. Failure to complete your Peer Reviews gives you a "zero" (0) for the entire assignment.
Group DiscussionsThere will be Group Discussions. After Week 4, several readings will be assigned that will form the basis of the group discussions later in the semester. Details and due dates will be provided at that time. Group Discussions generally start after midway through the semester, once we have some content under belts.
Programming AssignmentsEvery week there will be a programming assignment. The Self-Check will have walked you through the algorithm you're about to implement.
The assignment will consist of a notebook (and possibly supporting files). You will only ever need to submit the notebook (do not submit the supporting files).
Programming assignments are to be entirely your own work.
Programming Assignments are due on Sundays.
Look for further instructions for Programming Assignments on Canvas in the General Discussion forum. There are very specific requirements. Failure to follow them will result in an “F” for the assignment.
AssessmentsModern pedagogy is based on a number of empirical results. First, that testing is the only way to remember anything. You should constantly be testing yourself about what you just read, just watched. Second, that cramming is nearly useless for long term retention. As a result, there is no Mid term or Final in the course.
Instead, there is a 15 question Assessment every week on the materials of the Module. You will have 30 minutes. The Assessment is timed, questions are randomized, and you cannot go back to previous questions.Assignments are due according to the dates posted in your Canvas course site or Course Outline. You may check these due dates in the Course Calendar or the Assignments in the corresponding modules. I will try to post grades one week after assignment due dates but no later than two weeks.
It’s worth noting that the due date is not the do date. You can and should start much earlier in the week on your assignments.
Late PolicyI do not accept late submissions for a grade without prior consultation, except in the case of extreme emergencies (the birth of a child, incapacitating illness, etc). The following are not legitimate reasons: work, taking other classes, weddings, family reunions, holidays, anniversaries, vacations, etc. However, emergencies of all stripes to arise. The key here is prior consultation.
The main issue is that lateness on Module 5’s programming assignment snowballs into Module 6’s programming assignment. To fall behind may mean never being able to catch up.
However, see the Revision Policy for Programming Assignments below.
I cannot make module material available early. It is not technically possible in Canvas. Please do not ask. Plan accordingly (you have the Course Outline).
Grading Standard of JHU Graduate SchoolWe 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.
“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.
“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.
“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.
“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 or failing to follow the programming requirements (see below).
I cannot stress this enough, merely working hard is not grounds for an A. The being said, if you put forth a bona fide effort, you’re likely to do better than a C. I once worked very hard for a C in the Advanced Microeconomics (actually, I worked too hard and did not ask enough questions!). Many students work hard instead of working smart. Ask questions.
Please go back and read those descriptions again. An “A” indicates excellence and a “B” indicates “meets requirements”. Additionally, there is the emphasis on every week.
Grading SystemThis course uses a Threshold grading system. Points are just a way to see if you cleared a specific threshold. So, for example, I believe that at least 13 out of 15 points on an Assessment is excellent whereas traditionally that would only be a "B" because it's 86.7% (a "B"). This means, however, that you can do some minimum amount the first weeks and then apply yourself at the end or apply yourself during the start and coast the last few weeks.
Doing well on Assessments is not a guarantee of any particular grade in the class. The Assessments are, in a word, easy. They're not meant to be tricky or hard. Instead, they're the kind of information I would hope you remember 5 years from now or more.
And the final grade is based on the majority of your grade for each of the different categories of work:
Class Participation | Checking Inbox, Announcements, Discussion Participation |
Self-Checks | 12 - Spring/Fall (12, Summer) |
Programming Assignments | 14 - Spring/Fall (12, Summer) |
Assessments | 14 - Spring/Fall (14, Summer) |
Review Assessment | 1 |
Grades
For an A, you must at least get:
Self-Checks* | Submit all self checks and complete all peer reviews. |
Programming Assignments | 12 of 14 (10 of 12, Summer) with a score of “A”, with the rest "C" or higher. |
Assessments* | 12 of 14 with 13 points or better and the remainders with 8 points or higher. |
Review Assessment | 43 points or better. |
Class Participation | Participate in discussions, forums, email, etc. |
For a B, you must at least get:
Self-Checks* | Submit all self checks and complete all peer reviews. |
Programming Assignments | 12 of 14 (10 of 12, Summer) with a score of “B” or higher, with the rest "C" or higher.) |
Assessments* | 12 of 14 with 11 points or better and the remainders with 8 points or higher. |
Review Assessment | 37 points or better. |
Class Participation | Participate in discussions, forums, email, etc. |
* although it is not advised, you may miss one self check and or one assessment (get a "0") and still get an "A" or "B" in the class.
Basically, an “A” is for “A” work across the board, every week whereas a “B” may be a mixture of “A” and “B” work. Anything below this standard will be a “C” or lower. The mixture of A and B work may lead to "plusses and minuses" in final grades (A- or B+, for example), at my discretion. I may change the thresholds done, at my discretion.
Programming Assignments
Programming assignments are generally graded using the following criteria:
1. Does it conform to the course programming requirements?
2. Does it provide the requested output correctly?
AI algorithms can be difficult to implement, especially Symbolic AI algorithms. Generally speaking, a completely correct submission is an A and it goes down from there. Minor deficiencies are a B, major shortcomings and partial implementations are in C and D territory. Failure to conform to the course programming requirements is automatically a "C". Failure to submit an assignment or failure to submit a "good faith effort" assignment is an "F".
You must submit all programming assignments and you must get at least a "B" on all assignments to "pass" the class (B or better).
Revisions
If you receive a C, D or F on a programming assignment, you may be offered the opportunity to revise the assignment within 7 days based on the feedback you received. A revised assignment is eligible for a B (but that's not guaranteed). The revision policy includes programming assignments you failed to submit or which were deemed to not be good faith efforts. It follows that if you have a conflict, and are going to miss a deadline, it just becomes a revision, with a maximum grade of a B.
Generally speaking...all grades are A, B, C, D, or F and pluses and minuses are directional and at our discretion (instructor and graders).
This is not a programming course. we will not and do not debug your assignments (either before submission or as part of grading). We will make my best effort to look for any obvious issues but we cannot fix your assignments. We will, however, answer all questions, prior to submission, about the algorithm. We often given hints about implementation strategies.
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. 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
Students with Disabilities - Accommodations and Accessibility
Student Conduct 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.