Syllabus for MME 567
Machine Intelligence
Summer 2023
- Course description
- General information
- Textbooks
- Schedule
- Assignments
- Development environment
- Projects
- Graduate student responsibilties
- Homework, quiz, & project policies
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:
- Download and install VS Code. It is available on all major platforms. It can be installed on your user account on a lab computer.
- Open VS Code.
- Under the “Extensions” tab (left-side navigation), install the Python extension.
- 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.” - Type
ctrl
+shift
+P
(macOScmd
+shift
+p
), typePython: Select Interpreter
, and press Enter. Select from the list thepython.exe
file in ananaconda
directory with the namebase
. This selects the Anaconda environmentbase
. This should already contain the packages we will need. -
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!")
- 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:
- Nice Model: a linear system and
- Challenge Model: a nonlinear system.
With the Nice Model, you will be given a Benchmark Controller. The design goals are
- to design an MLC for the Nice Model that meets or exceeds the Benchmark Controller’s performance and
- to design another MLC that meets design performance criteria.
Performance criteria
TBA
Project organization
Projects will have the following organization.
- The class will be divided into two teams.
-
Deep Learning: uses a deep learning method to design the controllers.
- Franny (co-lead)
- Robert (co-lead)
- Justus
-
Reinforcement Learning: uses a reinforcement learning method to design the controllers.
- Jonathan (co-lead)
- Kyler (co-lead)
- Kristopher
- Reno
-
Deep Learning: uses a deep learning method to design the controllers.
- Each team will have its own GitHub repository. Create a GitHub account and message me your username so I can add you to your repository.
- Each team will collaborate to
- research their method of MLC,
- design the MLC controllers,
- write programs that demonstrate their controllers’ performance, and
- write a report according to the report guidelines.
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:
- taking a leadership role on their project and
- 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.