CS201 Data Structures F20 Collaboration Policies
Overview
This page provides an overview of the types of ways you’ll be engaging in the course, and what types of collaboration are and are not allowed.
Types of Activities and Allowed and Non-Allowed Collaboration
There are a number of different types of activities in this class. Below, I describe the main ones, what kind of engagement I expect, and what collaboration is and is not allowed (and with whom). If you’re ever unsure what’s expected, please don’t hesitate to reach out on Piazza or in office hours.
- Videos: You should watch the videos and complete the embedded quizzes in the videos, eventually getting each quiz question right. You’re welcome to post comments in the videos to discuss with one another. If you want a response from me, you should post your comment/question on Piazza, and also include the title of the video and the time in the video that you’re referring to if it’s to something specific. You should complete the quizzes without help from others, but you’re welcome to discuss the quiz questions with anyone in the class afterwards and to attempt the quizzes multiple times. You should not use resources outside of the video and your notes to respond to the quiz questions. If you notice you frequently need multiple tries, you may want to see if there are ways you can change your engagement with the videos, such as by minimizing other browser windows and increasing the amount of handwritten notes that you’re taking.
- Activities: You should do all activities. Activities range from questions on Moodle that you submit answers to, often ungraded and brainstorming about designs, to worksheets that are available as a PDF that you can write answers for on paper, take a picture of and submit on Moodle, to activities that involve code downloaded from repl.it. You’re welcome to discuss these as much as you like with anyone in the class, but are especially encouraged to work with people in your collaborative learning group and/or with someone who is in class at the same time as you (if working during our class time). You can share screens or otherwise show the people you’re working with exactly what you said, although if something is handed in, you should each turn in your own version.
- OpenDSA readings: These readings often have embedded questions and activities in them that you should complete, and eventually you should get all the embedded questions right. You should complete these on your own, but if you get stuck, you’re welcome to talk to others about the big ideas and then come back later and try again. If you’re getting stuck frequently, you might think about whether more note taking or trying to summarize the concepts or pose discussion questions to your collaborative learning group would help.
- Other readings: Sometimes I’ll assign other readings, like a webpage or a PDF. I expect you to read them, but they don’t have any assessment.
- Labs: You should do all labs. Labs are typically completed on repl.it. You’re welcome to work on them with your collaborative learning group or with others in the class, and often, you’ll have the option to use paired programming if you wish (it will state this on the lab).
- Daily Quizzes: These are short sets of questions on Moodle to help you check your understanding. You should complete them, and eventually you should be able to get the correct answer for each one (you may attempt them multiple times). You should complete the quizzes without help from others, but you’re welcome to discuss them with anyone in the class afterwards.
- Homework: Homework generally consists of larger projects than labs and gives you the chance to creatively problem solve and apply ideas from class. You should complete all homeworks, and they will be evaluated for correctness, with feedback and evaluation covering not just whether they work but also code style and design. The only people you should be discussing code with in detail for homework are your collaborative learning groupmates, me, the prefect, and the lab assistants. Any of those people are welcome to look at your code and make suggestions, but you should write all of your code yourself. That means that a groupmate writing even one line of code isn’t okay, although they’re welcome to make suggestions for what you should do. The only exception is if a homework explicitly says that paired programming is permitted; if it says that, it will tell you who you may pair program with.
- Weekly quizzes: Weekly quizzes are intended to assess your understanding of the material from the previous week, helping both you and me to understand what’s making sense for you and what is not. Every Monday will have a quiz (due by Wednesday), except for the first week when there is no quiz and the week of midterm break when the quiz will be on Wednesday. Quizzes may have a time limit. If you have accommodations around exam times for a disability, your time limit will be adjusted to match your accommodations. You should view these quizzes as opportunities to recognize if you’ve missed something and to see how well your studying strategies are helping you to master the material. You should not discuss these quizzes with anyone in the class during the week the quiz is released, although you may ask me about them privately on Piazza if you have questions after you submit - I will typically answer clarification questions but not other types of questions. You should not consult any resources (online, either for our class or not for our class, or offline, including handwritten notes or trying things out in Java). If you believe there is an error on a quiz, please let me know privately on Piazza right away. I will release worked solutions (either written or video) for quizzes. One week after the quiz has been released, you’re welcome to discuss the quiz with anyone.
Collaborative Learning Groups
Your collaborative learning group is an assigned group of 3-5 students who are assigned as particular resources for one another during the course. The goal of this group is to foster smaller communities within the larger class, enabling everyone to learn more fully by talking/typing out their ideas with others and also decrease the isolation that might come from doing this class online rather than in person.
I’ll assign your collaborative learning group by roughly Day 2 of class. You should reach out to your group mates on email or on Piazza. Piazza is likely the easiest way to communicate and I strongly encourage you to choose that route. You can post to just your group by first choosing New Post and then choosing Collab Learning Grp followed by your group member, as shown below:
Allowed collaboration with this group is different from that which is allowed with others. You’re welcome to discuss homework at any level with your groupmates, from design decisions to getting help debugging. Unless a homework specifically says you can use paired programming, you must write all of your own code, but you can get ideas and work through troubles with your groupmates, including posting snippets of your code or using multiplayer mode on repl.it to walk through the code together. If a homework says you can use paired programming, then you and one other member of your group are welcome to choose to work together, using multiplayer mode and an audio chat to trade off who is driving; just like in regular paired programming, neither of you should write any code without the other person present.
In some cases, a homework or class activity will ask that you discuss something with your group. I encourage you to have these discussions synchronously if possible as I think discussions are often easier that way, but Piazza is also a fine tool to use for asynchronous discussion.
In addition to helping one another with homework, I hope you’ll use your collaborative learning group as a resource throughout the course. Your group is welcome to have any additional meetings you wish, including things like an informal study group where you check in regular about questions on the material. I will prompt such discussions from time to time as well.
Collaboration During Class Time
During class time, we will often have lots of time for working on activities, such as labs or worksheets. I may assign you to work with others who are on the class call that day, and you’re welcome to share ideas and in the case of labs, to work using paired programming. However, for something like a worksheet of questions, you should each write your own answers, talking with one another to figure things out.
Other Collaborations and Ways to Work Together and Get Help
There are lots of resources to get help. If you have questions, please consider any or all of the following:
- Prefect sessions: Our prefect holds prefect sessions at designated times for you to work through ideas collaboratively. Prefect session times are listed at the top of Moodle.
- Prefect 1:1 tutoring: Our prefect has some 1:1 tutoring time available; our prefect can work a maximum of 10 hours per week total. Contact the prefect to schedule this - contact information is at the top of Moodle.
- Lab assistants: The lab assistants are available at a variety of times to help with homework or labs. They’re great at helping you debug your code or think through ideas. Information on the lab assistant schedule and how to access help is available at the top of Moodle.
- Class time: There’s time for question and answer during every class. This time is usually best for questions that might be relevant to multiple people, like difficulty understanding a concept or wanting to know about a particular snippet of code or quiz from a video. It’s less good for detailed help debugging your code unless we’ve designated that class time as an office hours time (which we will do during some Monday/Wednesday class periods; drop in office hours at a specific time will replace our Friday class period).
- Office hours: Office hours are available throughout the week and I’m happy to talk to you about class concepts, activities, homework, or anything else. With code, I can help you regardless of where you’re currently at, from brainstorming about approaches to a problem to testing and debugging. Some office hours are by appointment and others are drop in, where you get to listen to others’ questions as well. Look at the top of Moodle for a list of office hours times and instructions on how to access them.
- Piazza: Piazza is a great way to communicate with everyone in the class, with just your collaborative learning group, and/or with just me. If something is confidential or you’re worried it gives away too much about a homework (or involves more than a line or two of homework code), please post privately or to your collaborative learning group. Otherwise, you’re welcome to post to everyone (anonymously to your classmates if you choose, but I encourage you to use your name so that we can get to know one another). Piazza questions are often answered quickly because everyone can answer them. I typically check Piazza a minimum of twice per week day (once in the morning, once in the afternoon).
Academic Honesty Policies
Online courses can make it tougher to know what’s allowed and what’s not. Please look at the information above to know about how you’ll be collaborating for each part of this course. Plagiarism is not the same as collaboration, and plagiarism violates our academic honest policies. In particular, you may not search for code to solve your homework problem on the internet (including but not limited to explicitly searching for exact homework solutions), or post online about any homework problem anywhere but our class Piazza site. Here are some examples of behaviors that violate our academic honesty policies:
- Modifying someone else’s code and putting your name on it. That code might be your classmate’s, from a previous student, or found on the internet, and it’s still plagiarism if you make some changes. You should always be either starting from scratch or starting from files that I provide, not working off of someone else’s solution. Copying even one line of code is plagiarism! The only time someone else should be writing any code in your files that you’ll submit for the class is when you are pair programming.
- Having a friend debug your code and then turning in the revised code.
- Looking at a friend’s code who is not in your collaborative learning group (or code on the internet for a similar purpose) and then using what you see to write your own code.
- Looking at code from your collaborative learning group and then reproducing it verbatim in your own files.
- Asking a homework question on an external online forum (or searching for someone else asking a similar question) and turning in the answer as your own.
- Directly copying code out of the book, or relying heavily on book code and not citing your use of it in the comments.
These are just some examples of academic dishonesty - if you’re unsure whether something is permitted, please ask.
You also may not share quizzes or solutions to exams or quizzes from this class with anyone outside of the class, or ask anyone who has taken CS201 in the past to look at their old exams or assignments.
The above policy is borrowed from Anna Rafferty