introduction to AI
Information Module
Syllabus
- Link to syllabus
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!
- 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
<probabilityGameable>0.0</probabilityGameable>
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.
GoToBeacon
- 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
Welcome to week 10 of AI class! This is such a crazy time of the semester that I managed to miss sending my Monday morning message on Monday morning! But welcome to this week anyway, if we are a day late.
This week we move to our next machine learning module: decision trees and ensemble methods. This should be a lot of fun!
The other main topic this week is project 4. You all should be sure you have started the project and are paying a lot of attention to actually doing planning. Remember last week’s message that discussed how you can’t simply use if/then and you really need to be doing search. This means, you main part of your team client needs to include a search (BFS, DFS, other search method) that implements planning and assigns jobs to the different ships. Also make sure you do not replan every step and that the ships remember their roles so they are not constantly reassigned (this would mean they never accomplish anything). Please keep asking questions in #project so we can help keep you from being stuck. This is one of the larger projects and if it looks easy, you are likely doing it wrong, unfortunately.
Week 11
Welcome to Week 11! We are nearing the end of the semester, which is hard to imagine. Time has flown by very quickly. This week you move to Module 8: neural networks and deep learning. As we said at the beginning of class, ML is not the full focus of this class and thus we are trying to do an overview of a variety of methods. This week we do an overview of neural nets & deep learning. It is really that – an overview. We could do an entire class on neural networks and another on deep learning and both of those are available at OU, so if you enjoy the topics, look into those classes.
Project 4 was due last night, though I did extend the number of “life happens” days so I imagine many of you are still working on it. Please pay attention to the fact that Project 5 has a short deadline by this Friday (you must turn in a proposal for the project). If you are a graduate student, you may want to read Project 5 and Project 6 before you complete your Project 5 proposal since tying the two projects together is one of the two required approaches for Project 6.
I look forward to continuing to work with you!
Week 12
Welcome to Week 12 of the semester! We are nearing the final few weeks with only two modules left! This week we jump into our last module on machine learning, specifically on reinforcement learning. Also, for anyone who wants to work ahead, the final module on AI & ethics is also now open along with the final project. I won’t discuss them more until next week’s announcement.
The majority of you submitted your project 5 proposals this past week, which I hope helped to get you thinking about the projects. I’m worried (based on the lack of questions in #projects and the questions that are happening in office hours for myself and Matt) that you are stuck on how to get started so I wanted to add a few tips and tricks here.
- Start by defining your problem exactly. Figure out exactly what data you want to collect.
- For example, figure out your precise y and your precise x’s for regression. If you are predicting fuel usage (which a lot of you chose), y is the fuel used over the unit of time you selected (e.g. to go get an asteroid, or every 100 steps, etc) and x are all the variables you are collecting that you think affected it (distance traveled, mass of the ship, etc).
- As another example, if you are collecting success of the bullets for a tree, start by collecting the angle and distance to the target when the bullet is fired. Then collect whether it hit once the bullet is marked as dead. This gives you a yes or no answer to the classification for your tree: did it hit or not?
- Setup your agent to collect the data you need by playing lots of games. I suggest you use the ladder to run your data collection games as they are much faster (it turns off graphics) but you can run them the usual way if you want, just know that graphics slow the simulator down considerably.
- Save the data inside your agent and then write it out to a file using the XML tag in your spacesettlersinit.xml
-
<knowledgeFile>foo.xml.gz</knowledgeFile>
-
- Note, the path here is relative to src so if you want to put something inside your 4×4, you should say
- <knowledgeFile>my4x4/foo.xml.gz</knowledgeFile>
- Remember that you can save out data in the shutdown function of your agent. You really don’t want to read/write to the file every action as IO is slow.
- Save the data inside your agent and then write it out to a file using the XML tag in your spacesettlersinit.xml
- After you have collected your training data, write your code for learning. This can happen OUTSIDE of the simulator if you want! For example, simply write a java class with a main function that does your regression training (e.g. reads in from your training file, trains the weights, saves out errors for you to graph, and saves out the weights).
- Once you have a trained model, in your agent, read that model in during the initialize function and then just use the agent that you already trained (e.g. no need to train live DURING the simulation, as this would likely time out). You can use the same knowledgeFile location to read in your data or you can hard-code a relative path, remembering that everything runs relative to src so any path MUST include your 4×4 (so you do not step on your fellow student’s learning files!)
I hope this helps you to get started and I look forward to helping and answering questions as needed and to seeing your learning agents!!
Week 13
Welcome to week 13 of AI! We in the home stretch and into the final module of the course. For the final month (I’m assuming you are taking the week of Thanksgiving off so I scheduled this final module for 4 weeks but it should only take 3 weeks to complete), we will be studying ethical and responsible AI. This is a really important topic and I think you will enjoy the reading and videos I have put together for you for the module. The first one is a movie and I highly encourage you to watch it with friends and discuss the topics!
This week is full of announcements about logistics for class also. Here you go:
- If you have extra life happens days at the end of the semester and want to retroactively apply them, let us know before the last day of classes (Dec 10). After that, they are over.
- Project 3 will be graded by Tuesday per Matt and Project 4 by the weekend
- Project 5’s deadlines were extended until Dec 3 and Project 6 is also due then but it is 100% optional. Note that there are two paths for project 6: an extra credit path and a replacement project. If you choose the replacement project, you will want to do the project 6 proposal also as it is part of the grade.
I think that is it for this week! Enjoy your week starting to learn about ethical and responsible AI. I will not have announcements next week as I am assuming you are taking all of Thanksgiving week off.
Thanksgiving week
Happy Thanksgiving week! I know I said I wasn’t going to write an announcement for this week so this is a bonus announcement 🙂 I wanted to wish you all a happy thanksgiving and encourage you to take this week to rest and relax. It has been a rough semester for everyone as we come back to a new normal and it is a good time to take some time off to recharge and relax and think about what you are thankful for!
If you do need help with anything on class this week, I will still have Monday office hours and I am still going to read slack all week and will be glad to answer your questions. See you next week!
Week 14
Welcome back to our 2nd to last week of classes! I hope you had a restful break and are ready for the end of the semester for all of your classes.
For our content this week, we are continuing on the ethical and responsible AI discussions, videos, and readings. I look forward to continuing to hear your thoughts on this topic!
One other fun thing this week, class evaluations have started. I encourage you to fill them out as they really do matter to us faculty, they help us to improve our classes!
Finally, don’t forget that the new project 5 deadline is this *Friday*. It was extended to Friday rather than Sunday so that you have time to work on your fun project 7 (short story on ethical and responsible AI) next week!
Week 15
Welcome to the last week of class! Remember, since this is an online class, there is no final so this truly is your last week of class! Your project 5s should all have been turned in by this point and project 6 also. This week you have the final project, which is a short writing (or video) assignment for Module 10. I really look forward to seeing all of your final projects!
Matt is going to work hard on finishing up project 5 and 6 grading this week and I’ll be grading project 7 so hopefully your final grades will all be ready by the end of the week.
Remember this is also the last week to fill out class evaluations! I have really enjoyed working with you all semester and look forward to seeing you again in the future!