CompSci 101, Spring 2022
Syllabus

Syllabus

All times are in Eastern times.

Professor: Susan Rodger

  • Office: LSRC D237, but Virtual Office hours for now
  • Office Hours on zoom:
    Mon 5pm-6pm, Tues 2:30pm-3:30pm, Wed 3-4pm
    (subject to change)
    The zoom link for my office hours are posted
    in Sakai and on Ed.
  • Email:

Teaching Associate: Ms. Yesenia Velasco

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

Graduate TA: Danyu Sun

  • Office Hours in LSRC D301
  • Wed and Fri 4-5 pm

  • Email: ds592 AT cs.duke.edu

Graduate TA: Yubo Ding

  • Office Hours in LSRC D301
  • Tue and Thu 5:15-6:15 pm

  • Email: yd163 AT cs.duke.edu

HEAD Undergraduate TAs (UTAs)

All Undergraduate TAs (UTAs)

See pictures of the UTAs here.

Lab UTAs:
  • Adrian Doan
  • Alex Glick
  • Allyson Ashekun
  • Andy He
  • Bianca Saputra
  • Brandon Lindsey
  • Brandon Lopez
  • Carolina Cassedy
  • Caroline Tang
  • Cayla Park
  • Connor Murphy
  • Derya Oktay
  • Eden Smith
  • Henry Zapata
  • Jean-Luc Rabideau
  • Jessica Su
  • Kieran Lele
  • Ryan Iki

Grader UTAs:
  • Alicia Steiman
  • Binisha Patel
  • Gautum Sirdeshmukh
  • Georgie Stammer
  • Parker Harris

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

Tuesday and Thursday
10:15am-11:30am


Griffin Theatre in Bryan Center



Lab Sections:

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

Section Time Room UTAs
01 Fri 10:15am-11:30amGross Hall 104 Connor Murphy, Eden Smith
02 Fri 10:15am-11:30amBio Sci 155 Andy He, Jessica Su
04 Fri 10:15am-11:30amOld Chem 123 Derya Oktay, Adrian Doan
05 Fri 12:00pm-1:15pmLSRC A247 Bianca Saputra, Brandon Lindsey
06 Fri 12:00pm-1:15pmGross Hall 105 Carolina Cassedy, Allyson Ashekun
07 Fri 12:00pm-1:15pmLink Classroom 6 Ryan Iki, Alex Glick
08 Fri 1:45pm-3:00pmGross Hall 105 Carolina Tang, Cayla Park
09 Fri 1:45pm-3:00pmLSRC A156 Brandon Lopez, Kieran Lele
11 Fri 3:30pm-4:45pmPhysics 047 Henry Zapata, Jean-Luc Rabideau

Web page

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

Ed: Bulletin Board

We will use the Ed discussion board that is in our Sakai site. 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!

Text (Required)

[We have a special version of the book just for our course, see below]
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 will be a quiz in Sakai based on the reading and/or videos that is due when lecture starts, at 10:15am on the day of lecture. These quizzes will be listed on the course website if there is one due. That means that you must SUBMIT the quiz by 10:15am, or you will not be able to submit it.

Exception: Due to drop/add, the first five quizzes QZ01-QZ05 will all turn off on Jan. 20 at 10:15am. You get up to 3 tries on each quiz and we use your highest score. 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.

Lecture

Lecture is on Tuesdays and Thursdays at 10:15am-11:30am. This lecture will have class participation activities called WOTOs (WOrking TOgether) that must be completed during lecture.

If you are absent, even if you have a valid excuse, you must complete the class participation activities such as WOTO forms by 11:30pm 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.

NOTE DUE TO COVID: The first three lectures through January 13 will be on zoom. The zoom link will be posted in the Sakai site.

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 10%
Programming Assignments 10%
APT Quizzes 10%
Four Exams(9% each) and Final(14%) 50%

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.

FINAL EXAM:

Your FINAL EXAM is Wednesday, April 27 9am-noon

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:30pm 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.

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 a block of time to complete it. You will have at least a three-day window 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 so you can have the extra time.

[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 3 days after the original due date 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 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 Ed Discussion 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

A 2-day extension (two days beyond the grace day) 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 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.

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.