# CSCI 0111 (Computing Foundations: Data): Syllabus,Fall 2025 :::info # Important notes for shopping period ## Important dates **First day of class:** September 3 **Midterm quizzes:** In class, October 3 and October 31 **Final exam:** (for people in both S01 and S02): in person, December 18 (date/time/location are determined by the registrar and are available on C@B) **The final exam for people in *both* sections will be in person, *without* a remote/rescheduled option (except for those students taking the course fully remote or those who have a documented official final exam conflict with another class, with prior permission of the instructor). Please make sure to book your travel after December 18 if you are taking this course. Anyone who is unable to take the exam at the scheduled time must take it with the spring offering.** ## Course resources during shopping period There is no livestream, of lectures but all classes are recorded and posted to Canvas. If you are registered for the course *or* have it in your primary cart, you will be able to access the Canvas automatically. Milda has to manually sync the Ed and the Gradescope to the enrollment, which she does at least once a weekday during shopping period. ## The online section (S02) of the course The online section is the same class, but is meant to accommodate students with time conflicts. You would be able to watch lecture capture recordings of class, and be expected to attend a weekly lab section in person (there will be multiple times to choose from when signing up for this). There is also one online lab section. You miss out on asking questions live in class, and you have to take responsibility for keeping up with the course material, but you have access to the EdSTEM discussion board, office hours, etc. just like any other student. You may also choose to attend lectures in person, if you only have partial time conflicts (Milda does not keep track of who is in what section for lecture). **When submitting an override request for S02, please acknowledge that you have read this section of the syllabus and indicate whether you have a time conflict or you are a remote student.** If you are unable to attend labs in person because you are a fully remote student and have a conflict with the online lab section, please contact Milda directly by email (milda@brown.edu). See [below](#The-Remote-Section-S02) for more information on S02. ## Joining the course late If you join the course after the first day of class (but still during shopping period), you are expected to complete HW1 by the HW2 deadline and HW2 on time. You should also make sure you're registered for a lab. See [below](#Joining-the-class-late-due-to-shopping-period) for more information. ::: # Table of Contents [TOC] # Overview Computer programs do not exist in a vacuum: they process information based on observations of the world. These observations--of text, numbers, images, video, or anything else--become the data over which programs operate. We are surrounded by computer programs collecting, storing, and manipulating data about us and about others. The choices programmers make about how to represent and access data have serious consequences, however, affecting the performance, usability, maintainability, and social consequences of their programs. CSCI 0111 is a data-focused introduction to computing and programming. Students will learn how to create, analyze, and test programs that manipulate and process data. Students will also discuss the social impacts of data collection, retention, and processing, and the responsibilities engineers have to society and to the people who use their software. This course is designed for students from any concentration. It assumes no prior programming experience and starts more gradually than other Brown CS intro courses for students without prior experience. It provides a firm foundation for future courses in computer science, and also provides non-concentrators with useful programming skills for doing data analysis in their chosen fields. Students from across campus, many of whom don't see themselves as "CS people" have enjoyed and succeeded in CSCI 0111. Course evals are dominated by comments from students surprised that they found CS approachable and accommodating to students with a wide range of interests and backgrounds. Hundreds of non-CS concentrators take CS111 every year. At the same time, CSCI 0111 serves as a first course for both the CS concentration and the Data Fluency certificate. After CSCI 0111, you can take CSCI 0200 (the same second-semester course as students from CSCI 0150/0170, assuming you do extra work in 0111), Data 0200, CSCI 0112 (a course that build you up to CSCI 0200 without doing extra work in 0111), or no more CS at all. All four paths are well represented among CSCI 0111 students. # High-level information **Lecture time and location:** See C@B. Lectures will be recorded and available to anyone registered for either section. **Instructor:** Milda Zizyte (milda@brown.edu) -- you are welcome to call her Professor/Dr. Zizyte, Professor Milda, or just Milda (but please not Miss/Ms./Mrs. Zizyte) **Teaching Assistants:** See course website. **Course communication:** Done through the EdSTEM board. Important announcements will be emailed through Ed. **Course website:** [current offering](https://brown-csci0111.github.io/). See [here](https://cs.brown.edu/courses/csci0111/) for past offerings. The website also has links to the EdSTEM board and the Gradescope. **Labs:** One two-hour session a week. Signups for specific times are done primarily through C@B **Assignments:** Generally due once a week. **Exams:** Two in-class midterm quizzes and an in-person written final, at the time listed in C@B :::danger There will be no remote/rescheduled final exam (except for fully remote students and students in S02 with a documented conflict with another course's final, with permission of instructor) - any missed exams must be made up in the following semester. Please plan your travel accordingly and contact Milda with any questions/concerns. ::: See the course website for the lecture schedule, assignments and details not included in this syllabus. ## Deviating from the syllabus If you have a discussion with Prof. Milda about a special circumstance that requires deviating from or following up on this syllabus (such as for an incomplete or for S02 exam arrangements), please promptly summarize the discussion in an email to Milda. This is so that both of us can have a record of what we agreed on, and to avoid miscommunications that have to be sorted out at the last minute. Any special circumstance that hasn't been confirmed over email will be treated according to what's laid out in the syllabus. # Learning objectives After completing this course, students will be able to: - Develop programs that process and manipulate data in the shape of tables and lists (with an introduction to tree-shaped data) - Decide how to organize data for efficient and maintainable processing by programs - Describe the social implications of large-scale data collection, retention, and usage - Decompose programming tasks into solvable subtasks, informing the structure of your programs - Develop good automatable tests for programs that give confidence in their correctness - Work with others to develop, test, and analyze programs - Design and perform a basic data analysis in Python's pandas library # Instruction components ## Lectures Lecture is in-person, at the time and location listed on C@B. Readings and supplemental materials (such as in-class worksheets) are posted on the “Lectures” page of the course website. Every lecture also has a live Q&A thread on Ed, to expand the opportunity to ask questions. ### In-class exercises Our time in the classroom will be a mix of lecture and partner/discussion-based activities. We expect you to work in small groups with those around you during lecture. Please come to class ready to engage with the material and ask questions about things you don’t understand. The pre-class drills (discussed below) should help you with this! Many students make the mistake of thinking that if they can follow along with us writing code in class, then writing their own code on assignments will be easy. Reading and writing code are distinctly different activities. Often, you won't accurately predict where you might get stuck until after you've tried writing some code on your own. Coding also develops a form of muscle memory, in which you learn some of the structure to all programs. In-class exercises are designed to help you with these skills. ### Taking notes; laptop use Whether you want to code along in class is up to you, but we’ve found that, as beginners, it’s very easy to make a small typo, get caught up fixing it, and miss what was said in class. If you find this happening, sit back, take notes without running the code, and ask follow-up questions in class. Using a laptop is totally optional, and, in fact, taking notes on paper can help you focus on the concepts being discussed. You can try running code from your notes or the textbook after class. Beyond taking notes, feel free to use whatever helps you pay attention in class (fidget toys, knitting/crochet), as long as it is not disruptive to others. Studies have shown that the use of laptops in the classroom can be detrimental to learning--not just for the laptop user, but also for the students around them! As such, we ask that students in CSCI 0111 not use laptops or phones during class unless you want to run a program we're working on or post a question to the Q&A board. In particular, be considerate to those around you and do not use your computer for non-0111 purposes during class. For (much!) more information on the effects of laptop usage, see [here](https://cs.brown.edu/courses/cs019/2018/laptop-policy.html#(part._pop)) ### Recorded lectures All lectures will be recorded, with the lecture capture videos available in Canvas and from the lectures page of the course website within an hour of two of the end of class. That said, **we strongly encourage attendance at lectures**, especially if you are having trouble completing assignments on your own. We do a lot of interactive practice activities during lecture that model how to work on CS problems. If you need to first watch a lecture from the recording, stop and actually do the activities that we are doing in lecture. They are a critical component of the learning design for the course. You can also refer to the EdStem Q&A thread for each lecture to see what questions your classmates asked during the live lecture. The TAs will not re-teach material during office hours in order to help with homework. Instead, they will expect that you have been working with the code-writing processes that are taught and practiced in lecture. ## Labs Everyone will have a 2-hour in-person lab section once per week (18-24 students and 2 TAs). In lab, we give you additional practice with concepts from lecture (in advance of the next homework). Sometimes, we will cover additional details of lecture concepts, or do an activity that works better in smaller groups, during lab time. In general, you will work in pairs during lab. We will not cover entirely new topics in lab, but we expect you have done the lab activities (we might refer back to specific problems in homeworks or refer to lab concepts on exams). You'll **sign up for a lab time** in C@B during shopping period. If your schedule changes, fill out the permanent lab-change form on the course homepage. The first lab is in the second week of shopping period -- since more people are typically shopping the course than will end up taking it, we'll send out a communication via Ed for those who are unable to register for a lab that aligns with their schedule. We will **mark you as having attended lab** if you are there within 20 minutes of the start time and if you spend lab time working through the lab exercises. You may miss two labs during the semester without penalty to your final grade (after which you lose points proportional to the number of labs you missed beyond the two free misses). In general, you are expected to **attend the lab section that you are officially signed up for** (we only have so many seats in the room, as well as only so much TA capacity). But we know things sometimes come up. If you need to make a one-time switch, use the temporary lab-switch request form on the webpage. The HTAs get to process this roughly once a day, so a last minute request might not get seen in time. Please try not to show up at a lab section unannounced. If all of the temporary spaces have been allocated for that section, the TAs may refuse to accommodate you. ## The Remote Section (S02) The remote session exists to accommodate students who have another course at the same time as CSCI 011 or who are physically studying away from Brown. Remote students who will not be attending 0111 lectures in person will have to keep up with lectures through the recordings that will be in both the Media Files folder (very soon after class) on Canvas and linked to the lectures page on the course website (a few hours after class). Note that there are potential pitfalls here: lectures are designed with active-learning exercises, which have been shown to have significant positive impact on learning in educational studies in many fields. **If you only watch the video (much less at a quick speed), you will miss out on some of the learning experiences in the course design.** This in turn could affect your course performance. Please see [the section above](#Recorded-lectures) for more advice on watching lecture capture. **We encourage students in the remote section to find study groups with other remote students where you watch the lectures and do the activities together**. This will more closely replicate the in-class experience. *Lecture attendance is the only difference between the regular and remote sections. Remote section students will attend labs, exams, etc, in person.* Alternative arrangements will be made for students who are physically away from Brown's campus for the semester (email Milda to make these arrangements). # Staff Roles and Responsibilities In addition to the Professor, we have three kinds of TAs (HTAs, UTAs, and STAs). The **HTAs** help manage course logistics: they coordinate lab and office hour schedules, make sure materials are released on time, manage project-partner pairings, and support and supervise the rest of the TA staff. The course website has forms for many course-management tasks (lab signups, temporary lab switches, etc). If you need something by way of routine logistics for which there isn't a form, write to the HTAs using cs0111headtas@lists.brown.edu. **Please use this mailing list instead of mailing the HTAs individually, since it helps us with email filtering.** The professor is also on this emaill list. The **STAs** help develop and grade the SRC (Socially Responsible Computing) content. They are your resource for questions you have on the impact of technology on society! The **UTAs** (everyone else) run labs, hold office hours, proofread assignments, and help keep interactions with students running smoothly. In general, you shouldn't be emailing individual UTAs unless they reached out to you about something first. All of us work on answering Ed posts and grading. Only Milda can grant extensions or handle other exceptional situations. # Time expectations In addition to 3 hours a week in lecture and 2 hours a week in lab, students will be expected to spend 7-12 hours a week outside of class on homework, projects, and drills. Time expectations are the same for those in the remote/asynchronous section: you simply watch the recorded lectures (and try the in-lecture activities) on your own schedule, while still attending an in-person lab section. Some students report (on course evals) finding the time commitment high, especially for an intro course. Higher time committments are common in computing courses (nationwide) because many problems ask you to write programs that actually work as judged by a computer (as opposed to classes in which you write papers and can decide when to be done). The course teaches design methods and uses a grading system that should help you manage and plan your time around your grading goals. CSCI 0111 does maintain a lighter workload than other intro CS courses that lead into the concentration. If you are finding yourself spending a disproportionately large number of hours per week on this class, please contact Milda -- she is happy to talk strategies for approaching the material more efficiently. # Required materials You do not need to purchase a textbook for the course. The [textbook](https://www.dcic-world.org/) and supporting materials will all be available free of charge online. Both programming tools that we need for this semester ([CPO](https://code.pyret.org) and EdSTEM's Workspaces) are freely available online (see Lab 0 for an overview of these). While you will need to complete many assignments on a computer, you do not need your own computer. You will have access to several computer labs in the CIT if needed. In addition, you do **not** need a laptop for lecture. # Illness Don't come to class while you are contagious! If you are unable to attend lecture for a few days, you can use the posted lecture capture videos to stay up to date. If your symptoms are such that you aren't able to work for a few days, fill in the extension-request form on the course website with a health-services or dean's note. Milda will make appropriate arrangements with you, including extensions as needed. # Joining the class late (due to shopping period) We start covering content in the first lecture. The first programming assignment gets released immediately after the first lecture and is due the day of the fourth lecture (Wednesday of the second week of class). Labs start the second week of the course. Students who join the course late need to catch up as quickly as possible, reviewing lectures and submitting any already-missed homeworks by the end of shopping period. Students must be on schedule with homework submissions starting with homework 2 (end of shopping period). It is extremely difficult to get caught up after the second week of the semester. We do not recommend starting the course after lecture 5 (few students have been able to catch up after this point in our experience). # Getting help and clarification Most questions and requests for clarification should be * Asked on the Ed discussion board (default for basic information-seeking questions), * brought to office hours, or * asked in class (if it applies to many people). ## Ed Discussions Our course uses Ed for online discussions. You can use it to ask questions about course concepts, assignments, and logistics. Posts can be either public or private; public posts are visible to everyone, while private posts are visible only to course staff. Any questions having to do with your particular solution to an assignment should be private; all other posts should be public (if you have a question about something, it’s very likely that other students do, too!). Feel free to make yourself anonymous when posting on Ed, but keep in mind that course staff can see who made an anonymous post. The course staff reserves the right to make private posts public if the answer is of general interest. Ed is a discussion forum, so please feel free to respond to questions and comments–it’s great when students can learn from each other! When doing so, keep in mind the Course Culture guidelines. Posts made on Ed after 11pm are unlikely to get a response until the next day. Important announcements, assignment clarifications, and FAQs per assignment will be pinned at the top of your Ed window (you'll get a preview in class). We will send time-critical announcements and assignment modifications by email as well as through Ed. **You are responsible for the content of any of these that are sent at least 48 hours before the corresponding event or due date.** ## Email In general, all course communications should run through Ed (which allows you to post anonymously, as well as privately to the staff only). Posting to Ed allows the first available staff member to get to your question without work duplication on our end. If you have a question or issue that should not be seen by the entire TA staff, send it either to the HTA mailing list (cs0111headtas@lists.brown.edu, which includes the professor), or just to the professor. Please do not email individual TAs about course matters. ## Office Hours We will have multiple slots of TA hours spread out over the course of each week. The professor will also hold open-to-all walk-in hours and is also available for private appointments (send email to request one). Hours schedules are on the course website. Please see the course resources on using the CS hours queue. Feel free to come to Milda’s office hours even if you don’t have a specific question about an assignment; she is happy to chat about the course material, computer science in general, careers in computer science, etc. Milda is available for individual or small group sessions to help you assess how you are approaching homework problems. If you feel like you struggling to get started or struggling to make progress on assignments, feel free to reach out for an appointment. Please come to office hours! Coming to office hours does not send a signal that you are behind or need “extra help”; on the contrary, the most successful students are usually those who come to office hours to review concepts. Learning to program often involves learning different strategies for approaching problems than you've used before. Don't hesitate to ask us to help you review your strategies, even if you don't have a specific question on an assignment. If you are someone who typically resists asking for help, keep in mind that learning new strategies for approaching new areas is part of the college experience. We are happy to help guide you in this. ### Expectations for hours The course staff is happy to answer general conceptual questions, share our experiences with CS, or help with a specific assignment in hours. For the latter, **please come to hours having already attempted the problem you are asking about.** We can help you more effectively if you walk us through your thought process and explain where you got stuck. While it’s OK to ask questions about code style or to clarify assignment instructions, TAs shouldn’t be asked questions about specific point values for assignment tasks (“will I get full points if I phrase my answer like this”). We will not honor a regrade request that is justified with “a TA said I would get points,” because this is not something we can verify. # Being human ## If you are struggling on an assignment Make sure you are applying the practices we are using in lecture: creating task plans, writing examples first, working on one task from your plan at a time, drawing diagrams of essential data and how a program changes them. The TAs will ask you to work on these same steps if your question suggests that these may help you move forward. TAs will NOT tell you how to do the assignments. They will help point you on your way, or help you track down a subtle error once you show that you've used examples to try to track it down yourself. Our goal is to help you get self-sufficient at running small coding-based projects on your own. **There is NO shame in taking late days** on an assignment (that's what they're there for!), but keep in mind that deadlines exist for a reason. See [below](#Late-assignments-and-Extensions) for more information. ## If you feel you are falling behind Reach out to Milda for an appointment. She can help you diagnose which skills you need more practice with and make some plans for effective studying and practice with content. Milda is commited to fostering an opern and supportive course culture, and she isn't about to think less of anyone for whom material just isn't clicking yet. It's pretty normal, actually (no matter what inaccurate stereotypes you might have been exposed to about "geeks" and "real programmers"). ## Expectations of one another At a high level, we expect that you are attending or doing lectures (at normal speed) on your own, applying the design steps we cover in class, and are genuinely trying to master the course material. You should expect that we believe in everyone's ability to learn the class material, and that we will offer you non-judgemental support while you do so. We all recognize that TAs (and HTAs) are also students with their own workloads and lives outside of CSCI 0111. Please don't approach TAs for help if you see them around campus. Our TAs put a lot of energy into their roles, but they also need boundaries for the non-TA aspects of their lives. # Assignments and assessments Homeworks and projects will be posted and handed in online. Use the calendar on the course webpage to keep up with deadlines. Typically, homeworks are due 6-7 days after they are released. You will never have a homework assignment due at the same time as a project. There will generally be either a homework assignment or a project due every week. Drills will be due before class on Mondays, Wednesdays, and Fridays. ## Assignment types ### Drills We will assign three short online ungraded "quizzes" a week, which will be due shortly before each class session. The drills will usually be set up to let you know immediately if your answer matches our correct answer, so that you have instant feedback to check your work. These should take around 10-30 minutes to complete, and are designed to help us--and you!--understand which subjects you’ve internalized and which subjects we might need to spend more time on. Drills will be graded for completion only (not correctness). Full credit will be given if you complete 80% of the assigned drills (partial credit using the formula $\frac{drills\ completed}{0.8 * (total\ drills)}$ otherwise). This is a *very* lenient policy, but don't phone it in on the drills -- the overall course grade prioritizes you demonstrating your *conceptual* understanding of course topics, and drills allow you to continually check in with yourself about your understanding. ### Graded Quizzes and Final Exam There will be three graded tests in the course, all in-person/on paper (use of electronic devices disallowed). The first two are shorter midterm quizzes. The last is a longer final exam (in the assigned slot as shown on C@B). These tests are designed to assess your conceptual mastery of the course material. They will have a mix of multiple-choice, short-answer, and open-response questions (but not homework-style programming problems). For the midterms, we will have alternative times available **only for students with a time conflict in S02, SAS accommodations, or who have reached out ahead of time with a documented conflict (e.g. traveling for athletics).** There is no remote/rescheduled final exam. We will make study guides and past exam questions available to study before each exam, and we will reach out with this information and to confirm alternate times for quizzes closer to the exam dates. ### Homeworks Homeworks, due once per week, are designed to help you understand the course material and put it into practice. They will consist of both written questions and short programming assignments, which you will work on individually. Programming assignments will be graded for correctness as well as code style and test quality. Some homeworks will include short, written reflections on readings related to the relationship between the topic and the societal impacts of data and computing. ### Projects There will be two larger programming-focused projects, which are designed to help you apply your programming knowledge to interesting problems and to learn how to program with a partner. For each project, your pair will design and implement a solution to a data-focused problem. Before starting to implement your solution, you will have a “design check” with a TA in order to make sure you've thought through the problem and come up with a reasonable design. For each project you'll hand in the code you wrote as well as a writeup describing your design and reflecting on the project. The course projects are independent of each other, and you'll work with a different partner for each one. You will have two weeks to complete each project: one week for the design and another week for the implementation. If you are having an issue contacting your partner, or if your partner is substantially impeding your learning, please contact Milda. We cannot help you with partner issues if we do not know about them, and the sooner we hear about them, the sooner we can reach a solution that works for everyone. The final assignment will be an individual "mini project" that lets you pull together everything we've covered in the course. It is an individual assignment (more like a homework than a project, just slightly longer than a typical homework). # Grading Too often, students assume that the primary criterion for doing well in a programming-focused course is to write code that produces an expected answer. Writing code that runs is only one aspect of computer science. Organizing data, managing data, structuring code, documenting code, testing code, and anticipating problems from code are just as important in practice. So is having a good conceptual understanding of the course topics. This is even more true in the age of generative AI -- while we will learn to write code in the course, our main goal is to do this in order to understand the deeper fundamentals of data and computer science, in order to gain skills that set you up for however you want to use CS in the future. ## Skill areas Homeworks, projects, and exams focus on four skills areas: - **Data organization and management**: do you understand how to organize data for effective processing, maintanence, and representation of real-world conditions? - **Code structure and style**: is your code well organized and presented in a way that others can read it? - **Code functionality**: does your code run and produce expected results? - **Testing and Analysis**: can you assess whether a program does what it is supposed to do, both in terms of technical behavior and social consequences? Different assessments will use different mixes of these skills, as appropriate to the topics we're learning in class at that time. ## Grade computation The course grade will be made up of the following components: * 50%: Exams -- Midterm quizzes roughly 12.5% each, final roughly 25% * 40%: Homeworks and Projects -- HW1 roughly 2%, HWs 2-6 and mini project roughly 4% each, projects 1-2 roughly 7% each * 10% Labs and Drills -- roughly 5% each **Cutoffs:** The course is NOT graded on a curve -- everyone who deserves an A or S gets one, independent of the performance of other students. The initial cutoffs fall a around 90 for an A, 80 for a B, and the mid-to-upper 60s for a C or S. As described below, there is leeway built in to these cutoffs. While the overall grade breakdown (e.g. 50% for exams) is the same for all students, the weights within a category are not set in stone for multiple reasons. Prof. Milda computes a starting point based on the percentages above, but if a student is on the margin between an A and B, B and C, etc, she takes a closer look (for example, even though no assignment/exam score is dropped, if one low-scoring homework is dragging the grade down, it might get weighted lower; or if assignments/exams assessing a particular skill area were pulling as grade down but the final exam shows improvement in that skill area, the grade might be adjusted to account for that). To prevent points lost to grading mistakes or technicalities, she also goes through and personally reads your exam responses to see if the provided answers demonstrate enough understanding of each of the skill areas to warrant the grade earned. This also happens when a student's exam scores are much lower than their assignment scores. Because of this, **you cannot miss the final exam and pass the course.** This process has ended up working out more favorably for students than if we were to assign rigid weights and grade cutoffs, but is **NOT meant as an invitation for you to split hairs about your final grade.** We will have a form available for you to make an inquiry after course grades have been submitted, but excepting a bookkeeping mistake, final grades do not tend to change, especially because the described process already factors in cushioning. Grades are an imperfect system, but they are what universities use to signal to the outside world that a student has met the learning goals of a course, and our grading policy is guided by this purpose as much as possible. ## Grade or SNC? Hopefully you'll have a sense of how things are going before the SNC deadline. Rest assured that Milda won't think less of anyone for taking the course SNC. In fact, *Milda doesn't even look at who is taking the course SNC until after course grades have been computed.* Do what makes the most sense for you, your work-life balance, and your goals for the course. Feel free to come to office hours, send Milda an email, or ask the TAs for advice. # Assignment Policies ## Late assignments and Extensions Each student will have 10 “late days” that can be used throughout the semester on homeworks (2-6; HW1 can be submitted until the end of shopping period without being counted late) and projects. Each late day allows the student to hand in a homework up to 24 hours late. **No more than three can be used on an individual assignment** -- Gradescope will not let you submit a homework after the late deadline of Fridays at 11:59pm (after Spring Break, this is Mondays). Late projects count against both partner’s late days. Late days cannot be used on project design checks. **Late days/extensions cannot be used for exams.** Late days are meant to cover situations such as colds, conferences, interviews, overlapping midterms, routine cultural and personal obligations, and just needing a bit of extra time. **Extensions** beyond the late days are only warranted by more serious situations, of the sort that could be backed by a Dean's note (e.g., mental health challenges, hospitalization, serious illness or death in the family, etc). Students with SAS accommodations may also have arrangements that fall outside the standard late-day allocation. Extensions will be determined on a case-by-case basis; please fill out the extension form on the course homepage (which goes to Milda directly). TAs are not allowed to grant extensions. Keep in mind that deadlines fulfill at least four purposes: 1) making sure assignments are roughly aligned with lectures; 2) limiting how much work is due at any given time and helping you structure your time; 3) reducing the burden on TA staff at hours; and 4) allowing us to start grading and release grades in time for you to get meaningful feedback. The extension policy is strict in order to apply the same standard to all students, and late days are meant to allow for leniency outside of this strict policy. We understand that life might get in the way of submitting your best work on time, but it's up to you to manage your priorities while still heeding the policies of the course. Sometimes you might miss a deadline or submit incomplete work (that's okay, this course is only a small part of your life!), but our policies exist to balance fairness, leniency, and the challenges of keeping a large course running smoothly. ## Blocklists To avoid conflicts of interest in grading, TAs may not grade students with whom they have current or past close personal or professional relationships. Either students or TAs may declare grading conflicts. If there are a particular TAs who you feel should not be grading your work, please contact the HTAs or Milda so we can configure grading assignments accordingly. ## Regrade requests You are encouraged to look over your assignments after they have been graded. If you find a possible error or believe that you lost too many points, please submit a regrade request through Gradescope. **Regrade requests will close one week after we release grades on an assignment.** The grading will be freshest in your TA’s mind during this time, and this prevents a backlog of requests from arising towards the end of the semester. ## Lab Attendance Weekly lab attendance is required. You are allowed to miss up to two labs during the semester without penalty (to accommodate illness, interviews, etc). Students with significant circumstances affecting lab attendance may contact Milda for alternate arrangements. ## Accommodations (SAS and religious observance) If you feel you have physical, psychological, or learning needs that could affect your performance in the course, we urge you to contact [SAS](https://www.brown.edu/campus-life/support/accessibility-services/). We will do whatever we can to support accommodations recommended by SAS. Students with SAS accommodations should have SAS send Milda a letter as soon as it's available. If your accommodations include something beyond extra time on assessments, email Milda for a time to review your particular needs. Students needing accommodation for religious observance should contact Milda a week in advance to make suitable arrangements for deadlines, etc. # Course culture Students taking CSCI 0111 come from a wide range of backgrounds (both personal and academic). We hope to foster an inclusive and safe learning environment based on curiosity rather than competition. All members of the course community--students, TAs, and the instructor--are expected to treat each other with courtesy and respect. Some of the responsibility for that lies with the staff, but a lot of it ultimately rests with you, the students. ## Be aware of your actions Sometimes, the little things add up to creating an unwelcoming culture to some students. For example, you and a friend may think you are sharing in a private joke about other races, genders, cultures, etc, but if you do this in a public space and a classmate overhears it, it can have adverse effects. There is a fair bit of research on something called “stereotype threat”, in which simply reminding someone that they belong to an particular culture or identity (on whatever dimension) can interfere with their class performance. Stereotype threat works both ways: you can assume that a student will struggle based on who they appear to be, or you can assume that a student is doing great based on who they appear to be. Both are potentially harmful. Bear in mind that diversity has many facets, some of which are not visible. Your classmates may have medical conditions (physical or mental), personal situations (financial, family, etc), or interests that aren’t common to most students in the course. Another aspect of professionalism is avoiding comments that (likely unintentionally) put down colleagues for situations they cannot control. Bragging in open space that an assignment is easy, for example, can send subtle cues that discourage classmates who are dealing with issues that you can’t see. Please take care, so we can create a class in which all students feel supported and respected. ## Be an adult Beyond the slips that many of us make unintentionally are a host of explicit behaviors that the course staff, department, and university (and beyond) do not tolerate. These are generally classified under the term harrassment, with sexual-based harrassment a specific form that is governed by federal laws known as Title IX. [Brown’s Title IX](https://www.brown.edu/about/administration/title-ix/) site provides many resources for understanding the terms, procedures, and policies around harrassment. Make sure you are aware enough of these issues to avoid crossing a line in your interactions with other students (for example, repeatedly asking another student out on a date after they have said no can cross this line). Your reaction to this topic might be to laugh it off, or to make (or think) snide remarks about “political correctness” or jokes about consent or other things. You might think people just need to grow a thicker skin or learn to take a joke. This isn’t your decision to make. Research shows the consequences (emotional as well as physical) on people who experience harrassment. When your behavior forces another student to focus on something other than their education, you have crossed a line. You have no right to take someone else’s education away from them. In light of recent reports about such issues on campus, Brown is taking additional steps to reduce this form of harm. Therefore, if we cannot appeal to your decency and collegiality, let us at least appeal to your self-interest. Failure to take these issues seriously could land you in some real trouble. ## Issues with Course Staff Professionalism and respect for diversity are not just matters between students; they also apply to how the course staff treat the students. The staff of this course will treat you in a way that respects our differences. However, despite our best efforts, we might slip up, hopefully inadvertently. If you are concerned about classroom environment issues created by the staff or overall class dynamic, please feel free to talk to us about it. The instructor and the HTAs in particular welcome any comments or concerns regarding conduct of the course and the staff. Sometimes, you may not be comfortable bringing this up directly to us. If so, you are welcome to talk to Lauren Clarke (the department manager), Kathi Fisler (Director of Undergraduate Studies) or to the Department Chair, Roberto Tamassia. You may also reach out to Jeana Horton in the Title IX office, a dean, or any other staff member who you trust. As a department, we will take all complaints about unprofessional or discriminatory behavior seriously. # Collaboration Policy Our collaboration policy attempts to balance the benefits of students learning together and the need to work problems on your own for understanding. ## Labs Labs are done in groups of 2-4 students, depending on the activites in a particular week. There are no restrictions on collaboration within lab groups. ## Projects Projects are done in pairs. There are no restrictions on collaboration within project pairs. Project partners are expected to work on the entire project together, rather than to divide the project into parts to complete separately. Dividing the work defeats the learning goals for the project. It may also cause problems on the quizzes and exam, which may ask about project details. ## Drills Drills should be done alone, as they are designed to help you and us assess whether you understand the concepts needed for the next lecture. There should be no incentive to collaborate on drills, as they are graded on completion only. ## Exams No collaboration is allowed on the midterm quizzes or final exam. ## Homeworks For homeworks, you are permitted to discuss high-level ideas with other students, but you must produce your code and other responses on your own. In particular, the following activities are NOT allowed when working on homeworks: * Sharing code files with another student for any reason other than being partners on a project or lab * Sitting next to another student while writing up solutions while looking at what the other is typing * Sending code for a homework question to a classmate “just so they can look at it to figure out how to do the problem” * Obtaining a solution on-line, from someone not in the course, or from someone who took the course in a previous year * Leaving your work in unprotected directories or services (including github) where other students can find them * Showing a classmate your code so they can help you find or debug an error * Using automated code-generation tools that haven't been explicitly authorized. In contrast, the following scenarios are fine: * Asking the course staff for help, whether on Ed or in hours * Classmates discussing an assignment question at a more general level than the code: discussing what the question is asking, what topics it draws on, and other similar non-code issues * Asking a classmate what general causes of a particular error message might be, or for debugging strategies, without showing them your code We will follow Brown’s Academic Code procedures on any suspected violations. Note that those who provide solutions are held partially accountable, even if they didn’t think the other student would use their work. We understand the pressure to help friends when they ask: please don’t put other students in the position to say no to such requests. If you have questions about the boundaries of the policy, please ask. There is never a penalty for asking. ## Use of AI tools We expect that the work you submit reflects your **own thought processes and learning**, so our general expectation is that you've written the code and reflections you turn in yourself. Especially in an intro course, asking a generative AI tool (such as ChatGPT) to write your code for you does you a huge disservice. We understand that the way these tools are used "in the real world" is constantly changing, and we won't shy away from this in class discussions and assignment/lab activities that engage with the evolving nature of CS. We also understand that these tools are often unavoidable, even when using a phone, opening program that comes installed on your computer, or doing a simple web search. Many of you are first-year students who are "learning how to learn" -- we encourage you to be mindful of how you're using these tools and to continuously interrogate whether each use enriches you or takes away the opportunity to learn for yourself. Also keep in mind that half of the course grade is determined by in-class assessments where computers/electronics are disallowed. Our goal is to write exams where, if you have worked through the homeworks in good faith and have developed **your own** conceptual understanding through lectures, drills, and labs, you will do well in the course.