CompSci 101, Spring 2025
Syllabus

Syllabus

All times are in Eastern times.

Professor: Susan Rodger

  • Office: LSRC D237
  • Office Hours:
    Tuesdays 4:30pm-5:30pm, Wednesdays 2pm-3pm, Thursdays 3pm-4pm
    (subject to change, will post on ED if they have to be moved)
    My hours are in person AND on zoom.
    The zoom link for my office hours are posted
    on Ed.
  • Email:

Teaching Associate: Violette Walker

  • Office: Virtual
  • Email: violette.walker AT duke.edu
  • Oversees: Accomodations and Management of Course

Graduate TA: Weihang Guo

  • Office Hours: Tues 1-3pm, Thur 1-2pm
    Virtual
    (see zoom link on Ed)

  • Email: weihang.guo AT duke.edu

Graduate TA: Jiasheng Wang

  • Office Hours Mon 1-3pm , Wed 1-2pm
    Virtual
    (see zoom link on Ed)

  • Email: jiasheng.wang AT duke.edu

HEAD Undergraduate TAs (UTAs)

Undergraduate TAs (UTAs) (TO BE UPDATED!!!!)

See pictures of the UTAs here.

Lab UTAs:
  • Yasmine Abdel-Rahman
  • Bela Aguilar
  • Kevin Alvarenga
  • Sola Corrado
  • Rafael Jafet
  • Vivian Malnove
  • Katherine Newbold
  • Nolan Potter
  • Lisha Qu
  • Carlie Scheer
  • Amanuel Shetaye
  • Jamie Sokoloff
  • Oliver Stern
  • Lara Terry
  • Avari Wang
  • Jerry Zou

Grader UTAs:
  • Carmen Becker Pombo
  • Marco Castillo
  • Janet Jiang
  • Melina Marjani

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

Learning Goals

Our aspirations for you by semester’s end: It’s important to recognize that descriptors like “fundamental,” “basic,” and “some” emphasize this course’s introductory nature. While we lay the foundation, mastery demands extended practice and broader knowledge than a single semester affords. Our aspiration is that you leave this course with the enthusiasm and preparation to learn more outside of this course, whether it is in more computer science classes or on your own.

In service of our goals, we have the following learning objectives:

  • Know how to use the main programming constructs in Python
  • Choosing which data structure we learn in the class is appropriate for a situation
  • Apply the programming idioms you will learn in this class
  • Apply methodical debugging techniques
  • Read documentation and understand how to use a function
  • Course Meeting Time

    Lecture:

    Section/Time Location

    Lecture Section 01

    Tuesday and Thursday
    1:25pm-2:40pm


    Gross Hall 107

    Lecture Section 02

    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. (UTAS TO BE UPDATED!!!!!! )

    Section Time Room UTAs
    01L Fri 8:30am-9:45amLSRC A155 Sola Corrado and Lisha Qu
    02L Fri 10:05am-11:20amBio Sci 155 Jamie Sokoloff and Lara Terry
    03L and 04L Fri 10:05am-11:20amFrench Sci 2237 Bela Aguilar and Jerry Zou
    05L Fri 11:45am-1:00pmLSRC A247 Kate Newbold and Yasmine Abdel-Rahman
    06L and 08L Fri 11:45am-1:00pmLSRC A155 Rafael Jafet and Vivian Malnove
    07L Fri 11:45am-1:00pmBio Sci 130 Oliver Stern and Carlie Scheer
    09L and 10L Fri 1:25pm-2:40pmBio Sci 113 Kevin Alvarenga and Nolan Potter
    11L Fri 3:05pm-4:20pmBio Sci 154 Amanuel Shetaye and Avari Wang

    Web page

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

    Ed: Bulletin Board

    We will use the Ed discussion board that is in our Canvas 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)

    NOTE: We have a special versions of the book just for our course, and different textbooks for each Lecture section of CompSci 101. See below how to get the VERSION of the textbook for your Lecture section.
    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 Canvas based on the reading and/or videos that is due at 10:00am 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 BEFORE 10:00am, 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. 23 at 10am. But you should try to do them on the day they are due so you get used to doing that!

    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, so it is ok to miss a few quizzes.

    There will also be a Canvas quiz for each programming assignment. They will have different deadlines but are intended for you to take before you start programming the assignment to make sure you understand what you are to do.

    Lecture

    Lecture is on Tuesdays and Thursdays (the two lecture sections meet at different times, see above). You must attend the lecture you are assigned to! This lecture will have class participation activities called WOTOs (working together) that involve peer instructions in our textbook that must be completed during lecture.

    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%
    Reading Quizzes (in Canvas) 3%
    Class Participation (WOTOs) 3%
    Apts 15%
    Programming Assignments 15%
    Three Exams(10% each) and Final(24%) 54%

    SDAO Accommodations

    If you get SDAO accommodations (for example extra time on exams), then you must DO BOTH OF THESE:

    1. Fill out the form on this page to let us know you have SDAO accommodations or are working to get SDAO accommodations.

    2. Have your official SDAO letter emailed to Prof. Rodger and Prof. Velasco.

    Exams and Final Exam

    We will calculate your exam score two ways and use the higher score.

    1. We will replace your lowest exam score of the three exams with your final exam score if your final exam score is higher than your lowest exam score.
    2. We will drop your lowest exam score of the three exams and the two remaining exams will count 15% each

    Exams and Final Exam are your own work.

    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. If you miss a final exam then contract your Dean immediately.

    You cannot discuss an exam with anyone until the exam is handed back.

    Your FINAL EXAM is scheduled as a Block exam. Both lecture sections have the final exam on Saturday May 3, 9am-12pm. The room is TBA but will likely be Gross Hall 107.

    Labs on Fridays

    You are required to attend the lab for which you've registered in taking Compsci 101. Each lab UTA takes attendance.

    You will work on the lab with a partner, but each person should submit the lab form. You must submit your lab form by 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 form 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 your three lowest labs, you cannot earn the credit for attending a lab due to any absence, even if your absence is excused.

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

    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:59 pm on the due date. A 24 hour grace period allows you to turn in APTs the next day, with no penalty. Late APTs are not accepted. Keeping up with APTs ensures you understand the topics we are discussing in class.

    Programming Assignments

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

    Everyone gets 4 free 2-day extensions, which can be used on either an APT or an assignment (except the last week). You cannot use more than one extension on a single APT or assignment.

    You must fill out the extension form on the forms tab in order to take the extension. It is best to save them for the second half of the semester if you can.

    Any extension is for 2-days (two days beyond the grace day). For example, if the assignment is due on January 17, the grace day is January 18 and the extension is good til January 20 evening.

    Extensions are also granted for medical reasons (see the Short-term Incapacitation Notification policy), athletes travelings, 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.

    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 and final exam 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 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 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.