Introduction to AI
Imagine that you are traveling to San Francisco for work and a friend tells you that you absolutely must try the same restaurant that she ate at when she went to SF. However, she only remembers that it started with an A and was in Chinatown. You look it up on your handheld device with only the clues above and it finds the place, makes a reservation, and calls you a taxi to get there. You don’t have to worry about any taxi accidents since the taxi is completely automated and is much safer than any human driving. Imagine planning a dinner for all of your friends and not having to worry about shopping for any ingredients because the minute you tell your smart house the planned menu, it pre-orders exactly the right ingredients to arrive fresh in time for your cooking.
This semester, you will learn how to create intelligent agents. Although the scenario described above is futuristic, it really isn’t too far in the future! It can be made possible with intelligent searches and networks of agents (just look at how much of the first task that Google can do already and how much of the second task Amazon can do). You will create intelligent teams of agents in a game that must search, adapt, and communicate in order to thrive. As with agents in a heterogenous real-world environment, these agents will require you to design and implement them to fit into an existing software framework.
General/overall learning objectives
- Select the AI technique best-suited for a novel problem/domain and justify your choice
- Implement an AI solution to a complicated real-world problem and evaluate its effectiveness
- Gain the skills, confidence, and experience to implement your own AI solutions within an existing large codebase
- Function effectively in a team
topics we will cover
- Heuristics and Knowledge Representations
- Effective knowledge representations
- Uninformed search
- Informed search
- Adversarial search
- Evolutionary Computation
- Simulated annealing
- Machine learning
- Decision trees
- Nearest neighbor
- Kernel regression
- Neural Networks & deep learning (an introduction)
- Reinforcement learning
- Multi-agent coordination and Planning
- Classical planning
- Multi-agent communication and coordination in homogenous and heterogeneous teams
- AI and ethics
- Responsible and ethical use of AI
learning objectives by topic
- Formulate a search problem given a written or verbal description of a domain
- Explain the differences between breadth first search and depth first search to a non-CS and non-engineering/science adult
- Create an appropriate admissible heuristic for a novel problem domain
- Evaluate a heuristic for a domain and decide if it is admissible
- Demonstrate the mechanics of BFS, DFS, IDFS, A*, Hill-climbing, and Greedy searches
- Formulate a solution to a search problem in continuous space
- Design an evolutionary solution to a large search problem
- Demonstrate the mechanics of crossover, mutation, selection, and fitness functions
- Demonstrate the mechanics of Minimax search with and without alpha-beta pruning for both 2-player and multi-player games
- Design an appropriate evaluation function for a two or multi-player game situation
- Formulate a solution to a search problem (adversarial and regular) that addresses uncertainty in the situation. This could include implementing rollouts or dynamically replanning based on stochasticity in the environment or from the other agents.
- Explain why a particular search algorithm was chosen for a problem, including any computational tradeoffs.
- Formulate a problem using a logical representation suitable for classical planning
- Demonstrate the mechanics of progression and regression search for planning
- Grow a standard decision tree given example data
- Explain information gain to a non-technical person
- Explain clustering and nearest neighbor techniques including a demonstration to a non-technical person
- Explain when a neural network or deep learning solution may be appropriate for a problem
- Explain when reinforcement learning is an appropriate solution
- Design a solution to multi-agent coordination in a heterogeneous or homogeneous team. Explain why the characteristics of the team members matter to coordination.
- Explain the difference and tradeoffs between centralized and decentralized control
- Formulate an appropriate knowledge representation to communicate among agent-based team members
- Design and implement a solution for a cooperative team operating in a competitive environment
ABET student outcomes
- B: An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution
- C: An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs
- D: An ability to function effectively on teams to accomplish a common goal
- I: An ability to use current techniques, skills, and tools necessary for computing practice
- Class time: Asynchronous and online
- Prerequisites: CS 2413 and CS 2813. Note that prior programming experience and the knowledge or ability to learn java are assumed.
- Required materials:
- The fourth edition of “Artificial Intelligence: A Modern Approach” Make sure you buy the fourth edition as it is significantly updated and we will be using the new materials. Readings from this book will be referred to as AIMA for the rest of the semester. There is an online edition which is quite nice and hyperlinked.
- Note that the authors have a very good website for the book. This includes errata and sample code.
- Instructor: Dr. Amy McGovern
- Office: Devon Hall 251
- Office hours: Due to covid, office hours are moved to zoom (URL in slack). I’ll make sure that Mondays and Wednesdays 8:30am -9:30 am are always free on my calendar and I will also gladly also do office hours by appointment, just email or slack me. Note any changes to office hours (such as travel or illness) will be announced #announcements.
- Matthew Oakley. His email is on slack (to keep it from being grabbed by spammers here)
- Office hours: TBA
This semester you will be learning and practicing many aspects of artificial intelligence. What you get out of a course will depend on what you put into it! In order to give you a fair grade at the end of the semester, I will evaluate you on a combination of projects (50%) and homework assignments, quizzes, and grading declarations (50%). Students in CS 5013 will have additional project requirements and potentially additional homework questions but the percentages remain the same.
- Grade questions: To maintain fairness in grading, any questions should be brought to the person who graded it. To maintain fairness, all disagreements about grading should be brought to our attention within one week of when the item is graded.
- Online Grade Summary: Canvas has a grade book that I will use to store all of your grades. It is your responsibility to verify that the grades on Canvas are correct. If an error is found, notify me and I will correct Canvas.
- Due dates: The due dates within each module are flexible. If additional flexibility is needed outside of each module, please contact Dr McGovern. We understand that life happens and sometimes emergencies make a deadline impossible. We do not want to see this happen to every module as it can put your perpetually behind in class. But we are happy to work with you on any issues that may arise.
The following set of rules will help keep us all on the same page all semester and help to ensure fair treatment for all students.
- Academic Misconduct
- Academic misconduct hurts everyone but particularly the student who does not learn the material. All work submitted for an individual grade must be the work of that single individual. Your project code and writeups must be written exclusively by you. Use of any downloaded code or code taken from a book (whether documented or undocumented) is considered academic misconduct and will be treated as such.
- The outside-world allows collaboration and so do we, but there are rules to follow to ensure that you learn the material.
- Help cannot consist of copying code or solutions. If someone offers to help you this way, they are not helping you to learn the material!
- For the projects, you may discuss ideas with other students but you cannot share code or specific solutions.
- For any homework assignments, you may form study groups for help at the concept level but each homework must be in your own words and you must write your study partners’ names on your homework when you turn it in. If you do not write your study partners’ names on your homework and they are similar, we will charge you with academic misconduct.
- Do not show another student a copy of your projects or homework before the submission deadline. The penalties for permitting your work to be copied are the same as the penalties for copying someone else’s work.
- Make sure that your computer account is properly protected. Use a good password, and do not give your friends access to your account or your computer system. Do not leave printouts or mobile drives where others might access them.
- Upon the first documented occurrence of academic misconduct, I will report it to the Office of Academic Integrity. The Students Guide to Academic Integrity is available here.
- Classroom Conduct: Your classroom conduct is expected to follow the online classroom code of conduct
- Attendance: Per CS Department and OU policy, you can be un-enrolled from the class if you do not attend the first week of class.
- Canvas: Login to Canvas using your 4+4, using your standard OU password. If you have difficulty logging in, call 325-HELP.
- Class discussions: We will be using slack for class discussion and help. See the join link in canvas and join during week 1.
- Matters of personal interest should be directed to either email or a DM in slack rather than to any broad channel, e.g. informing me of an extended personal illness.
- Religious Holidays: It is the policy of the University to excuse the absences of students that result from religious observances and to provide without penalty for the rescheduling of examinations and additional required classwork that may fall on religious holidays.
- Incompletes: The grade of I is intended for the rare circumstance when a student who has been successful in a class has an unexpected event occur shortly before the end of the class. OU will not consider giving a student a grade of I unless the following three conditions have been met.
- It is within two weeks of the end of the semester.
- The student has a grade of C or better in the class.
- The reason that the student cannot complete the class is properly documented and compelling.
- Accommodation of Disabilities: The University of Oklahoma is committed to providing reasonable accommodation for all students with disabilities. Students with disabilities who require accommodations in this course are requested to speak with the professor as early in the semester as possible. Students requiring academic accommodation should contact the Disability Resource Center for assistance at (405) 325-3852 or TDD: (405) 325-4173. For more information please see the Disability Resource Center. Any student in this course who has a disability that may prevent him or her from fully demonstrating his or her abilities should contact me personally as soon as possible so we can discuss accommodations necessary to ensure full participation and facilitate your educational opportunities.
- Adjustments for Pregnancy/Childbirth Related Issues] Should you need modifications or adjustments to your course requirements because of documented pregnancy-related or childbirth-related issues, please contact your professor or the Disability Resource Center at 405/325-3852 as soon as possible. Also, see this FAQ for answers to commonly asked questions.
- Title IX Resources: For any concerns regarding gender-based discrimination, sexual harassment, sexual assault, dating/domestic violence, or stalking, the University offers a variety of resources. To learn more or to report an incident, please contact the Sexual Misconduct Office at 405/325-2215 (8 to 5, M-F) or email@example.com. Incidents can also be reported confidentially to OU Advocates at 405/615-0013 (phones are answered 24 hours a day, 7 days a week). Also, please be advised that a professor/GA/TA is required to report instances of sexual harassment, sexual assault, or discrimination to the Sexual Misconduct Office. Inquiries regarding non-discrimination policies may be directed to the EEO office.
- Final Exam Preparation Period: Pre-finals week will be defined as the seven calendar days before the first day of finals. Faculty may cover new course material throughout this week. For specific provisions of the policy please refer to OU’s Final Exam Preparation Period policy.
- Emergency Protocols: Severe Weather: If you receive an OU Alert to seek refuge or hear a tornado siren that signals severe weather
- LOOK for severe weather refuge location maps located inside most OU buildings near the entrances
- SEEK refuge inside a building. Do not leave one building to seek shelter in another building that you deem safer. If outside, get into the nearest building.
- GO to the building’s severe weather refuge location. If you do not know where that is, go to the lowest level possible and seek refuge in an innermost room. Avoid outside doors and windows.
- GET IN, GET DOWN, COVER UP.
- WAIT for official notice to resume normal activities.
- Link to Severe Weather Refuge Areas
- Severe Weather Preparedness – Video
- Emergency Protocols: Armed Subject/Campus Intruder: If you receive an OU Alert to shelter-in-place due to an active shooter or armed intruder situation or you hear what you perceive to be gunshots:
- GET OUT: If you believe you can get out of the area WITHOUT encountering the armed individual, move quickly towards the nearest building exit, move away from the building, and call 911.
- HIDE OUT: If you cannot flee, move to an area that can be locked or barricaded, turn off lights, silence devices, spread out, and formulate a plan of attack if the shooter enters the room.
- TAKE OUT: As a last resort fight to defend yourself.
- For more information, visit OU Emergency Preparedness and Shots Fired on Campus Procedure – Video
- Emergency Protocols: Fire Alarm/General Emergency: If you receive an OU Alert that there is danger inside or near the building, or the fire alarm inside the building activates:
- LEAVE the building. Do not use the elevators.
- KNOW at least two building exits
- ASSIST those that may need help
- PROCEED to the emergency assembly area
- ONCE safely outside, NOTIFY first responders of anyone that may still be inside building due to mobility issues.
- WAIT for official notice before attempting to re-enter the building.
- OU Fire Safety on Campus – Video