Instructor Information

Stephyn Butcher

Stephyn Butcher is a principal software engineer for Gerson Lehrman Group, Inc. (GLG), where he applies machine learning and data science to problems including recommendations, data cleaning, and A/B testing. He was formerly a data product solutions engineer for Appriss Safety and, prior to that, was a senior software engineer for ThreatGRID, a division of Cisco, where he focused on malware detection. Butcher also has worked as a data scientist/engineer for Clubhouse Software, LivingSocial, NIH/HPCIO and Mercury Analytics.

Butcher has taught machine learning at Johns Hopkins University where he is a lecturer in the Whiting School of Engineering’s department of computer science. Through JHU’s Engineering for Professionals programs, Butcher teaches courses in artificial intelligence, reasoning under uncertainty, and data science.

Butcher has an MS in computer science, an MA in economics, and a BA in economics. His dissertation focused on swarm intelligence, and his research interests include games programming, machine learning, programming languages, software engineering, and statistics.

Butcher also is an ordained Zen priest.

Course Information

Course Description

The incorporation of advanced techniques in reasoning and problem solving into modern, complex systems has become pervasive. Often, these techniques fall within the realm of artificial intelligence. This course focuses on artificial intelligence from an agent perspective and explores issues of knowledge representation and reasoning. Students will investigate a wide variety of approaches to artificial intelligence including heuristic and stochastic search, logical and probabilistic reasoning, planning, learning, and perception. Advanced topics will be selected from areas such as robotics, vision, natural language processing, and philosophy of mind. Students will have the opportunity to explore both the philosophical and practical issues of artificial intelligence during the course of the class.

Course Goal

To expose students to the fundamental topics and techniques in artificial intelligence through lectures, problems and experiments.

Course Objectives

  • Understand the main approaches to artificial intelligence such as state space search approaches (state space search, constraint satisfaction, planning, reinforcement learning) and model search approaches (regression, neural networks, bayesian networks, decision trees).
  • Recognize problems that may be solved using artificial intelligence and machine learning.
  • Implement artificial intelligence algorithms for hands-on experience with them.
  • While many of these algorithms are available in libraries for many programming languages and packages, unless the user understands the algorithms, they're a "black box". One objective is to make the box more transparent.

When This Course is Typically Offered

This course is usually offered online in the Spring (online) and Summer (Hybrid).


  • State Space Search
  • Adversarial Search (Games)
  • Constraint Satisfaction Problems
  • Reinforcement Learning
  • Local Search
  • Logic
  • Planning
  • Regression and Classification
  • Model Evaluation
  • Artificial Neural Networks
  • Decision Trees
  • Probabilistic Reasoning
  • Instance Based Learning

Student Assessment Criteria

Programming Assignments (12) 25%
Class Participation 25%
Quizzes 25%
Self Checks 25%

The percentages indicate that you must achieve an excellent level performance on all assessments for an "A". For example, an "A" in the class requires an "A" in Class Participation, submission of a super majority of Self Checks, an "A" on on a super majority of Programming Assignments and an "A" on a super majority of quizzes. A satisfactory level on each Assessment type would earn a "B".

Computer and Technical Requirements

Must have completed all fundamental courses (605.401, 605.411, and 605.421).

Python is required for the course. You can google for video tutorials (the Google tutorial is nice), Dive into Python is a free book online and in PDF form. There is a lot of programming in the course (weekly assignments).

Participation Expectations

Unless otherwise noted, all work is to be by individual effort. The computer science academic integrity policy is strictly followed and enforced.


Textbook information for this course is available online through the MBS Direct Virtual Bookstore.

Course Notes

There are no notes for this course.

Final Words from the Instructor

Artificial Intelligence is, of necessity, a survey course. Many topics are worthy of courses in their own right (and many such courses are offered through EPP). The main goal of the course is familiarize the student with the breadth of topics covered by artificial intelligence as well as some depth and experience with a few specific topics and algorithms. This approach strives to strike a balance between knowing what and being able to do more research at a later date with some practical experience implementing AI algorithms.

Term Specific Course Website

(Last Modified: 11/20/2017 05:08:25 PM)