introduction to AI

Information Module


Other important links

  • Virtual classroom code of conduct
  • Email Dr. McGovern to get the Slack invitation link if you can’t find it on canvas or are from outside OU and want to participate.

Weekly announcements and what is due

Week 1

Welcome to week 1 of the Artificial Intelligence class! This is a combined class across three sections:  CS 4013 and two sections of CS 5013 (one for OU Norman students and one for OU Online students).  This course was developed as an online asynchronous class specifically for the new OU Online program.  Our OU Norman students also needed AI this semester so we are offering it to all three student groups using the same medium.  Dr McGovern has based it on her many years of teaching the CS 4013/5013 class in person at OU Norman.  All of the sections will use one canvas course. 

In week 1 you will primarily be learning what the class is about and how the class will be run, as well as getting started on how to use the project system.  This course may be different than the majority of your online classes as the content will be hosted outside of canvas.  However, it is all linked inside canvas so it is easy to find!

For this week, please go to Module 1 on the course website, complete the readings and assignments.  Remember to join the class slack page and feel free to ask questions if you are confused or lost in any way.  The TA and myself are both happy to answer and help!  

Note, all future class announcements will go to the class slack #announcements channel.

Welcome to AI!

More week 1 announcements

  • I created a channel called #bug-reports and it is intended for any bug reporting in the class material itself (though you can happily report space settlers bugs there too).  Since this is the first semester of the class being online, there may be bugs in the webpages (I’ve tried to check all the links!) and I want to fix anything you find.  Extra credit if you spot anything and are first to report!
  • Also another morning announcement:  In case you are confused by all the AI/ML classes in CS@OU, we have a chart to help you decide what to take!
    • ML Flowchart
  • Yes, homeworks are open-note open-book!

Week 2

Welcome to week two of AI class!  This week we are going to jump into the module on search methods.  The content for this module will be open for two weeks and I have a suggested schedule at the bottom that will get you through the module in the two weeks.  As always, the schedule is flexible though I did make half of it due by next Sunday and half the remaining Sunday so that you do not pile up all the work at once.  

Remember that project 0 is due this Wednesday, Sep 1, by 11:59pm (the time is to ensure it is clear which day it is due, if I choose midnight, it isn’t clear which day I mean.  This is the last minute on Wednesday Sep 1!). 

Project 1 is also assigned this week.  Project 0 focused on getting you used to the spacesettlers system but project 1 is where you will actually start to write code to move your agent around intelligently!  Please note that the projects will have different requirements for CS 4013 and 5013.  While there will be some differences in quizzes/assignments, the majority of the difference comes from the projects where the CS 5013 students must do a more in-depth project.  The differences are specified in the project pages and please make sure you turn in your writeup into the right spot on canvas (it shouldn’t even allow you to turn it into the wrong one, but be sure it is working right).

Week 3

Welcome to week 3 of AI class!  This week we are going to finish the module on search methods, moving into informed search from uninformed search.  Your next project (project 2) will use informed search methods, though you don’t need to worry about that yet as your focus this week is on project 1.  

Remember that there is a #projects channel for discussion on slack!  That is the best way to contact people about any project questions.  When you send Dr McGovern or Matt email, it is often a question we have been asked by a lot of people and we would really prefer one global answer on slack (unless there is something personal, of course!).  Also by posting on slack, you can help your fellow classmates as we are not always around 24×7 but often someone is reading slack at any hour of the day!

The suggested schedule for this week has you completing topic 3 in module 2 and then focusing on your project.  If you are behind on the topics in module 2, make sure you also catch up on them! 

Additional week 3 announcements

  • All of the built in code in space settlers is usable for the project!
  • All, I realized that the syllabus doesn’t have a late grading policy for the projects. This was an oversight due to trying to put in the covid flexibility. Rather than being super harsh on late projects, which I do not want to do, I want to create a poll and let you amend the syllabus. Poll coming as the next post so please vote shortly.
    • The winner was: Two free extensions to be used as needed across the semester and then 10% per day up to 3 days.  Simply state that you are using a free day when you turn in your project writeup on canvas

Week 4

Welcome to week 4 of AI class!  Today I want to start our weekly note discussing the project and there will be a quick poll about the project also following the announcement.  My worry is that project 1 was due last night and yet there are only 13 out of the 60 of you who have turned it in!  I helped several in office hours, even more over slack today, but I am worried about the rest of you and want to help!  Matthew says he has also been helping lots of you in slack but that still leaves a number who haven’t contacted us and are not turning in the project.  If you are stuck, we want to help!  Please slack in the #projects channel or private message one of me or Matt!

This week we move to a new module:  Module 3, which focuses on how to take our informed and uninformed search methods and apply them to more real-world situations.  This module is only one week long.  Note that for the handful of you who are working ahead, OU online is behind in processing my videos so I do not have anything beyond Module 4 online and live yet.  I will fix that as soon as the videos come in! 

Project 2 also begins this module.  Much of your project 1 code can be re-used for project 2!  For project 1 you focused on uninformed search methods and for project 2, you will focus on informed methods, specifically on A*.  I imagine you will have lots of questions so please make sure to chat on #projects or come to office hours or DM us in slack!

Week 5

Welcome to week 5 of AI!  This means we are 1/3 of the way through the semester!  I hope you are having a great semester so far and I have a fun poll in announcements for you today with regards to that.  

Hopefully everyone saw that I posted a solution set to Project 1 – this is not meant to be the only solution.  If you had a working project 1, feel free to keep using it for project 2!  This is just meant to help those who got completely stuck so that they can move onto project 2.  Speaking of project 2, please note that it is due this Sunday, Sep 26!  If you were one of the many people who voted on Project 1’s poll that you underestimated the time it would take, please make sure you start Project 2 with sufficient time!  And PLEASE ask questions in #projects!  It is not misconduct to talk about the project!  No one has turned in anything for extra credit yet which makes me worry that no one has started it yet.

This week we are moving to the next module:  Module 4 on adversarial search.  This is a two week module covering minimax all the way through advanced topics such as monte carlo tree search.  I look forward to continuing to work with you!

Week 6

Welcome to week 6 of AI!  I hope you all had a great week last week.  We got to start learning about adversarial search, which is always a fun topic.  I know from your surveys last week that a lot of you are feeling exhausted and I’m sure a lot of that is the combination of the pandemic plus this part of the semester is when deadlines all start happening at once.  Remember, you have your extra “life happens” days if needed and, if larger things arise, please contact me (Dr McGovern) to ensure that we can keep you on track.

I hope everyone got their project 2 turned in!  If not, please contact myself or Matt to help you get it finished.  Project 3 will move in a different direction where you will get to play against the gaming asteroids.  Those have not shown up in the previous projects.  I will not update the initialization code to make them appear until the late deadline for project 2 has passed but you can update it yourself to make them appear by changing the line 


to 0.1 or something else non-zero.  If you really want to practice your minimax code, make it 1.0!  

This week focuses on finishing the adversarial search module (Module 4). 

For the few people who asked to ensure the future modules are open, as of today, Modules 5-7 are fully online and open, though Project 5 is not yet online.  I’m working to get that online as well as the remaining modules but they will be another week or two.

I look forward to continuing to work with all of you!

Week 7

Welcome to week 7 of AI!  This week you will move on from the adversarial search and into multi-agent systems and planning.  This new module is a 2 week module and our final module before we start into machine learning (starts mid October).

I am pleased to see by all the discussion in #projects that you have started project 3 early this time.  Given that it is brand new code, I’m also happy to see the bug finding is going well 🙂 Keep it up and please note that I asked a question about features for the game in the #projects channel.  I can add those if they are needed!

Note that project 3 is due by the end of this week (Oct 10).  Also, if needed, I did release a project 2 solution and post it on the project page.

See you in slack!


Week 8

I haven’t made my usual Monday announcement since I’m traveling today but finally near Norman. We spent much of the last week competing in the national agility championships! The dogs did well and if I was in class in person, I would show off a movie 🙂 if you want to see, I can post one to YouTube. Below are two photos of the two dogs! (Photos in slack)

As for the usual Monday announcement, we remain in the module on planning and multi-agent systems this week.  Project 3’s deadline was extended until tonight (see previous announcement) and then Project 4 begins but it is not due until the end of the month.I’m really glad to see you all discussing projects in the #projects channel and helping each other out!  The next one is going to be fun with multiple ships and a new game of capture the flag.

Additional week 8 announcements

I was asked in a DM about implementing a PDDL parser and I want to start with a clarification:  100% you do NOT want to implement a full PDDL parser!!  I just want you to implement pre/post conditions in java.  This means you can do it for your specific actions.  So for example, if I make an action called GoToBeacon, I might make pre/post conditions as follows.


  • pre: distanceToBeacon < 300 AND energy < 500
  • post: energy += 2000

Then you would want to implement this in java with something like this (this isn’t going to be valid java code – this is more of a schema of code since I’m typing it into slack, not eclipse!)
class GoToBeaconAction {

// return true if they are satisfied
public boolean arePreConditionsSatisfied(State myState) {
// check to see if distance to beacon is less than 300 and energy is less than 500
// return true if so

public void applyPostConditions(State myState) {
// add 2000 to my energy level


Week 9

Welcome to week 9 of AI class!  I know this is a tough time of the semester for everyone but hopefully you see the light at the end of the tunnel.  This week we are starting on machine learning and I’m super excited for us to begin to learn about ML!  Remember, if you love the ML stuff we cover, there are multiple choices for learning more about ML at OU!  I would refer you to the diagram I posted in week 1 (and can be seen on the information page for the class also, where I keep a copy of all the announcements).    

The other big topic that I want to talk about this week is your project.  I want to emphasize that project 4 is probably different than you are thinking about it.  The key is that you cannot solve this project with if/then statements!  If you are doing your project that way, you are NOT doing planning (and you will be disappointed in your grade on the project!).  

To help you think about it, let’s relate the project to blocks world.  In blocks world, you need to specify a goal state (such as On(A,B) AND On(B,C)).  The same is true here.  For example, you might want to specify a goal state of (FlagCount = OpponentFlag + 2 AND Bases >= 3).  Note this is just an example.  Once you have your goal state, you then need to think about what actions you can define to help you achieve that goal state.  For example, you will definitely need an action GetFlag and another TakeFlagToBase.  Think about what your pre/post conditions are for the actions and use that to define the vocabulary for your state representation.  Finally, once you have a set of actions and a goal and a vocabulary, implement forward or backwards search.  Usually students choose to implement BFS as it is simple and relatively easy with only 6-10 actions and only a handful actually having the preconditions satisfied at each step.  You depth will not be large as your actions are abstract (such as GetFlag).  

I hope this helps you to think about your Project 4 implementations!  Please make sure to go to the #projects channel and ask additional questions.  I do not want you to be stuck and I do not want you to go down a wrong path.  Let’s help each other and have a great week! 

Week 10

Write me

Week 11

Write me

Week 12

Write me

Week 13

Write me

Week 14

Write me

Week 15

Write me

Finals week

Write me