CS0111 Course Missive and Policies
1 High-Level Course Information
1.1 Goals
1.2 Time Requirements
1.3 After CS0111
2 Course Culture, Diversity, and Professionalism
3 Textbook, Software, and Materials
4 Laptop Policy
5 Assignments Overview
6 Grading
6.1 Blocklists
7 Course Policies
7.1 Collaboration Policy
7.2 Handin Policy
7.3 Contesting a Grade
7.4 One-time Lab Switches
7.5 Late Policy
7.6 Extensions
7.7 Accommodations
8 Where to Get Help
8.1 Piazza, Email, and Contacting Staff
8.2 Office Hours
9 Receiving Announcements
10 Ergonomics
11 Data and Research

CS0111 Course Missive and Policies

1 High-Level Course Information

Time and Location: MWF 1-1:50, CIT 368

Professor: Kathi Fisler (kfisler@cs.brown.edu)

Teaching Assistants: Amy Li, Eli Berkowitz (HTA), Heila Precel (HTA), Josh Pattiz (HTA), Julia Windham, Leo Ryu, Nam Do, Nicole Cheng, Rohan Jha, Valeria Tiourina

1.1 Goals

CS0111 provides an introduction to computing and programming that focuses on understanding, organizing and manipulating data. Students will learn to write programs to process both tabular and structured data, to assess programs both experimentally and theoretically, to apply basic data science concepts, and to discuss big ideas around the communication and use of digital information.

Designed for both concentrators and non-concentrators, this is the first in an eventual three-course introductory sequence leading into advanced CS courses. This new sequence spreads out the material from the two-course intro sequences to help students who need to accommodate other time demands or interests. Programming assignments will be smaller scale than in CS0150/0170/0190, while still cover sufficient content to put students on a path to a CS concentration if they wish. Each of the three courses is also a reasonable stopping point in its own right, so students can apply what they have learned to problems in other domains if they so choose.

1.2 Time Requirements

In addition to three hours per week in lecture, you will spend 2 hours a week in lab and 6-8 hours on assignments. There will be three kinds of assignments: very small practice exercises due twice a week, homeworks, and projects. Either a homework or a project will be due each week.

1.3 After CS0111

This course will be the first in a three-course sequence (0111, 0112, 0113) that will lead into the CS concentration. However, neither 0112 nor 0113 will be offered in academic year 2018-19. If you expect you will concentrate in CS, you are likely better off taking CS0150 or CS0170 this year. As an experiment this year, students who earn A’s (and perhaps strong B’s) in CS0111 and wish to accelerate into further CS will have a chance to do extra work over winter break to prepare to take CS0180 in the spring. This option is not guaranteed to be available in the future.

2 Course Culture, Diversity, and Professionalism

(adapted from Professor Krishnamurthi’s policies, with permission)

Creating an environment in which all students are comfortable learning is extremely important to the course staff. 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 or “crazy”, 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 Web 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, intelligence, and collegiality, let us at least appeal to your self-interest. Do not mess around on this matter. It will not go well for you.

Framed more positively, treat each other as professional colleagues. Someday you may be each others’ start-up partners or co-employees; one of you may even be the other’s interviewer or boss. So start treating one another like professionals, and we mean that in the best possible interpretation of that phrase.

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. Professor Fisler 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 Laura Dobler (the CS dept diversity coordinator) or to the Department Chair, Ugur Cetintemel. You may also reach out to Rene Davis in the Title IX office.

As a department, we will take all complaints about unprofessional or discriminatory behavior seriously.

One Caveat

Please be aware that as the Associate Director for Undergraduate Studies for CS, Brown considers Professor Fisler a Title IX responsible employee; she is thus required to share information about (suspected) incidents of sexual and gender-based harm or discrimination with Brown’s Title IX office. Contact Professor Fisler or the Deans’ office if you aren’t sure who to turn to if you need help. For more information about Brown’s policies and resources, please see the university’s Title IX Web site.

3 Textbook, Software, and Materials

There are no required textbooks for this course, and you do not need a computer! There are ample machines in the Sunlab (CIT 143), Moonlab (CIT 227), MS Lab (CIT 167), etc. Many students have laptops and use those to do much of the course work, or have desktop machines and use those, but neither is necessary.

You also don’t need to purchase any software; the programs you write will all be written using publicly available and free software.

4 Laptop Policy

Students increasingly multitask in lecture: checking email, working on other homework, browsing social media, texting, etc. Research increasingly shows that these activities are highly distracting and detrimental to other students. Students sitting around you can’t help but be distracted by the lights and colors on your screen. (For a summary of the research, check out the summary that Professor Krishnamurthi has prepared for his courses). Some Brown CS professors have begun surveying students about laptop distraction, and many students report this as a frustration and a problem.

As such, this course has a strict policy on the use of devices during class:

Use of laptops during lecture is limited to taking course notes or working on in-class exercises. We request that students using laptops to take notes sit at the edges of the room to minimize distraction for others. Students using laptops for other purposes (email, web browsing, social media, etc) will be asked to put their laptops away. Phones may not be out or used at any time during lecture except in an exceptional situation. In such a case, please inform the professor before lecture begins. If you absolutely need to use your phone during class, step out of the classroom.

Laptops are not needed for lectures or for taking notes. We will do many exercises on paper; when we do try to write code, it will be small enough that you can just as well write it by hand (some research suggests that hand-writing notes leads to better learning and retention anyway). Shortly after each lecture, we will post notes and lecture video online, so you need not transcribe the lectures. A notebook used to highlight key points should suffice.

5 Assignments Overview

(Almost) Daily Drills

Twice a week, we will post a short set of review problems that check your understanding of each day’s lecture content. These are designed to help everyone have sufficient grounding in the concepts that will be referenced before the next lecture. The problems will be posted as quizzes in Canvas, but the quizzes aren’t graded for correctness (only for participation), so that you can use them for learning.

Labs

Labs are two-hour, interactive programming sessions designed to let you practice concepts in a collaborative space before you need those concepts on homeworks and projects. Lab signups will happen at the start of the course. Lab work will be done in small groups, with each student working with different partners across the course. Each lab features checkpoints at which you’ll need a TA to check your work so far. Once you complete the final checkpoint at the end of the lab, you are free to go.

Homeworks

Homeworks are designed to help you internalize the course material. They consist of written problems and short programming tasks. These problems may only be discussed with fellow students and TAs in a manner consistent with the Collaboration Policy.

Projects

Each project has two deadlines: one for a design check and one for the final hand-in. The purpose of the design check is to make sure your design is reasonable before you begin coding. You will generally have about a week between the project release date and the date of your design check, followed by another week to complete the project.

Exams

There’s only one exam, a paper-and-pencil final that will occur in the course’s assigned final exam slot. Details about the exam and what you should expect on each part will be posted a few weeks before the exam.

6 Grading

Everyone who earns an A gets one. Your grade is independent of the grade or work of any other student in the course.

The various course activities bear the following weights in computing course grades:

  • Homeworks: 30%

  • Projects: 30%

  • Labs: 10%

  • Daily Drills: 10%

  • Final Exam: 20%

For homeworks and projects, you will receive grades in each of four core skills: (1) producing correct programs, (2) choosing data structures and modeling problem data, (3) testing and debugging programs, and (4) decomposing problems and structuring programs. Each homework/project can earn points towards one or more themes (varying per assignment).

Your final homework and project scores (as used to compute final course grades) will be based on your performance across the skills. An A requires a strong grade in all four themes; B requires two strong grades, another good grade, and no below-par grades; multiple distributions could earn a C, but more than two below-par grades would not earn credit).

Grades within a theme are based on several factors, including scores on each assignment, grade trajectories across assignments, and performance on work done individually. Some students may struggle in the beginning as they get used to programming, then get stronger as the course goes on. Grading in this course aims to accomodate this normal learning curve; to do this, we cannot publish a formula up front of how individual assignments will weigh in final grades (no single formula covers all students). You will receive feedback as the course goes on about your overall performance, so you can allocate your efforts according to any grading goals you have.

For labs your grade will be based on attending lab and making good progress on the problems during the lab session. You do not need to complete the entire lab to get full credit, but the staff do need to see consistent effort during the lab time with many parts of the lab completed. Partial credit is available.

For daily drills your grade will be based on the percentage of daily drills that you submit. Full credit will be given for submitting answers to all questions on 80% of the assigned drills, as long as there is no clear evidence that you’re just clicking through without thinking about the questions.

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

7 Course Policies

7.1 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 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 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.

Daily 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.

No collaboration is allowed on the final exam.

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, or from someone not in the course

  • 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

In contrast, the following scenarios are fine:

  • Asking the course staff for help

  • 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.

7.2 Handin Policy

Every other assignment handout contains a section entitled “How to Hand In,” which you must follow in order to hand in your work electronically. We will not accept hard copies of your assignments, or handins via email.

When handing in assignments, make sure you name your files using the file names provided. The handin tools will not accept wrongly named files.

7.3 Contesting a Grade

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, contact the TA who graded that problem. You should initiate such inquiries within one week of receiving your grade. The grading will be freshest in your TAs mind during this time, and this prevents a backlog of requests from arising towards the end of the semester.

7.4 One-time Lab Switches

If you discover that you cannot make your lab section during a particular week, you can email the TAs to temporarily switch into another lab section. You should send this email at least 24 hours in advance of your scheduled lab. That way, the TAs will have sufficient time to read your email, help you find an open slot in another lab, and confirm the change. If you email the TAs with less notice, say only 2 hours in advance of your scheduled lab, and no TA is able to help you before your usual lab time, you are expected to go to your assigned lab.

7.5 Late Policy

Labs are expected to be completed in the lab during lab time, barring emergencies. Most labs have some activities that involve discussing solutions or ideas with others that you cannot complete on your own.

Homeworks that are turned in on their due date, but beyond the published “due time” (usually 9:00pm on Tuesdays, unless stated otherwise on the assignment handout), will be considered late. We will grade your work with a 10% penalty if it arrives by 6:00pm the next day (when we start grading). You will receive no credit on any homework that comes in after 6:00pm the next day unless you have an extension in email from Professor Fisler.

Projects have two deadlines: a design check, in which you review your project plans with a TA, and a final submission deadline. You will sign up for design checks after each project is handed out. Missing the design check will cost you 30% of your project grade.

Final project submissions are subject to the same late policies as homeworks.

7.6 Extensions

Extensions are generally granted only for documented situations, such as illness with a note from health services, or personal issues with a note from a dean. Deaths in the family are valid reasons that do not require documentation. If you feel you need an extension and don’t have documentation, contact Professor Fisler.

Only Professor Fisler can grant extensions, so please do not ask any of the TAs for an extension.

Only in the most extreme of circumstances is an extension or time change granted on the exam.

7.7 Accommodations

If you feel you have physical, psychological, or learning disabilities that could affect your performance in the course, we urge you to contact SEAS. We will do whatever we can to support accommodations recommended by SEAS.

Religious Observance

If you require accommodation for religious observance, please contact Professor Fisler at least a week before the deadline in question to make arrangements.

Personal Emergency

In the event of a medical or family emergency, contact Professor Fisler to work out accommodations.

8 Where to Get Help

Our goal is to guide you as you develop the skills, knowledge, and confidence to solve computational problems correctly, elegantly, efficiently, and with ease. Part of your learning experience throughout your time at Brown, will involve a productive struggle with problem solving. If/when you encounter feelings of frustration, don’t be afraid to ask for help. Rather than beat your head against a wall, seek out your friendly staff.

We are here to help!

8.1 Piazza, Email, and Contacting Staff

Piazza

We use an online academic forum called Piazza to handle questions and comments that arise outside class and office hours. All questions about course material and assignments should be posted to Piazza. If you email a question that should have been posted, we will ask you to post it before we respond.

Piazza allows both private and public posts. Unless a question pertains specifically to your attempted solution to a problem, please post questions and comments publically. Questions about your approach should be posted privately (i.e., to the course instructors only). The course staff reserve the right to make a private post public if it asks a general question of interest to the entire class.

Before you post, do a quick piazza search or check the FAQ on an assignment handout to see whether your question has already been answered. We will periodically update the assignment FAQ as questions come in.

Lastly, feel free to comment on any questions/answers/comments you read on Piazza. Piazza is a forum for discussion and we welcome your contributions!

Email

Questions or comments not directly related to the course material (for example, “I can’t log in to Piazza!”) should be emailed to the entire course staff (cs0111tas@lists.brown.edu).

The only exception to this general rule is in the case of a grade complaint; then, you should start by contacting your specific grader. If you and your grader cannot resolve the issue to your satisfaction, you can then contact the head TAs (cs0111headtas@lists.brown.edu).

You can also email the head TAs about other more personal concerns, such as a personality conflict with your partner on a project. If the head TAs cannot resolve your issue or answer your question, feel free to contact Professor Fisler.

Quiet Hours

TAs (and the professor!) have their own work and lives beyond this class. As a result, each staff member maintains times during which they will not be checking Piazza or answering email. As a general rule, questions posted to Piazza after midnight may not get answered before the next morning. Professor Fisler goes offline no later than 9pm each day.

8.2 Office Hours

Each TA holds two hours of walk-in office hours, per week. Professor Fisler has one scheduled hour and is available for appointments outside of hours. Each week’s schedule and location is posted on the course website.

Attending office hours does not send a message to your professors or peers that you are falling behind. Au contraire, the most successful students are usually those who come to hours early and oftenwhenever they have questions about topics covered in lecture or would like some guidance as they work through an assignment.

9 Receiving Announcements

Announcements will be made on Piazza. If an announcement is time-sensitive, it will be emailed to the entire class.

You are responsible for keeping up to date with all messages, regardless of where they are posted. In particular, you are responsible for any assignment clarification that is posted at least 48 hours before the assignment due date.

10 Ergonomics

Repetitive strain injuries are a common side effect of computer use, and can be serious. Refer to the CS department’s resource page on ergonomics for information on how to reduce the chance of injury when working with computers.

11 Data and Research

Throughout the course, we will be analyzing data about how the class as a whole is doing on various concepts, with the aim of improving the course in future years. Professor Fisler does research in computing education, and may sometimes combine anonymized data from this offering with data from other similar courses. Your identity will never be shared beyond the staff of this offering of the course. If you have any concerns about this, please contact Professor Fisler.

You will also receive invitations to participate in a couple of research studies associated with the content of this course. These are strictly voluntary, and have no bearing on your standing in the course. While Professor Fisler will post announcements about these studies, she will not know who chooses to (not) participate in them.