15-482: Autonomous Agents
Autonomous agents use perception, cognition, actuation, and learning to reliably achieve desired goals, where the agents can be smart homes, mobile robots, intelligent factories, self-driving cars, etc. The goal of this course is to provide students with the techniques needed for developing complete, integrated AI-based autonomous agents. Topics to be investigated include agent architectures, finite state machines, error monitoring and testing, explanation of agent behavior, computer vision, optimization and machine learning, resource optimization, scheduling, and task planning. The course is project-oriented where, over the course of the semester, small teams of students will design, implement, and evaluate autonomous agents operating in a real-world environment.
Prerequisites: 15-281 or 15-381 or 10-301 or 10-315 or permission by instructors.
The class meets Mondays and Wednesdays 9:50-11:10.
On Mondays and also the weeks of August 31, November 30, and December 7, we will all meet live on Zoom (linked on Canvas).
On Wednesdays we will meet in 407 S. Craig St. as well as live on Zoom.
All Zoom meetings will be recorded and linked on Canvas.
Stephanie Rosenthal (srosenth@andrew), office hours held on Zoom (linked on Canvas)
- Office Hours: Tuesdays 9-11am, Wednesdays 12-1:30pm, or by appointment
Reid Simmons (rsimmons@andrew), office hours held on Zoom (linked on Canvas)
- Office Hours: Mondays 2-3pm, Thursdays 4-5pm, Friday 10-11am, or by appointment
- Design and implement algorithms for single agent architectures, finite state machines, error monitoring and testing, explanation of agent behavior, computer vision, optimization and machine learning, resource optimization, scheduling, and task planning.
- Apply AI decision-making techniques to novel environments and scenarios
- Evaluate and explain the tradeoffs in implementing and deploying different AI algorithms to solve a problem
- Design and develop an autonomous agent and test it in simulation and in the real world
- Analyze the performance of a deployed agent in simulation and the real world
- Discuss the ethical considerations to be made while implementing and deploying autonomous agents
We encourage the use of the textbook Artificial Intelligence: A Modern Approach
by Stuart Russell and Peter Norvig.
Students will work individually to practice weekly themes taught in class. Additionally, students will work in groups of 3 to use their skills from the individual assignments to implement an autonomous greenhouse agent. The agent will be built up through three group assignments and deployed on our greenhouse architecture twice during the semester. After every grow period, students will write up and present a description of the algorithms used, lessons learned, and an evaluation of the deployed agent. In addition to deployments, each of the assignments will be evaluated using a greenhouse simulator with instructor-determined test conditions and student-generated tests. Assignment grades will be a combination of the simulator evaluations, the growing cycle, and the write-up and presentation, when applicable. The exact rubric to be used will be provided for each assignment.
We encourage you to discuss course content and the project with all of your classmates. However, these discussions must be kept at a conceptual level only for individual assignments. You may share information with others about the algorithms or code packages that are being used, but may NOT directly copy code implementation or text. We strongly suggest using paper, whiteboard, google docs, or other digital media for collaboration rather than writing code with another classmate in order to prevent the possibility of mistakes happening. However, you may also look at another student's Python error messages and discuss what the error means to help them solve it.
You should be sharing and discussing code with your groupmates during group assignments. All students in a group are responsible for understanding the code that you submit. With this in mind, you may use your groupmates’ code for future individual assignments. Similar to the rules for individual assignments, multiple groups can work together at the conceptual level, using paper, whiteboard, or other digital media. You may share information with other teams about the algorithms or code packages that are being used, but may NOT directly copy code implementation or text. You may also look at another student's Python error messages and discuss what the error means to help them solve it.
There will be six one-week individual assignments and 3 two-week group project assignments that apply lecture concepts to an autonomous greenhouse application that will be graded in simulation for completeness (passing all required tests) and robustness (designing and submitting additional tests). The individual assignments build upon each other to help prepare each member for the group assignments. After each of the first two group assignments, we will deploy the agents to autonomously grow plants for two weeks. Grow periods will be graded based on a combination of metrics including how many times the teams manually restarted or updated their code, the plant growth and health, and resource usage. Specific rubrics for each assignment will be provided on Canvas. After each grow period, each group will be asked to present their approach and results to the class and write up their results in a report as part of the project grades. In addition to the project, there will be a midterm, a final exam, and peer evaluations of group participation.
- 30% Individual Assignments (5% each)
- 30% Group Assignments (10% each)
- 10% Grow Period Deployments (5% each)
- 10% Midterm
- 15% Final Exam
- 5% Peer Evaluation
Code Execution/Deployment Policy
The assignment code should run out of the box. For all assignments, this means that it should run as soon as it is downloaded (after any necessary packages are installed). A 10% deduction will be applied each time we need to contact you to fix your code.
Your group will upload your code to your TerraBot and ensure that it runs properly. Our code will monitor the health of your agent and if it hangs or crashes, our program will restart it at no penalty. If it crashes too frequently, you will receive an email. If you wish to upload a new version, we will manually restart your agent at a 10% penalty per upload.
Late Policy and Grace Days
All Assignments: Assignments are due at 12pm (Noon) ET on Wednesdays.
All assignments should be submitted on Canvas following the instructions provided. Students are given 4 individual assignment grace days and 2 group assignment grace days to use throughout the semester on any combinations of assignments. At most two grace days will be allowed on a single assignment. Group assignment grace days are used as a team. If you run out of grace days for individual or group assignments, a 10% deduction will be applied for each day.
You are responsible for ensuring that your code is ready for the grow period, which starts 24 hours after group assignments are due. You will receive a 10% grow period deduction for each 24 hours that it is late after the start of the grow period.
We understand that emergencies and unexpected events happen. Please let the instructors know as soon as possible if you have questions about extensions.
This semester involves regular use of technology during class – both for in-person and remote students. Research has shown that divided attention is detrimental to learning, so I encourage you to close any windows not directly related to what we are doing while you are in class. Please turn off your phone notifications and limit other likely sources of technology disruption, so you can fully engage with the material, each other, and us. This will create a better learning environment for everyone.
All synchronous classes will be recorded via Zoom so that students in this course (and only students in this course) can watch or re-watch past class sessions. Please note that breakout rooms will not be recorded. We will make the recordings available on Canvas as soon as possible after each class session (usually within 3 hours of the class meeting). Recordings will live in our Canvas website. Please note that you are not allowed to share these recordings. This is to protect your FERPA rights and those of your fellow students.
During the semester, we will use the same Zoom link available on Canvas for each lecture and the lectures will be recorded for later viewing. You should use that link to attend lectures online at any point that you need to including the weeks of August 31, November 30, and December 7. If the class needs to go fully remote at another time, you will receive an email from us and an announcement will be published on Canvas, and you can again use that link for lectures.
At any point during the semester, you may choose to participate in the class remotely. If you decide to switch from in-person to remote for one or more classes, please try to let us know by email at least 24 hours in advance. In addition, if you are able, let us know the expected length of your remote engagement (e.g., number of classes or for an extended period of time).
Cheating—and plagiarism specifically—is a very serious violation of both academic integrity and CMU policy
. All content produced for this class must be original to the submitter unless otherwise stated. Plagiarism is a very serious offense, and will be treated as such. Any sources of information should be cited and acknowledged – if you get assistance from other students or CMU academic resources, you should acknowledge that assistance in the write-up to your assignment (who helped and in what way). It is not a problem for someone to give you general assistance about the techniques used in assignments; it is a problem if they help provide solutions to the specific assignment. Do not take chances with plagiarism: if you are uncertain whether you are doing something acceptable, please just ask. We are happy to answer questions about whether something constitutes plagiarism.
If you have a disability and have an accommodations letter from the Disability Resources office, we encourage you to discuss your accommodations and needs with us as early in the semester as possible. We will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, then we encourage you to contact them at firstname.lastname@example.org.
Health and Wellness
During this time of COVID, we must all work together to maintain a healthy campus. Every student must complete the Tartan Responsibility quiz and adhere to its guidelines, in particular, wearing masks while on campus and maintaining social distance. If you feel unwell, especially with any of the symptoms of COVID (fever, trouble breathing, headache, loss of smell or taste), you must report it, stay away from campus, and isolate yourself.
This semester is unlike any other. We are all under a lot of stress and uncertainty at this time. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress. All of us benefit from support during times of struggle. If you or anyone you know experiences any academic stress, difficult life events, or feelings of anxiety or depression, we strongly encourage you to seek support. Contact the Counseling and Psychological Services (CaPS) office at 412-268-2922 and visit their website at http://www.cmu.edu/counseling
for more information.
If you or someone you know is in danger of self-harm, please call someone immediately, day or night:
Re:solve Crisis Network: 888-796-8226
CMU Police: On-Campus 412-268-2323, Off-Campus 911
Commitment to Diversity
We must treat every individual with respect. We are diverse in many ways, and this diversity is fundamental to building and maintaining an equitable and inclusive campus community. Diversity can refer to multiple ways that we identify ourselves, including but not limited to race, color, national origin, language, sex, disability, age, sexual orientation, gender identity, religion, creed, ancestry, belief, veteran status, or genetic information. Each of these diverse identities, along with many others not mentioned here, shape the perspectives our students, faculty, and staff bring to our campus. We, at CMU, will work to promote diversity, equity and inclusion not only because diversity fuels excellence and innovation, but because we want to pursue justice. We acknowledge our imperfections while we also fully commit to the work, inside and outside of our classrooms, of building and sustaining a campus community that increasingly embraces these core values.
Each of us is responsible for creating a safer, more inclusive environment.
Unfortunately, incidents of bias or discrimination do occur, whether intentional or unintentional. They contribute to creating an unwelcoming environment for individuals and groups at the university. Therefore, the university encourages anyone who experiences or observes unfair or hostile treatment on the basis of identity to speak out for justice and support, within the moment of the incident or after the incident has passed. Anyone can share these experiences using the following resources:
- Center for Student Diversity and Inclusion: email@example.com, (412) 268-2150
- Report-It online anonymous reporting platform: reportit.net username: tartans password: plaid
All reports will be documented and deliberated to determine if there should be any following actions. Regardless of incident type, the university will use all shared experiences to transform our campus climate to be more equitable and just.