# CS 410/1411 Course Missive <span style="font-size:2em;"><b>[Foundations of AI](https://browncsci410.github.io/ai-website-f24/)</b></span> <span style="font-size:1.25em;">Professors Amy Greenwald and Eric Ewing</span> MWF 1-1:50pm, List 120 ## Course Content This course will provide broad coverage of core topics in artificial intelligence (AI), as a prelude to students taking more in-depth AI courses later on. To this end, the course will introduce students to prevalent AI models, both logical and probabilistic, as well as algorithms to solve these models based on search, planning, reinforcement learning, and supervised and unsupervised machine learning. These ideas will be applied to develop basic natural language processing, computer vision, robotic, and multiagent systems, all with an eye towards building socially responsible AI. Note: CS 410 and CS 1411 share the same course staff, lectures, discussions, and assignments. Enrollment in CS 410 is limited to students with a semester level of 03 or 04. Upper-level undergraduate and graduate students should enroll in CS 1411, for which final project expectations will be higher. **Neither course can be capstoned.** ## Academic Learning Objectives By the end of this course, students will know: * Core AI models and algorithms, including logical and probabilistic frameworks, and how to apply them to natural language processing, computer vision, robotics, and multiagent systems tasks. By the end of this course, students will be able to: * Evaluate the effectiveness and appropriateness of competing AI models and algorithms, considering tradeoffs between their efficacy and efficiency. * Critically assess the societal impact of the deployment of AI systems, anticipating potential benefits and unintended negative consequences. <!-- ethical implications: bias and/or discrimination --> ## Learning in the Age of Generative AI The goal of this course is to help students develop the skills required to work in field of AI. To that end, we aim to sharpen their critical thinking skills, which is arguably the most important ability humans can bring to the code development process in the rapidly evolving world of generative AI. As AI tools increasingly assist with coding tasks, the ability to think critically about problems and solutions, and the broader impact of AI systems, becomes paramount. Thus, we have designed the course to emphasize empirical experimentation with AI models and algorithms, which we deem as crucial for developing a deep understanding of the material and for engaging in thoughtful analyses. ## Prerequisites Programming experience and some degree of mathematical maturity are necessary for success in this course. The following are specific areas in which basic expertise is assumed, along with suggested courses for acquiring said expertise. * Comfort with programming: e.g., CS 200 or equivalent. * Comfort with probability and statistics: e.g., CS 220, APMA 1650, or APMA 1655 * Comfort with linear algebra*: MATH 520, MATH 540, or CS 530 *May be taken concurrently ## Course Topics * Search (Blind, Informed, A*, Adversarial) * Discrete Optimization * Logic and Classical Planning * Probabilistic Modeling * Supervised Learning (Regression, Classification) * Continuous Optimization * Linear and Logistic Regression * Neural Networks * Probabilistic Planning and Reinforcement Learning * Unsupervised Learning * Socially Responsible Computing in AI ## Textbook The primary textbook for this course is: [Artificial Intelligence: A Modern Approach](https://web.archive.org/web/20250125134421/https://people.engr.tamu.edu/guni/csce421/files/AI_Russell_Norvig.pdf), Stuart Russell and Peter Norvig. This book provides comprehensive coverage of the core topics we will be exploring in this course. It is highly recommended that students refer to the relevant sections to supplement lecture notes, complete homework assignments, and deepen their understanding of the course material. Links to recorded lectures will *not* be provided. ## Course Format ### Lectures CSCI 410 lectures are held on Mondays, Wednesdays, and Fridays from 1 PM to 1:50 PM in MacMillan Hall, Room 117. **You are highly encouraged to attend lectures.** Some slides and/or written lecture materials will be posted on the course web page after lectures, but links to recorded lectures will *not* be available (except during shopping period), unless required for accessibility reasons or an excusable absence. **Please contact the professors (not TAs) if you need the recording along with your reasoning.** ### Assignments Students will be assigned weekly homework assignments, released late on Wednesday afternoons, and due the following Wednesday at noon. Assignments will be available through the [course website](https://browncsci410.github.io/ai-website-f24/assignments.html). To enhance the learning process, we recommend that students collaborate on homeworks, adhering to the limits of the collaboration policy described below. ### Discussions To complement weekly lectures, students are **required** to register for a weekly one hour discussion section, offering a collaborative environment where students can engage deeply with both core material and Socially Responsible Computing (SRC) topics. These discussions are intended to create an open environment for participation, promote critical thinking about the efficacy and efficiency trade-offs in AI models and algorithms, and encourage students to consider the broader societal implications of AI. Multiple discussion sections will be offered each week, with content alternating between technical and SRC concepts. These discussions are mandatory, and will form part of students' final grade (see grading breakdown below). #### Conceptual Discussions TAs will lead interactive conceptual discussions biweekly, based on the content recently submitted homework assignments. These discussions are essential for reinforcing the course material and provide an opportunity to clarify any misunderstandings about the homework topics. A further goal of these discussion sections is to help students learn to reason about technical tradeoffs inherent in AI technologies. Discussion will thus focus on empirical investigations, specifically interpreting experiments that summarize the efficiency and efficacy of competing AI models and algorithms. To prepare for these discussions, students should: * Complete the relevant homework assignment, including the requisite READMEs that address the conceptual questions posed. * Review their submissions before attending their discussion section so that they are prepared to engage in productive discussions. #### Socially Responsible Computing Discussions TAs will also lead biweekly SRC discussions, which will focus on the ethical and societal implications of AI technologies. These sessions will encourage students to examine how AI systems can impact society. Tentatively, the list of topics for SRC discussions is as follows: AI policy, AI energy consumption, algorithmic manipulation of human behaviors, algorithmic/data bias, the economics of automation and job displacement, and AI warfare. TAs will facilitate these discussions, guiding students through case studies, current events, and theoretical questions that challenge them to think critically about the role of AI in society. The goal is to foster a thoughtful, reflective approach to AI development, ensuring that students become not only technically proficient in AI but also socially conscious practitioners. #### Switching Discussion Sections You will be assigned a discussion section at the start of the semester based on your reported preferences. Please try your best to attend your assigned discussion section each week. If you absolutely must switch one week, you can email your upcoming discussion TAs *and* the TAs who lead the section you hope to switch into *at least 24 hours* before the scheduled discussion. If something comes up and you need to permanently change your discussion section, please email the HTAs. ### Final Project The course will culminate in a final project in which students program an agent to play the board game Go. Students will program an AI agent that will compete with agents programmed by other students in the class and by the course staff. The final project contains three parts, each with a separate submission. **The first two parts of the project must be completed independently, while the third can be done with a partner.** The first part will guide the students through creating a search-based agent, while the second part enhances the first with supervised and reinforcement learning components. For the third and final part, students will be asked to customize their agent combining techniques they learned during the course of the semester. Students will submit a final report about their agent, documenting their approach and their agents' performance in an experimental evaluation of their own design. They will be graded on the content of this report, the quality of their approach—including their creativity—and finally, to a lesser extent, their final agent's performance. ### Exams There are no exams in CS 410/1411. Students are evaluated based on their participation and performance in discussion sections, weekly homework assignments, and the final project. ### Time Commitment All students should expect to spend 2.5 hours per week in lecture and 1 hour per week in discussion sections. In addition to these instructional hours, there will be 10 weekly homework assignments (4-8 hours), SRC readings (<1 hour), and optional textbook readings (1-2 hours). The final project is open-ended, but 40 hours over the course of 4 weeks, should suffice to produce acceptable work. In sum, students enrolled should plan to dedicate approximately 12 hours per week to this course, for a total of 180 hours over the course of a 15 week semester. ## Getting Help ### Staff Contact Information Professors: amy_greenwald@brown.edu & eric_ewing@brown.edu HTAs: cs0410headtas@lists.brown.edu All TAs: cs0410tas@lists.brown.edu ### Professors' Office Hours * Professor Amy Greenwald: Thursdays 12-1pm, CIT 383 * Professor Eric Ewing: Wednesdays 2-3pm, Arnold 305 ### TAs Office Hours TA office hours will take place in a designated lab or conference room. You can find the timings and locations of the hours on the [hours page](https://browncsci410.github.io/ai-website-f24/hours.html) of the course website. Simply show up, start working, and raise any questions as they arise. TA office hours may be conducted in a collaborative group-style format or in the traditional 1-on-1 format. During 1-on-1 hours, TAs will use the [hours queue](https://hours.cs.brown.edu/login) to allocate their time to students. During group-style hours, TAs will circulate around the room, offering both conceptual and debugging help to multiple students simultaneously. If a question or issue is relevant to many students, the TA will switch to “teaching mode” to address the entire group. This group-style format is designed to maximize the time TAs can spend assisting students, and to encourage collaborative learning among students. TAs will choose the hours format to best accommodate student needs at the time. During a single hours session, TAs may switch back and forth between formats, or delegate different formats to different TAs if multiple TAs are present. ### EdStem In addition to in-person office hours, students may post their questions on EdStem, an online forum monitored by the TAs. **TAs will respond only to EdStem posts and not to emails**, except in a few rare circumstances described below. **Most questions related to assignments, logistics, or materials should be posted on Ed, not emailed.** Posts on Ed reach the entire course staff, allowing the next available TA to address your question. Please note that it may take up to 24 hours for you to receive a response. Note that the TAs will observe quiet hours from 12 am to 9 am. During these hours, you should not expect immediate responses, especially during high-demand times like before assignments are due or around exams. TAs will do their best to assist you, but please plan ahead. ### When to use EdStem vs Email By default, please **use EdStem** to contact the course staff. The only exceptions are listed below. #### When to Email a TA Directly 1. They initiated the communication. 2. They are your discussion leader and you are addressing a discussion issue or are requesting a section switch for the week. #### Sensitive Issues For matters requiring privacy, such as issues with project partners or extension requests, please email the HTAs or the professors directly. * **Extension requests:** Email the professors directly. * **Final Project or Logistical Issues:** Email the HTAs. Please do not email the course staff about regrades. Please proceed via Gradescope. ## Grading The *tentative* grading breakdown is as follows: | Assignment | Number | Percentage | | -------- | ----- |-------- | | Homeworks | 10 + 1 optional |30% | | Discussions Sections | 11 | 40% | | Final Project | 1 (3 parts)| 30% | ### Rubrics Grading rubrics for homeworks and the final project are developed by the professorss in conjunction with the undergraduate TAs (UTAs). UTAs are responsible for grading all assignments, and any grading issues should be addressed via Gradescope regrade requests within one week of grade releases. If the issue has not been addressed after one week, please post a private question on EdStem. **Regrades:** The professors assigns all final grades and review individual assignment grades as necessary. Any major issues that warrant the professors involvement can be addressed to the professors directly via email. ### Discussion Section Grading Criteria The criteria below are applicable to all discussions; however, the specifics of what constitutes "accuracy" or "relevance" of contributions will be tailored to each discussion’s focus. | Criterion | Points | Description | |----------------------------|--------|-----------------------------------------------------------------------------| | **Engagement and Participation** | 0/1 | Does not/Actively participates with relevant contributions during the discussion. | | **Critical Thinking and Analysis** | 0/1 | Does not/Demonstrates critical thinking by offering thoughtful analyses or asking insightful questions. | | **Respect and Collaboration** | 0/1 | Does not/Shows respect for others’ viewpoints and engages in collaborative discussion. | | **Preparation** | 0/1 | Does not/Comes prepared, having completed required readings or assignments, and is ready to engage. | | **Attendance** | 0/1 | Did not/Attended the discussion. | ## Guidelines for Discussions CS 410/1411 is a large class which can be intimidating to some students. As such, we offer the following guidelines intended to ensure that all interactions among students and between students and staff are conducted in a respectful and courteous manner. ### Guidelines for Discussion Sections * Be respectful: Make space/take space. Be conscious of how much space you take up or leave on the table during a discussion. Make space for others, but also know that there is equal space for you. * Be generous: Sometimes, it takes a few minutes to formulate a thought. If someone starts speaking while a thought is still half-baked, be patient—especially if they make a mistake early on. Be open to competing approaches to a problem. Encourage participation from everyone, especially those whose approaches differ from your own. * Be courteous: Even if you disagree with a speaker, listen intently and try not to interrupt. Others might have opinions or beliefs different from your own. Challenge or criticize an idea, not a person. * Be trusting: If someone says something that makes you uncomfortable, assume they didn’t intend to cause harm. Address the impact of their words, ideally in a private conversation rather than publicly, so they can learn from the situation. ### Guidelines for Online Discussions (EdStem) * Write clearly and concisely. You should aim to make it as easy as possible for others to understand your posts, especially when seeking help from a TA. Do not take shortcuts (e.g., use obscure acronyms). * Proofread your posts. Once posted, your remarks cannot be unsaid. Be sure to review your writing carefully before posting, to be sure it conveys your point accurately. **Pro Tip:** Try reading your post aloud before posting. * Be respectful, generous, courteous, and trusting. Just like in the classroom, you should do your best not to use any language that could be construed as offensive by others. If something is perceived as offensive, avoid responding with anger or in any way that could escalate the situation. Please be conscious of these regulations; violators will be banned from participating in online discussions. * **Privacy.** By default, Ed posts in this course are public. Public posts make the instructors’ lives easier and can allow students to learn from each other, since students can sometimes find the answer to their question before posting. However, public posts that ask questions about assignments run the risk of revealing solutions or partial solutions, and thus violating the course collaboration policy. Therefore, * We ask that you try to post your questions publicly first so that other students can also benefit from the answer. * It is fine to publicly post stencil code without modification and any code in the lecture slides, studios, or scripts. It is *not* fine to publicly post any other code. * If you post a question privately and we believe other students would benefit from your post, we may make it public. Before doing so, we will give you an opportunity to anonymize it. * Note that the TAs reserve the right to make a public post private without notice. * The TAs may also instruct you to post more specifics in a private post, if more information is needed to answer your public post. * Regarding private posts: Please make your questions as specific as possible. * We will pin frequently-asked questions (FAQs) on Ed for each assignment. **Before posting, please check the FAQ** to see if your question has already been addressed. ## Policies ### Late Policy Our late policies are designed to give students some flexibility when submitting work, while still allowing the staff to grade work in a timely manner. For all assignments, unless otherwise stated, students will be granted four free late days, which can be applied as needed during the semester to any homework assignment. However, no more than 2 late days can be applied to any one assignment. All mandatory homeworks will be released on Wednesday afternoons and due the following Wednesday at noon. An assignment turned in after noon on a Wednesday and by noon on the following Thursday uses one late day. Submitting after noon on Thursday but before noon on Friday uses two late days. We will not accept submissions after noon on Fridays. In the unfortunate circumstance that the four free late days are all used up, late day penalties will apply: -10% within 24 hours, and -25% within 48. No assignments will be accepted more than 48 hours beyond their due date. Note, however, that any assignments due the day before, but turned in the day after, a long weekend (e.g., Thanksgiving break) are only charged one late day. Note that late days cannot be applied the final project. The final project deadlines for all three parts are hard deadlines. **Late final projects will not be accepted.** ### Extensions Extensions may be granted by the professors in extreme circumstances. If you are ill, please visit health services so you can provide a doctor’s note when requesting an extension. If you are under any other sort of duress, please seek advice from a dean. :::warning TAs cannot grant extensions. So students should contact the professors, not the TAs, to request extensions. ::: ### Collaboration Policy Students are encouraged to discuss their work with their peers in CS 410/1411. They are also permitted to solicit help from generative AI—within limits. <!-- When working on homeworks, students may consult other students conceptually, for example during office hours, but each student is always required to 1. write up their solutions to the homework on their own; and 2. list the names of all students with whom they discussed the assignment on their submitted work. --> #### Working with Peers <!-- Every student must complete each homework assignment on her own, but you're encouraged to discuss the assignments with other students. You can collaborate on problem-solving strategies (e.g., “Where should I start to develop a heuristic for Tic-Tac-Toe?”). However, you must develop your code on your own, and write up your solutions to conceptual questions on your own. --> It is useful when working on assignments to bounce ideas off other students, and we encourage you to do so. However, while collaborating with peers, you must follow these rules: 1. **Write only pseudocode together.** You can develop pseudocode together, but any Python code you submit must be written independently. 1. **Only discuss conceptual questions.** You can discuss how to approach conceptual questions with others (e.g., “Where should I start to develop a heuristic for Tic-Tac-Toe?”), but you must write your solutions on your own. You should not, for example, be discussing specific hyperparameter values. 1. **Submit only your own work.** Be sure that all code and written solutions you submit are written by you and only you. 1. **Do not share code or solutions.** Writing code or solving conceptual questions on a whiteboard or in any other medium that another student can see is forbidden. Take care to ensure that others do not copy your code or your solutions to conceptual questions. *Letting another student copy your work, even if you did the work entirely on your own, is a violation of the collaboration policy.* 1. **List the names of your collaborators in your README.** Include anyone you collaborated with, and what you worked on together. Instead of exams, this course features discussion sections focused on enhancing your understanding of the material. You may be asked at any time to explain your homework solutions in your Discussion Section. *Failure to understand any part of the work you turn in is a violation of the collaboration policy.* :::info **Note**: The rules for collaborating with peers apply to all assignments, including the final project; note, however, that students work in pairs on the final project, so the policy is applicable pair-wise, instead of individual student-wise. ::: #### Generative AI: ChatGPT, Copilot, etc. The use of generative AI tools in CS 410 is permitted within limits. The use of ***autocomplete*** tools, such as GitHub Copilot or any other AI-assisted coding tools, **is strictly prohibited.** If a TA observes a student using such tools to complete coursework, it will be considered a violation of the collaboration policy. You can ask language models like ChatGPT to explain concepts (which they may or may not do correctly), but you cannot ask language models to solve your homework problems for you. If a student chooses to engage a language model in a homework discussion, a TA-accessible link to the conversation history or a list of the prompts used must be included with the hand-in. <!-- Chatbots can be used to explain AI models and algorithms, and programming fundamentals, but chatbots cannot be asked to generate code to solve any assignment-specific tasks. --> As a rule of thumb, *you are allowed to ask a chatbot to answer questions whose solutions can be found in the textbook*. Examples include: - “Can you explain the key differences between supervised and unsupervised learning, and provide examples of when each is used?” - “Can you explain how the A* search algorithm works and why it is sometimes preferred to other search algorithms?” - If you want to understand how to represent a Markov Decision Process (MDP) in Python, you can ask: “Can you explain to me how to represent an MDP in Python?” - If you want to know how to implement a simple perceptron in Python, you can ask: “Can you write a basic perceptron model in Python and explain how it works?” <!-- **Examples of Murky Usage** - **Example:** Asking a chatbot to design project-specific agents: “How do I design an AI agent to solve a maze using blind search?” A question like this may be acceptable, as long as the chatbot is instructed not to return code, but rather to engage only in a high-level design discussion. If the chatbot does return code from such a question, you must not use it. - **Example:** Asking a chatbot to debug your code: “Why am I getting a ‘KeyNotFoundError’ in this line of code?” A question like this may be acceptable, as long as you only prompt the chatbot with the relevant lines of code, and it explains the bug to you, but does not rewrite other parts of your code for you. --> You are *not* allowed to ask a chatbot to answer any questions on a homework assignment for you. Examples include: - Asking for assignment-specific code: “Please implement Q-learning for my grid world problem.” You are also not allowed to copy or paste any code generated by a chatbot into a homework or project submission. **Submitting code that was generated by a chatbot is considered plagiarism**, even if you retype that code yourself. If you have high-level design questions, such as, “How do I design an AI agent to solve a maze using blind search?” we recommend you ask a TA. Similarly, for debugging help, which is almost always homework specific, we recommend you ask a TA. Unlike TAs, chatbots do not understand that they are just tools at your disposal, whose goal should be to enhance *your* understanding of AI concepts, not to do the work for you. Following these guidelines will help ensure that you make the most of these state-of-the-art tools while adhering to academic integrity standards. #### Violations of the Collaboration Policy Any violation of this collaboration policy (e.g., unnatural similarities among students' submissions, suspicions of ChatGPT/Copilot) will be forwarded to the Dean of the College's office for review, to assess whether or not there has been a violation of Brown’s Academic Code. If you have any questions about this policy, please ask the course staff for clarification. *Not understanding our policy is not grounds for not abiding by it.* ## Diversity and Inclusion The computer science department is committed to diversity and inclusion, and strives to create a climate conducive to the success of women, students of color, students of any sexual orientation, and any other students who feel marginalized for any reason. If you feel you have been been mistreated by another student, or by a member of the course staff, consider reaching out to one of student advocates on the CS department’s Diversity and Inclusion Committee, Professor Greenwald, Professor Ewing, or Professor Tamassia (the CS department chair). We, the CS department, take all complaints seriously. ## Accommodations If you feel you have any disabilities that could affect your performance in the course, please contact SAS, and ask them to contact the course staff. We will support accommodations recommended by [SAS](https://studentaccessibility.brown.edu/). ## Harassment Please review Brown’s [Title IX and Gender Equity Policy](https://policy.brown.edu/policy/title-ix). If you feel you might be the victim of harassment (in this course or any other), you may seek help from any of the resources listed [here](https://campus-life.brown.edu/equity-compliance-reporting/title-ix).