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, machine learning, resource optimization, scheduling, and advanced planning techniques. The course is project-oriented where, over the course of the semester, small teams of students will design, implement, and evaluate an agent that grows plants autonomously, without any human intervention for weeks at a time.

 
Prerequisites: 15-281 or 10-301 or 10-315 or permission by instructors.

Meeting Times

The class meets Mondays and Wednesdays 12:30-1:50pm in 2302 Wean Hall

Instructor

Reid Simmons (rsimmons@andrew), NSH 3213

TAs

Thomas Cantalapiedra (tcantala@andrew.cmu.edu)

Learning Objectives

Textbooks

We encourage the use of the textbook Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig.

Assignments

Students will work individually to practice weekly themes taught in class on 4 assignments. 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 each 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.

Collaboration Policy

Individual Assignments: 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.

Group Assignments: 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.

Grading

There will be 4 individual assignments and 3 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 restart or update their code, the plant growth and health, and resource usage. Students are expected to thoroughly test their agents before deployment. 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.

Code Execution/Deployment Policy

Assignments: 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.

Grow Periods: Your group will upload your code to your TerraBot and ensure that it runs properly. If you wish to upload a new version, you can manually restart your agent at a 10% penalty per upload.

Late Policy and Grace Days

All Assignments: Assignments are due at 11:59pm (1 minute before midnight) ET on the due date. All assignments should be submitted on Canvas following the instructions provided. Students are given 4 individual assignment grace days and 3 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.

Grow Periods: 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.

Extensions

We understand that emergencies and unexpected events happen. Please let the instructors know as soon as possible if you have questions about extensions.

Technology Policy

This semester involves regular use of technology during class. Research has shown that divided attention is detrimental to learning, so we 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.

In-person classes will not be recorded. PDFs of the slides will be posted before the start of each class. You are responsible for the material presented in class. If you are out sick, please email the instructor(s) to find time to review the material and to set up any plans for making up work. We also suggest emailing your classmates for any notes they took. While the use of coding assistants, such as Copilot, is not strictly prohibited, you will not get nearly as much out of the class if you rely on such assistants. We strongly encourage you to use your own knowledge and skills to do all of the assignments. If you do decide to use such assistance, it must be explicitly noted in your submissions (see the paragraph on plagiarism, below).

Plagiarism

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.

Accommodations

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 access@andrew.cmu.edu.

Health and Wellness

During this time of COVID, we must all work together to maintain a healthy campus. Every student must adhere to campus 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. Contact the instructors to make plans for making up work.

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:
CaPS: 412-268-2922
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: 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.