CompSci 101, Fall 2015
Syllabus

Professor: Susan Rodger

  • Office: LSRC D237
  • Office Hours: Mon 1-2pm, Tues 4-5pm
    (You can also come by anytime for a quick question)
  • Email:
  • Phone: 660-6595

Professor: Owen Astrachan

  • Office: LSRC D241
  • Office Hours: Wed 1-2pm, Thurs 9-10am
    (You can also come by anytime for a quick question)
  • Email: ola@cs.duke.edu
  • Phone: 660-6522

Graduate TA: Amir Rahimzadeh Ilkhechi

  • Office: LSRC D341
  • Office Hours:
    Wednesday 3-4:30 PM
    Friday 3-4:30 PM
  • Email: ilkhechi AT cs.duke.edu
  • Oversees: Assignment and APT grading
  • Phone: 660-6554

Graduate TA: Sriram Vepuri

  • Office: LSRC D104
  • Office Hours:
    Tuesday 3-4pm in LSRC D309
    Thursday 3-5pm in LSRC D301
  • Email: vv23 AT duke.edu
  • Phone: 660-6504
  • Oversees: Labs/Lecture grading

HEAD Undergraduate TAs (UTAs)

All Undergraduate TAs (UTAs)

See pictures of the UTAs here.

  • Monica Arniella
  • Aamir Azhar, Head UTA
  • Jihane Bettahi
  • Alex Boldt
  • Obezimnaka Boms
  • Jordan Burton
  • Bradley Cahn
  • Michelle Chen
  • Minqian Chen
  • James Cho, Head UTA
  • Monica Choe
  • Grant Costa
  • Larissa Cox
  • Sharon Fang
  • Austin Gartside
  • Julie Hong
  • Kelsey Hopkins
  • Sean Hudson
  • Eric Jiang
  • Xiawei Jin
  • Sung-Hoon Kim, Head UTA
  • Stephen Kwok
  • Karen Li
  • Zachary Lim
  • Daniel McKee
  • Samantha McLendon
  • Brynn McGovern
  • Tara Nagar
  • Ademola Olayinka
  • Hank Olken
  • Alex Park
  • Sophie Polson
  • Rhondu Smithwick
  • Sean Snider
  • Haley Sullivan
  • Anna Sun
  • Carine Torres
  • Colette Torres
  • Anh Trinh
  • David Yan
  • Jennifer Zhou

Course Meeting Time

Lecture:

Section/Time Location UTAs
SEC 001 (Rodger):
Tuesday and Thursday
White Lecture 107
10:05am-11:20am
Kelsey Hopkins
Aamir Azhar
SEC 002 (Astrachan):
Tuesday and Thursday
LSRC B101
1:25pm-2:40pm
Sophie Polson
Ademola Olayinka



Lab Sections:

Section Time Room UTAs
01 Wed 1:25-2:40pm BioSci 130 Jihane Bettahi, Monica Arniella
02 Wed 1:25-2:40pm LSRC A156 Alex Park, Hank Olken
03 Wed 3:05-4:20pm Old Chem 025 Jennifer Zhou, Monica Choe
04 Wed 3:05-4:20pm LSRC A155 Anh Trinh, Sung-Hoon Kim
05 Wed 4:40-5:55pm Gross Hall 104 Obezimnaka Boms, Sean Hudson
06 Wed 4:40-5:55pm French Science 2237 Rhondu Smithwick, Sean Snider
07 Thu 3:05-4:20pm Old Chem 123 Anna Sun, Colette Torres
08 Thu 3:05-4:20pm Bio Sci 113 Carine Torres, David Yan
09 Thu 4:40-5:55pm Allen 326 Austin Gartside, Sophie Polson
10 Thu 4:40-5:55pm LSRC A247 Larissa Cox, Tara Nagar
11 Wed 11:45am-1:00pm LSRC A156 Ademola Olayinka, Alex Boldt
12 Wed 11:45am-1:00pm Gross Hall 104 Bradley Cahn, Grant Costa
13 Wed 3:05-4:20pm Soc Psy 128 Daniel McKee, Samantha McLendon
14 Wed 4:40-5:55pm LSRC A156 Brynn McGovern, Michelle Chen

You should be signed up for one lab. Labs are on Wednesdays and Thursdays. Labs start August 26, 2015.

Web page

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

Bulletin Board

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!

Text (Required)

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

How to get the book:

Reading/Reading Quizzes

You will be assigned reading from How to Think Like a Computer Scientist. Readings 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 either reading or knowledge quizzes on Sakai due at 10am on the day of lecture. These reading quizzes will be listed on the course website if there is one due. Quizzes on Sakai must be completed by 10AM on the day of lecture, you will not be able to complete them after 10:00 AM on the day they are due. You cannot makeup missed quizzes!

Topics, Readings and Exam Dates are down below.

Lecture and Classwork

In each class the active lecture is designed to provide important and useful information that will allow you to learn concepts and complete the assignments that you are working on (APTs and programming assignments). Class typically includes questions that you may complete individually or in groups, this class work contributes to your final grade, but more importantly being an active participant in class will help foster community in class as well as help you learn and master the concepts related to programming and computer science. Bring a laptop to class if you have one.

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 (A+,A,A-); 80% = B range, 70% = C range, 60% = D. This scale may go down, i.e., we could make the A- cut off at 88%. However, the scale will not go up. So if everyone gets 90% or above, then everyone will get an A- or above (this has not happened at Duke, but could!)

You cannot earn a grade above A- without earning a grade of 85% or above on the final exam.

Labs 10%
Reading Quizzes 5%
Class/Group work 5%
Apts 10%
Apt Quizzes 10%
Programming Assignments 15%
Two Midterm Exams 20%
final exam 25%

The tests and final exam will be closed-book.

FINAL EXAMS:

Labs

You are required to attend the lab for which you've registered in taking Compsci 101. You will typically work with a partner or in a group during lab. You will submit lab work electronically. Please bring a laptop to lab if you have one.

You will submit the lab work, either alone or as part of a pair/group as dictated by the lab. You must submit your work by Sunday 11:59pm of that week.

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 of that week 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.

You will work in groups of two or three during lab. At least one person from each group must bring a laptop to lab each week. When working in a pair/group you must be present and an active participant in the lab for your name to be included in submitting lab work. Your lab work will be graded on a 4 point scale and based on how complete the answers are: complete and well done, reasonable effort but not well done/not complete, minimally complete, not done. If you are not in lab, but complete the lab on your own, you can earn three out of the four points, i.e., one point is for attending the lab and working there.

Collaboration on Programming Assignments and Tests/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 tests, final exam and APT quizzes must be your own work, you may not collaborate in completing these.

In working on and completing programming assignments and APTs you may collaborate and you may use online resources. However, we have designed the APT quizzes and the course midterms and final so that doing assignments and APTs largely on your own will help you do well on the work that must be done individually. 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 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.

README form

When you complete a set of APTs or a programming assignment you must turn in a README 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 README when you turn in these assignments is required, and your assignment will not be considered as complete and on-time unless the README form is turned in on-time.

Individual Work Reflected in Performance

We will design tests 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.

Late Policy: Assignments and APTs

Assignments and APTs are typically due on Tuesdays or Thursdays. To be considered ontime, submission must be received by 2:00 AM of the next day, so that you have two hours after midnight on the day the assignment is due for it to be considered as turned in ontime.

Assignments received up to one-day late will receive a 10% penalty. Assignments turned in up-to one week late will receive a 30% penalty. No assignments are accepted after one week. STINFs and excused absences can effect the one day late penalty and provide three days of no penalty, after that the 30% penalty will be applied. You must fill out the google form on the forms page to receive the three days of no penalty.

Web Sites This Course uses

We will use several course web sites for this course.

Topics, Readings, Exam Dates

Dates Topic
August 24-28: General Introduction to Computer Science and Programming
Aug 31 - Sept 4: Python types, functions, Turtle Graphics
Sept 7-Sept 11: Functions, Strings, Loops, Conditionals
Sept 14-Sept 18: Functions, Selection, Strings, Lists
Sept 21-Sept 25: Files, Lists, Strings, Loops, Data
September 21 APT Quiz
Sept 28-Oct 2: Review of material
October 1 Midterm Exam I
Oct 5-Oct 9: Lists, Sets, List Comprehensions
Oct 12-Oct 16: Lists and List Comprehensions
Fall Break, No Lab
Oct 19-Oct 23: Tuples, Images, Two-Dimensional Structures
Oct 26-Oct 30: Dictionaries
October 26 APT Quiz
Nov 2-Nov 6: Dictionaries
Nov 9-Nov 13: Review of Material
November 9 APT Quiz
November 12 Midterm Exam II
Nov 16-Nov 20: Modules, Libraries, Scaling Concepts
Nov 22-Nov 26: Review
November 23 APT Quiz
Thanksgiving, No lab
Nov 29-Dec 3: Review and Preview of Computer Science
Dec 9 (Astrachan)
Dec 13 (Rodger)
Final Exams