This syllabus outlines the course structure, requirements, and policies. It will be the definitive source for policy questions.

1High-level summary

1.1Deviating from the syllabus

If you have a discussion with Kathi about a special circumstance that requires deviating from or following up on this syllabus (such as for an incomplete or an exception to the labs attendance policy), please promptly summarize the discussion in an email to Kathi. 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.

2Learning objectives

After completing this course, students will be able to:

3Instruction components

3.1Lectures

Lecture is in-person. You are expected to attend unless you are sick or out of town (tell Kathi, preferably in advance). Repeated absense could affect your course grade. Please do not come to class if you are contagious, however.

Readings and supplemental materials (such as in-class worksheets) will be posted on the Lectures page. For some lectures, we will ask you to look at a handout in advance to prepare for an in-class activity.

3.1.1In-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.

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.

3.1.2Recorded lectures

All lectures will be recorded, with the lecture capture videos available in the Canvas Media Library shortly after class. We provide the videos in case you miss class due to illness or need a refresher on something.

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. 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 design and code-writing processes that are taught and practiced in lecture.

Lecture recordings are captioned. Automatic captioning gets technical vocabulary wrong far more often than ordinary speech, so if you hit a recording whose captions are missing, or wrong enough to get in the way, tell Kathi or file the form linked under Accessibility and Accommodations.

3.1.3Laptop Use During Lecture

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 will only allow use of laptops during specific activities during class; we will ask you to close them at other times. Accordingly, please bring some other means of taking notes to class; you may want a second color for annotating examples (as Kathi will do on the board). We will start with allowing tablets for taking notes, but if we find students are using them for other purposes, we may revisit that policy.

If taking notes by hand is truly problematic for you (either due to SAS accommodations or other factors), please see Kathi to arrange for an exception. We will ask you to sit towards the edge of the room to reduce impact on others.

For (much!) more information on the effects of laptop usage, see the CS 19 laptop-policy page, which collects the research.

3.2Labs

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 upcoming assignments). Sometimes, we will cover additional details of lecture concepts, or do an activity that works better in smaller groups. Sometimes, we'll expose you to a new topic connected to lecture material. Exams might refer to themes or major problems from lab activities.

Most weeks, you will work in pairs during lab. Handouts will indicate design or discussion activites to do with your lab partner for that week. This is a chance for you to practice communicating about computing concepts with others in a low-stakes environment.

Weekly lab attendance is required. If you have a one-off lab conflict during a given week, request a switch using the lab switch form, which will open once labs start. To give us time to process your request, please fill out the form by Tuesday night of the relevant lab week. If you know you will miss more than one lab in the semester (say due to athletic committments, religious observance, or SAS accommodations), please contact Kathi in advance. 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.

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. If you are late or off-task for the majority of the lab, we'll make a note on your attendance, which may affect your final lab grade. You may miss one lab during the semester without penalty to your final grade (after which you lose points proportional to the number of labs you missed beyond the free miss).

4Assignments and assessments

4.1Types of Assignments

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, though some will have an intermediate deadline after a couple of days. There will generally be either a homework assignment or a project stage due every week.

4.1.1Homeworks

Homeworks 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, using a combination of an autograder and in-person code-review. Some homeworks will include short, written reflections on readings related to the relationship between the topic and the societal impacts of data and computing.

4.1.2Projects

Projects are multi-stage assignments that span roughly two weeks, with intermediate deadlines. The first deadline will ask for some sort of design that you review with a combination of peers and TAs before proceeding to implementation and analysis of the results. These will still be individual assignments, but with more peer interaction during the design portion.

4.1.3Graded Quizzes and Exams

There will be three graded tests in the course, all in-person/on paper (use of electronic devices disallowed, except as provided by an SAS accommodation): one in-class quiz, one evening midterm, and one 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). We will make study guides available before each exam.

4.1.4Peer Review

During peer review, you provide feedback to classmates on their work (with guidance on what aspects to check). Both research and Kathi's own teaching experience show that students find peer-review valuable, in part because you get to see how others are approaching the same problem. Both reviewers and work authors will be anonymous to one another (but not to the course staff). On some assignments, the staff may provide feedback on the quality of the reviews that you wrote.

4.1.5Code Review (with Staff)

Code reviews are 1-on-1 sessions with staff (TAs or Kathi) to discuss the design and/or implementation of an assignment. During these sessions, we will be talking through your thought process and decisions, at both the specification and code levels. These sessions help us check that you are actually learning the skills and concepts associated with an assignment. Code review is a standard practice in professional software settings.

Each student will do multiple such sessions during the semester, but perhaps not on all assignments (we will see how it goes). We expect that you will need practice before being able to do these well, so later code reviews will weigh more than earlier ones in terms of grading.

4.1.6Reflection Journal

This is a new course that we hope to expand in future years. We want to understand how students are experiencing our process of learning to design and code with and without agents. To that end, we will ask you to maintain a reflection journal about your learning in the course. Specific tasks on assignments will ask you to make entries talking about issues such as how you divided effort with AI tools, how you felt AI was enhancing or distracting from your learning, and problems for which you noticed the value of what you knew in guiding AI tools.

There are no right answers in these journals, and the content of what you write will not affect your grade as long as you are taking the entries seriously. Entries cannot be written by AI. Only Kathi and the HTA will have access to the journals.

4.2Late assignments and Extensions

Each student has 10 “late days” that can be used throughout the semester on homeworks and projects (HW1 is treated differently if you join the course late). 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 at 11:59pm three days after the due date. 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 1-2 day colds, conferences, interviews, overlapping midterms, 1-2 day 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 for unanticipated or extensive circumstances (e.g., mental health challenges, hospitalization, extended 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 Kathi directly and privately). 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.
  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 the course running smoothly.

5Grading

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. Designing projects, organizing data, managing data, structuring code, documenting code, testing code, auditing 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.

5.1Skill areas

Homeworks, projects, and exams focus on five skills areas:

Different assessments will use different mixes of these skills, as appropriate to the topics we're learning in class at that time.

5.2Grade computation

The course grade will be made up of the following components:

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 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. 55% for exams) is the same for all students, the weights within a category are not set in stone for multiple reasons. Kathi 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 must take the final exam to 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.

5.3Grade or SNC?

Hopefully you'll have a sense of how things are going before the SNC deadline. Rest assured that Kathi won't think less of anyone for taking the course SNC. In fact, Kathi 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 Kathi an email, or ask the TAs for advice.

5.4Blocklists

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 Kathi so we can configure grading assignments accordingly.

5.5Regrade 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.

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. Clarifications that would affect grading should be posted to Ed so we have a record of it.

6Roles, Responsibilities, and Expectations

6.1Staff

In addition to Kathi, we have an HTA and several UTAs.

HTAs help manage course logistics: they coordinate lab and office hour schedules, make sure materials are released on time, 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 cs0111eheadtas@lists.brown.edu. Please use this mailing list instead of mailing the HTAs individually, since it helps us with email filtering. Kathi is also on this list.

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 Kathi can grant extensions or handle other exceptional situations.

This semester, we also have a Data Science Fellow working with Kathi to evaluate how the course is going. The fellow will only be working with anonymized assignment and journal submissions.

6.2Expectations of one another

At a high level, we expect that you are attending lectures, applying the design steps we cover in class, doing assigned work yourself, 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 0111E. 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.

6.3Course culture

Students taking CSCI 0111E 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.

6.4Be 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.

6.5Be 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 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.

6.6Issues 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 Tim Nelson (the Associate Director of Undergraduate Studies) or 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.

7Accessibility and Accommodations

Brown University is committed to full inclusion of all students. Please inform Kathi early in the term (by email or by appointment) if you may require accommodations or modification of any of course procedures. Student Accessibility Services (SAS) provides accommodations and support for undergraduate and graduate students with disabilities. To learn more or to request disability accommodations, reach out to SAS at sas@brown.edu, 401-863-9588, or visit the SAS website. If you encounter any digital materials in this course that are inaccessible, complete the Digital Accessibility Concern Reporting Form. For any accessibility or accommodation concerns, please contact the ADA/504 Coordinator at ada_504@brown.edu. Undergraduates in need of short-term academic advice or support can contact an academic dean in the College by emailing college@brown.edu. Graduate students may contact one of the deans in the Graduate School by emailing graduate_school@brown.edu.

7.1Religious observance

Students needing accommodation for religious observance should contact Kathi a few days in advance to make suitable arrangements for deadlines, etc.

8Getting help

Most questions and requests for clarification should be

8.1Ed Discussions and Email

Ed discussions is our main avenue for communications between staff and students. Posting to Ed allows the first available staff member to get to your question without work duplication on our end.

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.

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 (cs0111eheadtas@lists.brown.edu, which goes to Kathi and the HTA), or just to Kathi (kfisler@brown.edu). Please do not email individual TAs about course matters.

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 10pm are unlikely to get a response until the next day. Kathi in particular is rarely online past 8:30pm. Expect there will be a delay between when you post and when we respond.

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.

8.2Office Hours

We will have multiple slots of TA hours spread out over the course of each week. Kathi 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 calendar.

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, high-performing students often make use of hours to review concepts or to discuss strategies for approaching problems. Learning to program often involves learning different strategies for approaching problems than you've used before. Hours are a great place to discuss this.

If you have a question about how to do a specific of the assignment, 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.

Feel free to come to Kathi’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.

8.3More intense help

If you feel you need more help than office hours provide, email Kathi 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. Kathi is committed to fostering an open and supportive course culture, and she isn't about to think less of anyone for whom material just isn't clicking yet (things didn't immediately click for her either when she started CS). It's pretty normal, actually (no matter what inaccurate stereotypes you might have been exposed to about "geeks" and "real programmers").

9Collaboration Policy

Our collaboration policy attempts to balance the benefits of students learning together and the need to work problems on your own for understanding.

9.1Homeworks

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; use of AI is governed by the per-assignment AI policy (which we be near the top of each handout). In particular, the following activities are NOT allowed when working on homeworks and projects:

In contrast, the following scenarios are fine:

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.

9.2Labs

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.

9.3Exams

No collaboration is allowed on the quizzes or exams.

10AI Policies

10.1Your 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 done the work yourself unless an assignment handout specifically tells you to work with an LLM or agent. Especially in an intro course, asking a generative AI tool (such as ChatGPT, Claude, Grok, etc) 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; that's why we're developing 0111E! That said, we know from experience, alumni, experts, and education research that you will not learn computer science or software design effectively without sometimes wrestling with code on your own.

Also keep in mind that more than half of the course grade is determined by in-person assessments where computers/electronics are disallowed. Our goal is to write exams where, if you have worked through the assignments in good faith and have developed your own conceptual understanding, you will do well in the course. If you outsourced too much of the learning to AI tools, however, you may lack sufficient understanding to do well on these assessments.

10.2Managing the pull of AI tools

Try to be intentional about your AI usage. Before you start an assignment, take a moment to read its learning goals and think about what you want to get from working on it. Make an internal committment to learning. Take your reflection journal seriously (reflection has been shown to aid learning), and revisit it to remind you what you're getting out of different ways of working in the course.

You are more than welcome to reach out to Kathi to talk about managing the AI pull. Feeling the pull isn't a character flaw. Don't be embarrassed about feeling it. We're more concerned with how you act on it.

10.3Our Use of AI tools

The instructor and TAs have worked with AI tools to design, prototype, and debug assignments, but always with high levels of interaction starting from manually-designed specifications. This follows the methods we will teach you for designing artifacts in this course.

The course staff will not use AI-tools to grade your work. Kathi may upload anonymous work samples to an AI agent to help identify broad themes for discussion in class, but these summaries will not determine assignment grades. Work will only be uploaded either to a local model running on Kathi's laptop (which cannot share data beyond the laptop) or an agent approved by Brown for handling sensitive data (at time of this writing, Gemini); these approved tools do not use Brown data to train models.

We do make use of autograders, which are tools that run specific staff-certified collections of tests against your code. These tools have nothing to do with AI, and indeed have been standard in CS courses worldwide for decades.

11Joining the class late

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:

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 in 0111).

12Merged Course Sections

In accordance with federal law (FERPA), we provide the following statement:

All sections of this course (lectures and labs) are combined into a single Canvas site. This means that you may be able to access names of students taking the course across both sections. If you have concerns about this, please email the instructor as soon as possible.

13Research Studies

Kathi does research in how people learn computing, in collaboration with other faculty in the department who do research on computing education. This research may be used to improve this or other courses in the department, and may be published for others. You may be offered opportunities to participate in research studies during the course. Your participation (or not) and performance in these studies have no effect on your course grade.

Occasionally, a class-wide lab or in-class exercise could contribute data to a larger study. You will be informed about such cases if they arise. Individual students are never identified when we report on studies or their findings. If you have concerns about having your data contribute to these studies, please talk to Kathi.