Syllabus
Course Overview
Imagine a few scenarios that might seem futuristic but that future is coming more quickly than you think!
- 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 but some of them have allergies and you need to plan a perfect menu. You ask for help from the house AI and it offers you menu choices. You make a selection and then you do not have 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 plus chatGPT 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.
Learning Objectives
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
- Creating intelligent agents
- Heuristics and Knowledge Representations
- Effective knowledge representations
- Search
- Idealized searches
- Uninformed search
- Informed search
- Heuristics
- Searches in the real-world
- Local search
- Evolutionary Computation
- Simulated annealing
- Particle filtering
- Other real-world adaptations, including handling uncertainty
- Gaming search
- Adversarial search
- Pruning game searches
- Monte Carlo Tree Search
- Idealized searches
- Machine learning
- ML basics
- Traditional ML
- Nearest neighbor
- Linear regression
- Kernel regression
- Clustering
- Decision trees
- An introduction to Reinforcement learning
- TD learning
- Markov Decision Processes
- RL in games
- An introduction to Deep learning
- Neural Networks
- Convolutional networks
- Generative AI
- Responsible and ethical use of AI will be covered as it relates to each topic
Learning objectives by topic
- Building agents and knowledge representation
- Formulate a problem using an appropriate representation suitable for the task to be solved
- Choose the right type of agent for the task to be solved
- Search
- 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
- Explain why a particular search algorithm was chosen for a problem, including any computational tradeoffs.
- Gaming search
- 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.
- Machine learning
- 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
- Understand the basics of generative AI and deep learning
- Ethical and responsible AI
- Identify potential risks of each AI algorithm we studied
- Create mitigation plans to minimize risk for AI deployment
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
General Information
- Class time: Asynchronous and online and hybrid
- Prerequisites: CS 2413 and CS 2813. Note that prior programming experience is 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: NWC 2506
- Office hours: Office hours will be posted on slack.
- Graders/TAs:
- TBA
Evaluation
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 and homework assignments, quizzes, self-assessments and grading declarations plus in-class participation for the hybrid students. Students in CS 5013 will have additional project requirements and potentially additional homework questions but the percentages remain the same.
As needed, grade cutoffs may move below 90/80/70/60 but will never be moved above these. Thus a grade of >= 90 will always be an A, while an 87 could potentially be an A depending on any adjustments that are needed to ensure grading is always fair. The grade cutoffs for CS 5013 will be separate from CS 4013.
Grading rules for all
- 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: You have two free “life happens” days that will give you a no-questions-asked 24 hour extension on any assignment that is not due in-class. Hybrid students can miss multiple in-class discussions for illness/emergencies (see below). Once your “life happens” days are used up, assignments can be turned in up to three days late with the grade dropping 10% per day that it is late. No homework or project will be accepted beyond 72 hours after the original due date.
- Sick days/Emergencies: Do not panic! If you are sick, please let me know as soon as possible and focus on getting well. We will address it when you are well. If you are dealing with an emergency, check back in after your emergency is over and we will figure out how to handle any assignments that you missed. To reduce the spread of COVID, if you are feeling unwell and are in the hybrid class, please remain home but contact me to get access either to a live stream or a recorded version of the class.
Grades
- 50% of your grade will be from the projects
- 40% will be quizzes/homework assignments
- Students can drop their lowest 3 grades on any of the homework assignments or quizzes (there are a LOT of quizzes in the online content, all short but lots in number!)
- 2% of these come from module 0 and none of the module 0 quizzes will be dropped
- 10% will come from class participation
- To address illnesses or emergencies, students can drop their lowest 2 grades on any participation assignment (this includes online and hybrid)
Course Policies
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.
-
- Any significant use of generative AI to create your writing for any assignment or project (other than when it is specified that it is allowed, such as studying the output of generative AI FOR the assignment!) will be considered a form of academic misconduct.
- Acknowledgment: I used ChatGPT Plus for inspiration in designing some quiz questions. If you use ChatGPT or other such tools for help, acknowledge them!
- 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.
- Any significant use of generative AI to create your writing for any assignment or project (other than when it is specified that it is allowed, such as studying the output of generative AI FOR the assignment!) will be considered a form of academic misconduct.
- 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 Accessibility and 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 smo@ou.edu. 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.
- Mental Health Support Services: If you are experiencing any mental health issues that are impacting your academic performance, counseling is available at the University Counseling Center (UCC). The Center is located on the second floor of the Goddard Health Center, at 620 Elm Rm. 201, Norman, OK 73019. To schedule an appointment call (405) 325-2911. For more information, please visit University Counseling Center.
- 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