Meeting Times

* Section 1: MW 1:15-2:30 in B101 LSRC, the Love Auditorium

Staff

ola Professor Owen Astrachan
  • office: D241, LSRC
  • email: ola AT cs DOT duke DOT edu
  • AIM: ola314159
  • phone: 660-6522
  • office hours: Tuesday 2:30-3:30, Wednesday 3-4, whenever my door is open or by appointment.
apsd Graduate TA Alan Davidson
  • email: apsd AT cs.duke.edu
  • phone: 660-4015
  • office hours: TBA
apsd Graduate TA Alex Dutu
  • email:
  • phone: 660-4003
  • office hours: TBA
  Undergraduate TAs
The Link, lower level 1 of Perkins Library
  • Link is staffed: 7-9pm and 9-11pm, Sunday-Thursday.

Office hours for the teaching assistants in The Link are held near the cluster of chairs between Group Study 7 and Classroom 4 (see this map of the Link).

Labs/Recitations

  1. 6L-01L, Wed 2:50-4:05, Soc Sci 124, Megan theindefiniteintegral AT gmail DOT com

  2. 6L-02L, Wed 4:25-5:40, Old Chem 123 Alan apsd AT cs DOT duke DOT edu

  3. 6L-06L, Thu 1:15-2:30, Old Chem 123 Alan apsd AT cs DOT duke DOT edu

  4. 6L-03L, Thu 2:50-4:05, 103 Allen, Liz lizliang217 AT gmail DOT com

  5. 6L-04L, Thu 4:25-5:40, LSRC A156, Liz lizliang217 AT gmail DOT com

  6. 6L-05L, Fri 2:50-4:05, Soc Sci 124, Alex alexdutu AT cs DOT duke DOT edu

UTA/LINK Office Hours

Office hours for the teaching assistants in The Link are held near the cluster of chairs between Group Study 7 and Classroom 4 (see this map of the Link). You can bring code on your laptop or have it accessible (e.g., via Ambient check-in & check-out) so the TA can access it using another computer.

Day 7pm-9pm 9pm-11pm
Sunday James Pagliuca, Jackie Giusti, Dustin Alin, James Pagliuca, Angie Yu, Morgan Philips
Monday Nick Gordon, Erick Gonzalez
Tuesday
Wednesday
Thursday

Email is the best way to contact the course staff if you have a personal concern. When using email, please put CompSci 6 at the start of your subject line to help ensure that your email gets past our spam filters and is delivered correctly. If you send us an email and do not get a response within 24 hours, we probably did not receive it. In general, you should only email us about administrative aspects of the course; questions about course content are better made using the course discussion board since it is seen by more people.

Texts

This book is available at the Duke bookstore or in an electronic form from the publisher.

Practical Programming Practical Programming: An Introduction to Computer Science Using Python
by Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson

Although time will be given at the beginning of lecture for you to ask questions about the reading, the majority of the lecture will be an extension of the reading, not a summary. You will be expected to be active participants during class time. This makes it vital that you prepare by reading before coming to class.

Software required for the course is available on any campus OIT machine. To facilitate working on your on machine, any software discussed in class is available for download here.

Grading

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- to A+); 80% = B, 70% = C, 60% = D. This scale may go down, but it will not go up. There is no curve. If everyone in the class does poorly on a particular item (test or assignment), we will identify the problem and determine a remedy.

To receive a grade of A or A+ you must exceed expectations. This means you must do everything required extraordinarily well or you must do more than is required and do this well. In other words, to earn an A you must do more than merely meet the requirements, you must go beyond them. In order to earn an A+ you must do most of the optional assignments and exceed expectations in general.

APTs (required/all: 30/70) 10%
labs 10%
quizzes/group-work/written  10%
programming assignments  30%
tests (2)  20%
final exam  20%

APT assignments

APTs are Algorithmic Problem-solving/Programming Testing problems and programs. You will be given a description of a problem and asked to write code to solve it -- testing the code online and ultimately submitting it for grading. We do not grade the quality of the source code, we run it and test it, but we may use the code submitted to lead discussions in class or lab.

APTs will be assigned almost every week. Some will be started or finished during class or lab and others you will do completely on your own. Each problem typically requires you to come up with a plan/algorithm for solving the problem and then implementing your plan by writing code.

APT Submission

All APTs must be turned in on the due date given. You are responsible for ensuring that all files are turned in on time -- no late APTs will be accepted. You will have plenty of opportunities to do extra APTs to make up for busy weeks that you may encounter during the semester. Each APT is worth 10 points, you earn credit depending on how many of the test cases your solution solves correctly.

When you are done with your project and are confident it is satisfactory, you should submit it electronically using the directions available here. You may submit an assignment as many times as necessary, but only the files included in the last submission will be graded. Thus, you should always submit all your project's files -- even if they have not changed since a previous submission. Note, the official time of submission for your project will be the time of your last submission. An assignment will be considered late if your last submission is late, even if your first submission was on time. You may lose points on your assignment if your final submission is incomplete or late.

Programming assignments

Programming assignments are large (compared to APTs), open-ended problems, providing opportunities for you to express some creativity and go beyond the basic specification. For each assignment, you will be expected to complete all of the assignment's basic functionality as well as use good style. Points on these assignments will vary with harder assignments being worth more than previous assignments, and most assignments will get harder as the semester progresses (harder means takes more time, requires more thought).

Labs

Labs are meant to reinforce material pertinent to the current assignments and APTs and to go more deeply into topics as warranted. Your lab grade will be based on work done in teams of three or four assigned during lab. Labs will be graded on a 0, 1, 2, or 4 point basis (absent, present, effort, good).

Each team must submit the lab work by the end of the period, thus lab work cannot be made up after the fact. At least one person from each team must bring a laptop to lab each week.

Turning Work in Late

All projects must be submitted electronically according to the directions given here by the end of the day given as the due date. As much as possible, we will try to make assignments due on Thursday.

Assignments turned in on time receive no penalty. Assignments turned in by the Sunday after they are due incur a 10% penalty, and by the next Sunday incur a 50% penalty. Due to the pace of the course, assignments will not be accepted after this second late deadline has passed from the due date. You cannot make up an in-class or lab assignment or turn in late APT programs. Keeping up with these small projects ensures you understand the topics we are currently discussing in class. Opportunities will be provided to do extra projects so that if you miss a small number of these your grade will not be affected. However, frequent absences from class or lab will affect your grade.

If you find yourself not turning work in, please talk to one of the course staff immediately. It is important that you do not get behind in this class, its pace is too fast to allow you fall behind. The secret to successfully surviving this course is to start early and work steadily; it is not possible to cram or skim in Computer Science classes. If you are having trouble, be sure to talk to your professor as far before the due date as possible. Don't give up, ask for help. Don't give up, ask for help. Don't give up, ask for help.

Individual extensions will be granted only for medical reasons (see the Short-term Illness Notification policy) or other circumstances beyond your control that must be presented with an official Dean's excuse. Extensions will not be granted after an assignment is due, you must request an extension well before an assignment is due.

If you have personal reasons to ask for an extension, and you do so at least a week in advance, it is possible to get one, so please ask.

Collaboration Policy

In accordance with the Duke Community Standard, we encourage proper collaboration, in which all parties equally participate, on programming projects and labs. Exams taken online or in-class must be your own work; you should not collaborate on them at all. This means you do not talk to anyone or look up anything on the web unless you are given instructions otherwise. You can always use notes and the book for quizzes and exams. Studying together is always encouraged, especially when preparing for exams. At other times you may be assigned to work in a group, in which there will be only one submission for the entire group that represents your collective effort.

You are responsible for understanding all work you turn in. For any given assignment, an interview may be included as part of the graded work. During the interview, you may be asked to explain the problem solving process and individual lines of code not given as part of the assignment. Turning in code that you cannot explain is considered cheating.

You may consult with the course staff about any aspect of the course. On programming projects you may consult with other students only in a general way, e.g., about debugging, programming concepts, or questions about wording on the assignment. You cannot actively work with someone else unless the assignment specifically grants permission for you to do so. It is never acceptable to directly show one another your program code or write one program among a group and submit multiple copies. Finally, it is unacceptable to search for direct answers to problems on the Internet.

Consult means you can discuss programs in a general way before writing code or get help with debugging your program, but you must write your own code and do your own thinking about the problem. For each assignment you are expected to include a list of the people with whom you have consulted (including any other students and course staff) or that have talked to you in the README file you submit with the assignment. You should also cite any resources other than class materials you use (e.g. web pages, notes from other courses at other universities, etc.). This file is required and failure to provide it will result in rejection of the assignment as complete.

If you are not sure what the collaboration policy is for a given assignment, please ask!

Exams

Tests will be held during the lecture time and in the same room as your section. The final will also be in the same room as your section. See the syllabus page for dates and times.

The tests are open book/notes. The final is open book/notes. This does not mean you should rely heavily on books or notes because we do not want you to spend precious time looking up answers when a test is only roughly an hour long.

These exam dates are given at the beginning of the semester to avoid any scheduling conflicts. Exams and quizzes can only be made up if: you let the professor know before the date of the exam or quiz why it will be missed, the professor agrees that the conflict cannot be avoided, and you arrange to make up the exam either before the exam date or as soon as possible afterwards.

Feedback

The Computer Science department at Duke University aims to excel in education and research. To ensure that our courses fulfill student needs and expectations, you can submit comments about this course anonymously or use the Suggestion Box icon at the bottom of each page. These comments will be read by the Director of Undergraduate Studies for Teaching and Learning in addition to the professors teaching the course. Our goal is to adapt the subject and delivery of our courses to meet student needs while maintaining our high standards.