Syllabus for MME 567
Machine Intelligence

Summer 2023

Course description

An introduction to artificial/machine intelligence. The study of this evolving and diverse topic begins with a survey and classification of techniques, including search-based, logic-based, statistical, and embodied. Applications of intelligent technologies explored include natural language processing, vision, expert knowledge, game-playing, and several robotics applications. Upon conclusion of the survey, the focus of the course turns to a special topic chosen by the instructor. The instructor could choose, for instance, machine learning, embodiment, evolutionary robotics, or artificial life—or a project.

General information

Instructor
Rico AR Picone, PhD
Actual office hours (CH 103C)
M,W 2:50–3:50
T,Th 2:20–3:50
Virtual office hours (zoom, make appointment!)
M,W 2:50–3:50
T,Th 2:20–3:50
Virtual office hours appointments
make appointment
Office location
CH 103C
Classroom location
Panowicz Hall 107
Times
MW 2:00–4:20 pm
Moodle
moodle.stmartin.edu

secretssssssssss

Textbooks

Stuart J. Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Fourth Edition. Pearson Education, 2020. (Required. Henceforth: RN)

Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press, 2016. (Recommended to extend your understanding of deep learning.)

Rolf Pfeifer and Josh Bongard. How the Body Shapes the Way We Think: A New View of Intelligence. MIT Press, 2007. (Recommended to extend your understanding of embodied cognition.)

Schedule

The following schedule is tentative. All assignments will be set one week before the due date.

week topics introduced reading project due
course introduction, setting up your development environment RN 1 Introduction
2 Intelligent Agents
set up your dev environment, organize into teams
TBA RN 3 Solving Problems by Searching
4 Search in Complex Environments
set up collab environment (GitHub) and report doc assignment TBA
TBA RN 6 Constraint Satisfaction Problems
19 Learning from Examples
write control program with given controller assignment TBA
TBA RN 21 Deep Learning
22 Reinforcement Learning
begin writing ML controller assignment TBA
TBA TBA continue writing ML controller assignment TBA
TBA 26 Robotics write report project due

Assignments

TBA

Development environment

The following development environment will be used for all class examples and assignments. The three primary pieces of software, Anaconda (Python), Git, and VS Code are available for free on all major operating systems. All of this except VS Code is installed on engineering lab computers (including those in the classroom).

Anaconda

Anaconda is a distribution of Python with a collection of Python packages for data science.

Download and install Anaconda.

Git

Git is an amazing version control tool for code development and collaboration. I use it for everything.

Install Git from the instructions here.

VS Code

This is currently the most popular code editor/integrated development environment (IDE) for many programming languages and tasks.

Setting up your VS Code environment

Do the following to set up your VS Code environment:

  1. Download and install VS Code. It is available on all major platforms. It can be installed on your user account on a lab computer.
  2. Open VS Code.
  3. Under the “Extensions” tab (left-side navigation), install the Python extension.
  4. Windows users: type ctrl+` to open a terminal. Click the dropdown next to the + sign and select “Select Default Profile.” From the dropdown, select “Git Bash.”
  5. Type ctrl+shift+P (macOS cmd+shift+p), type Python: Select Interpreter, and press Enter. Select from the list the python.exe file in an anaconda directory with the name base. This selects the Anaconda environment base. This should already contain the packages we will need.
  6. Create a new file with ctrl+N. Write the following in the file:

     import numpy as np
     import sympy as sp
     import matplotlib.pyplot as plt
        
     print("Hello, world!")
    
  7. Click the “play” button in the top right (Run Python File in Dedicated Terminal). The terminal should display the output Hello, world!.

Projects

The projects will create machine learning controllers (MLCs) to control dynamic systems. The groups will be given two multi-input, multi-output (MIMO) dynamic system plant models to control:

With the Nice Model, you will be given a Benchmark Controller. The design goals are

  1. to design an MLC for the Nice Model that meets or exceeds the Benchmark Controller’s performance and
  2. to design another MLC that meets design performance criteria.

Performance criteria

TBA

Project organization

Projects will have the following organization.

Report guidelines

TBA

Graduate student responsibilties

Graduate students (and students taking the course at the graduate level) have additional responsiblities in the course. They include:

  1. taking a leadership role on their project and
  2. performing a literature review for the project report (including the writing of the “Introduction” section of the report, wherein the literature on the topic should be described).

Homework, quiz, & project policies

Homework & homework quiz policies

Weekly homework will be “due” on Fridays, but it will not be turned in for credit. However — and this is very important — each week a quiz will be given on Friday that will cover that week’s homework.

Quizzes will be available on moodle each Friday (as early as I can get them up), and must be completed by that evening (before midnight). Late quizzes will receive no credit.

Working in groups on homework is strongly encouraged, but quizzes must be completed individually.

Grading policies

Total grades in the course may be curved, but individual homework quizzes and exams will not be. They will be available on moodle throughout the semester.

Homework quizzes
20%
Midterm Exam #1
25%
Midterm Exam #2
25%
Final Exam
30%

secrets

Academic integrity policy

Cheating or plagiarism of any kind is not tolerated and will result in a failing grade (“F”) in the course. I take this very seriously. Engineering is an academic and professional discipline that requires integrity. I expect students to consider their integrity of conduct to be their highest consideration with regard to the course material.