Instructor Information

Stephyn Butcher

Mr. Butcher is a Senior Software Engineer for ThreatGRID, a division of Cisco, that works on malware detection. He as worked as a Data Scientist/Engineer for Clubhouse Software, LivingSocial and NIH/HPCIO. He is also a Doctoral Student in Computer Science at the Johns Hopkins University, Baltimore, Maryland, Homewood campus.

He has taught Machine Learning (Homewood), Artificial Intelligence (EP), Reasoning Under Uncertainty (EP) and Data Science (EP). He has an MS in Computer Science, an MA in Economics and a BA in Economics. His dissertation research focuses on swarm intelligence. His research interests include games programming, machine learning, programming languages, software engineering and statistics.

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 and in-person in the Summer. It is being offered online during the Summer 2014 term.


  • 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) 70%
Class Participation 30%

In terms of assigning a final letter grade, the following is provided as guidance. Note that grading does not following strict percentages. You may consider them as a worst-case scenario (i.e., 90%+ for A, 75-89% for B, 60-74% for C); however, it is possible (if not likely) that the scale will be adjusted downward based on relative performance of the class. The goal is for the top 20% of the students to receive an A and the remainder of the class 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: 05/14/2014 05:38:17 PM)