CompSci 101, Spring 2021
Syllabus

Syllabus

All times are in Eastern times.

Professor: Susan Rodger

  • Office: Virtual
  • Office Hours on zoom: Mon 9:00am-10:00am, Wed 2:30pm-3:30pm, Thur 5pm-6pm
    The zoom link for my office hours are posted on Piazza. There will be a waiting room and I will let people in one at a time. You will be limited to 5 min if others are waiting.
  • Email:

Professor: Nicki Washington

  • Office: Virtual
  • Office Hours on Zoom: Tue 3-5pm, Wed 4:30-5:30pm
  • Email: nicki AT cs.duke.edu

Teaching Associate: Ms. Yesenia Velasco

  • Office: Virtual
  • Email: yvelasco AT cs.duke.edu
  • Oversees: Accomodations

Graduate TA: Yuan Qu

  • Office: Virtual
  • Office Hours on My Digital Hand
    Mon 8-9pm, Tues 7-8pm, Wed 7-8pm
  • Email: yq72 AT cs.duke.edu

Graduate TA: Aniket Dalvi

  • Office: Virtual
  • Office Hours on My Digital Hand
    Tue, Wed, and Thur 11am-12pm (noon)
  • Email: ad433 AT cs.duke.edu

HEAD Undergraduate TAs (UTAs)

All Undergraduate TAs (UTAs)

See pictures of the UTAs here.

Lab UTAs:
  • Alina O'Brien
  • Alison Rothberg
  • Andrew He
  • Anh-Huy Nguyen
  • Anshul Shah
  • Bianca Saputra
  • Brinda Raghavendra
  • Carolina Cassedy
  • Caroline Tang
  • Clara Lyra
  • Derya Oktay
  • Henry Zapata
  • Katie Zhou
  • Konstantinos Bailas
  • Meghan Peel
  • Olivia Ratliff
  • Paul Dellinger
  • Prateek Khandelwal
  • Ryan Iki
  • Tolulemi Gbile

Grader UTAs:
  • Brandon Lindsey
  • Gautum Sirdeshmukh
  • Jordyn Blake
  • Ryan Lee
  • Tahmara Ouedraogo
  • Thomas Colicchio

Topics Covered

Here is a list of some of the topics we will likely cover this semester related to Python Programming (not necessarily in this order):

  1. Python Data, Variables, operators
  2. Functions
  3. Conditionals (if), logic operators
  4. Looping structions (for, while)
  5. Turtle Graphics
  6. Strings
  7. Lists, Tuples
  8. Files
  9. Sets, Dictionaries
  10. Recursion

Course Meeting Time

Lecture:

Section/Time Location
SEC 001:
Tuesday and Thursday
1:45pm-3pm

Virtual
Zoom link posted in Sakai Announcements
SEC 002 :
Tuesday and Thursday
Asynchronous: No Time Specified
Note: there are deadlines to complete items by
Virtual



Lab Sections:

You should be signed up for one lab. Labs are on Fridays.

Web page

Many of the materials for this course (including this page) are available on
http://www.cs.duke.edu/courses/spring21/compsci101/

PIAZZA: Bulletin Board

THE PIAZZA SITE was created around January 13. We will use Piazza for the class bulletin board. Look here for announcements, hints, and information relevant to this class. You can also post questions here. You should check this page at least once a day!

Note that you can post anonymously to other students (not anonymous to instructors). We also encourage students to answer other student's questions and we will endorse correct answers!

If you were registered for the course before January 13, then you were automatically added to our Piazza site. If you add the course January 13 or later, you will need to add yourself to our Piazza site. Look for an announcement in Sakai on how to add yourself.

Text (Required)

How To Think Like a Computer Scientist - Learning with Python: Interactive Edition
by Jeffrey Elkner, Allen B. Downey, and Chris Meyer

How to get the book:

Pre-Lecture Work: Reading/Videos/Quizzes

You will be assigned reading from How to Think Like a Computer Scientist and/or Videos to watch before each lecture. Readings and Videos will be posted on the calendar page for each lecture on the course website. In general, you should read the text to be prepared to participate actively in class. If you've looked at material before it's discussed in class you'll get much more out of the class discussion.

There may be a quiz in Sakai based on the reading and videos that is due at 1:45pm on the day of lecture. These quizzes will be listed on the course website if there is one due. Quizzes on Sakai will turn off by 1:45pm on the day of lecture, you will not be able to complete them past that time. That means that you must SUBMIT the quiz by 1:45pm. You will not be able to submit it after 1:45pm.

Exception: Due to drop/add, the first four quizzes QZ01-QZ04 will all turn off on Feb. 4 at 1:45pm. You cannot makeup missed quizzes! We do drop some quiz points at the end of the semester.

There will also be some Sakai quizzes on the programming assignments. They will each have different deadlines.

If you are in the asynchronous section, you also have to submit the quizzes by 1:45pm EDT at the start of the Synchronous lecture!

Lecture

Sec 01 will have a live lecture on zoom on Tuesdays and Thursdays at 1:445pm-3pm. This lecture will have class participation activities called WOTOs that must be completed during lecture.

Sec 02 will get a video of the live lecture from Sec 01 and will need to watch that live Video and complete the class participation activities (WOTOs). The WOTOs must be completed by 11:59pm the next day.

WOTOS - During lecture we will do Working Together (WOTO) google forms. We will put you in random breakout groups and assign a WOTO form. Your group will discuss the problems on the form, and then each person in the group will fill out their own form and submit it.

If you are absent, even if you have a valid excuse, you must complete the class participation activities such as WOTO forms by 11:59pm the next day. We assume you may have to miss a few lectures, so we will drop a few WOTO points at the end of the semester. Missing more than a few lectures may impact your grade.

Grading

The table below shows how the categories of work done in class are used to calculate your grade in Compsci 101. Grading is done on an absolute, but adjustable scale. This means that there is no curve. Anyone earning 90% or more of the total number of points available will receive a grade in the A range with 94% cutoff for A; 80% = B range, 70% = C range, 60% = D.

Labs 10%
Sakai Quizzes 5%
Class Participation (WOTOs) 5%
Apts 15%
Programming Assignments 15%
APT Quizzes 10%
Three Exams and Final 40%

The three exams and final, each will count 10%.

The exams and final exam will be open-book.

Special Accommodations for Exams

If you get special accommodations for exams (for example extra time), then send your letter to Ms. Yesenia Velasco yvelasco@cs.duke.edu DO NOT SEND YOUR LETTER to Prof. Rodger or Prof. Washington.

FINAL EXAMS:

Labs on Fridays

You are required to attend the lab for which you've registered in taking Compsci 101. You will work with a partner during lab. You will submit lab work electronically. Each lab UTA takes attendance.

You will submit the lab work, either alone or as part of a pair as dictated by the lab. You must submit your lab work by the first Sunday 11:59pm that follows the lab day. Thus, if you do not finish during the lab, you have two days to finish it.

If you cannot attend your lab section in a given week, you are expected to still complete the material on your own and submit the lab by the end of the Sunday that follows the lab day for partial credit. No lab submissions will be accepted after Sunday. It is important to do each lab as they provide practice for the concepts you will be learning.

Your lab work will be graded on a five point scale. Pre-lab is one point, attendance is worth two points, completing the work is worth two points. If there is no pre-lab that week, then that point will be awarded for completing the lab, so each lab is worth five points. Since most of the lab points are for completing it during the week, and because we drop three labs, you cannot earn credit for attending a lab due to any absence.

If you miss lab, you should still do the lab for partial credit and fill out the online form by Sunday. No lab submissions will be accepted after Sunday.

Each group submits the lab work by completing the online form for that particular lab. To get credit for your work in lab, your name must appear in the online form. If you did not attend lab or your team determines that you did not participate during the period, your name should not be included in the final submission.

APTS

Algorithmic Problem-solving Testing problems (APTs) will be given throughout the semester. You will be given a description of a problem and asked to write code to solve it. You can test the code online and see the results of the automated tests. You will submit the code for grading when you decide you are ready. We do not look at the source code when grading in terms of providing feedback, we run it and test it. However, we may discuss alternative solutions to help you be effective programmers. If your source code simply checks the input with a sequence of if statements, it will receive no credit.

APTs should be submitted by 11:30 pm on the due date. A 24 hour grace period allows you to turn in APTs the next day. Late APTs are not accepted. Keeping up with APTs ensures you understand the topics we are discussing in class.

Each APT must also have a corresponding reflection form filled out. After we have completed a few APT sets, 1 point will be taken off for an APT if its reflect is missing. Each APT is worth 10 points, your code will receive the same fraction of points as the fraction of tests your code passes with the points rounded down. So for example, if you pass 19/20 tests or 0.95, your code earns 9 points.

APT Quizzes

APT Quizzes are your own work. There will be two APT quizzes during the semester. When you start an APT quiz, you will have 2.5 hours to complete it. You will have at least a three-day window to block out the 2.5 hours you have to complete APT quiz problems.

If you have a SDAO letter that allows for more time on the quiz, you must submit it to Ms. Yesenia Velasco before the APT quiz for you to not be penalized for taking longer than the 2.5 hours.

[Discussing the quiz] You cannot discuss the quiz with anyone except the course staff until we announce that it is okay to do so. If you have a question, you can ask it as a private post on Piazza. The staff may convert it to a public post if it is appropriate. However, keep in mind as a quiz the staff cannot help you with it beyond clarification questions. Also we are not on at all hours of the day, so we cannot guarantee we will be able to answer your question.

[Protect yourself when taking the quiz] Your quiz work must be your own and must not be seen by others. Therefore, we recommend finding a secure place (stay in your room and lock the door) where no one can see your work nor do you risk talking to someone while taking the quiz.

Programming Assignments

Assignments are due at 11:30 pm on their due date, typically Tuesday or Thursday. This allows you to access consulting hours up to the time an assignment is due. A grace period of 24 hours will allow you to turn in assignments until 11:30 pm the next day with no penalty (Note: There are no consulting hours on Friday and Saturday). Assignments turned in up to 4 days hours after the original due date (typically Monday at 11:30 pm if the assignment was due on a Thursday) will receive a 10% penalty (if the assignment is worth X, your grade will be calculated by subtracting .1X from your score). Assignments turned in after that, but up to a week later from the original due date (typically Thursday 11:30pm the following week for an assignment due on Thursday), will have a 30% penalty (subtract .3X from your score). No assignments will be accepted after the 30% penalty (one week late).

Assignment 6 and Assignment 7 are both due the last week of class. Assignment 6 has only one grace day and cannot be turned in after that. Assignment 7 has three grace days and cannot be turned in after that.

Points on assignments will vary. Assignments typically take more time and require more thought and analysis as the semester progresses.

We use Gradescope to offer automatic testing for your assignments while you are working on them. These tests are a work in progress and constantly being improved. However, these tests are checked before they are released and considered reasonably stable. Therefore, if your submission gets an error on Gradescope, you must confirm with a Grad TA or the Teaching Associate that the error is caused by Gradescope, not the submitted code. Only after getting this confirmation will your grade get special handling when it is moved from Gradescope to Sakai. The best way to do this is through Piazza or office hours.

If you are having trouble, be sure to see a UTA/TA or Professor as far before the due date as possible. Do not give up. PLEASE ask for help.

Extensions on APTs and Assignments

Individual extensions will be granted for medical reasons (see the Short-term Incapacitation Notification policy), athletes travelings, pandemic related, or other circumstances beyond your control.

Our extension form is on this page. We do not grant extensions after an assignment is due.

Note that this is a tough course to catch up in if you get behind. We have several items due every week. You want to make every effort to catch up quickly if you start to get behind.

Exams (3) and Final Exam

Exams are your own work.

[Missing Exam] If you miss a midterm for an excused absence, e.g., a Short-Term Incapacitation, you'll need to make up the exam within three class days.

[Discussing the exam] You cannot discuss the exams with anyone (except the professors for this course) until we announce that it is okay to do so.

Collaboration on Programming Assignments and Exams/Quizzes

You must adhere to the Duke Community Standard in all the work you do in Compsci 101. Please be sure you've read the standard carefully. Duke Community Standard

Work on exams, final exam and APT quizzes must be your own work, you may not collaborate in completing these.

Programming assignments and APTs. In working on and completing programming assignments and APTs you may collaborate and you may use online resources. Working with someone is a good way to learn about programming and to succeed. Copying someone else's program is not a good way to learn the material and to succeed in doing well in Compsci 101. We ask that in helping others you help them by discussion rather than by simply sharing code. Although sharing your code for assignments and APTs by simply providing it to others is not considered a violation of Duke's community standard in Compsci 101, we think it goes against the spirit of doing work collaboratively and learning together that we are working to create in the course.

Note that we have designed the APT quizzes and the course exams and final exam so that doing assignments and APTs largely on your own will help you do well on the work that must be done individually.

Asynchronous Lecture Section

If you signed up for the Asynchronous Lecture section, you are taking the same course as everyone else. You just don't have a lecture time. You should be doing the following.

REFLECT form

When you complete a set of APTs or a programming assignment you must also fill out a REFLECT form that will ask you to provide information including: how much time it took you to complete the assignment, your thoughts about the work you did and the assignment, a list of people you worked with or consulted with and a list of those people you helped in completing the assignment, a list of online/web resources you used outside of the the course website and text book. Completing the REFLECT form when you turn in these assignments is required, and your assignment will not be considered as complete and on-time unless the REFLECT form is turned in on-time.

Individual Work Reflected in Performance

We will design exams and APT quizzes so that a thorough understanding of APTs and assignments will ensure that you can succeed in these assessments that must be completed individually and without collaboration or assistance. Although you may collaborate and discuss programming assignments and APTs, we think that you will not be able to program well on your own and you will not succeed in doing well on the assessments unless you have worked by yourself with significant effort in completing the programming assignments.

Web Sites This Course uses

We will use several course web sites for this course.