Published using Google Docs
CS 201 Spring 2021 Syllabus
Updated automatically every 5 minutes

CS201 Spring 2021 Syllabus

Course Information

Basic Information

Description

Course Goals

Prerequisites

Format of the class

Calendar and Schedule of Topics Topics

What you will do

Projects

Mini-Exams

Final Exam

APTs

APT Quizzes

Discussion

Video Quizzes

Peer Instructions

Time Commitment

Grading

Late Policy (3 3's!)

Extensions

Resources for Learning

Duke Academic Resource Center

Zybook (Online Textbook)

Discussion and Helper Hours

Software Used in Compsci 201


Course Information

Course Website: https://sites.duke.edu/cs201s2021/ 

Basic Information

Description

In this course, you will learn how to analyze, use, and design data structures and algorithms in an object-oriented language (Java) to solve computational problems. Emphasis on abstraction including interfaces and abstract data types for lists, trees, sets, tables/maps, and graphs. Implementation and evaluation of programming techniques including recursion. Intuitive and rigorous analysis of algorithms.

Course Goals

At the end of the course, students should be able to:

Prerequisites

You should have introductory programming experience at the level of Computer Science 101, Engineering 103L, or equivalent. Prior experience specifically with the Java programming language is helpful but not necessary.

Format of the class

Compsci 201 will be offered in a new format this semester, one we hope might, could, and will continue even in a post-Covid era. Most of the content for understanding will be delivered via short videos you'll be asked to watch before each class. The class time will be spent reviewing that material and going over problems that you'll be working on relating to that material.

Whether registered for the synchronous or asynchronous section, all students are strongly encouraged, but not required, to attend class synchronously over zoom Monday and Wednesdays 1:45-3:00 pm EST. However, watching these synchronous classes is required as not all content is in the pre-recorded videos. Recordings of the synchronous classes will be made available shortly after class; you should plan to finish watching them by 11:59PM the next day. Further, synchronous participation in Friday’s synchronous discussion sections is mandatory for all students, regardless of whether their lecture section is synchronous or asynchronous.

We may adjust how the class works in response to feedback from students, TAs, and those who are helping to deliver course content at Duke. We are very, very excited to bring you a wonderful learning experience.

Calendar and Schedule of Topics Topics

The official course calendar is maintained on the course website at https://sites.duke.edu/cs201s2021/schedule/.

The calendar includes the schedule of topics, links to videos, discussion documents, project directions, etc., and maintains the due dates for work in the class. The calendar is tentative and subject to change over the course of the semester.

What you will do

In Compsci 201, you will demonstrate your understanding and mastery of concepts by completing several different kinds of artifacts. These include:

Projects

These are programming projects that will require several hours to complete, with later projects requiring more time to understand and complete. There are eight of these, the projects at the end of the semester will take longer and be worth more than projects at the beginning of the semester. You may discuss the assignment and strategies to solve it with other students, but the programs you write and the written answers to questions you submit should be your own. As a general rule of thumb, if you would not be able to explain or reproduce your code on your own, you should not submit it as your own work.

Each project requires developing code and answering questions about the assignment. You'll submit using Git and Gradescope and an autograder will determine whether your code passes a suite of tests for each assignment. The written questions are called the project's analysis and will be graded by teaching assistants for the course.

Mini-Exams

Instead of traditional midterm exams, we have several mini-exams (MEs) roughly every two weeks. Each is 45 minutes long on specific topics. In general, mini-exams ask to reason about algorithms and data structures especially from code or for specific problems. Mini-exams will all be online through Gradescope. You will typically have a window between 2:15 pm and 11:59 pm EST to begin the mini-exam. We will have a practice and a retake opportunity for every mini-exam. You may take the retake for any reason, such as couldn’t take the first one, had technical difficulties, are not satisfied with your score, etc. We will take the higher of the two scores between the original mini-exam and its retake. There is no retake for the retake.

Final Exam

We will have a comprehensive final exam, likely consisting of a multiple choice portion followed by a short response portion. Topics and questions will be similar to those from the mini-exams but comprehensive in scope. As with the mini-exams, the final will take place all online on Gradescope. Our final exam is scheduled for 2-5 pm EST on Saturday, May 1, 2021.

APTs

An APT is an Algorithmic Problem-Solving and Testing program you write. Typically you'll write one method, perhaps with some helper methods, to solve the problem. Testing is online and automated. Sets of problems are due roughly every 2 weeks. In general we will do some of these in class and discussion and you'll do some on your own. As with projects, you may discuss the problems and strategies to solve them with other students, but you should write the programs yourself.

APT Quizzes

There are two APT quizzes. For each quiz you will have two sets of two APT problems each. For each set you will have 75 minutes from when you begin the set. You will have a window of at least two days in which you may complete the sets; you can take them back to back (2.5 hours total) or separately in either order as is most convenient for you. You must complete this on your own without speaking to anyone. You may use online resources including official Java Documentation, Google, StackOverflow, etc; though these should be used to understand Java and likely won't be helpful in solving the problems. You may use your class notes.  We will run similarity detection software on students submissions as part of determining that your work is your own.

Discussion

Discussion sections meet on Friday and will have a series of problems/questions to work through in small groups with other students and with teaching assistants available to guide and help. Synchronous attendance at discussion is mandatory for all students, as everyone registered for a synchronous discussion section. In addition, there will be a discussion reflect form that asks you to respond to the questions for that day. All students (synchronous or asynchronous) must complete the reflect form the Monday following discussion in order to receive credit. You may miss up to 3 discussions with no penalty, but we do not grant any further exceptions barring exceptional circumstances. These three no-penalty misses do not require an official excuse, such as a STINF, but it is polite to inform your section TAs of your absence in advance if possible.

Also, you are generally required to attend the section to which you are assigned. If you have a one-time conflict, you may attend a different section, but you must inform the TAs of both sections in advance in order to get credit.

Video Quizzes

You will be asked to view videos introducing content before most classes. Videos will be accompanied by short multiple choice questions to gauge understanding. You must complete these before class in order to receive credit. Questions will be graded for correctness, but you can attempt the questions three times and any score of 75% or greater will be awarded full credit.

Peer Instructions

During class we will typically have one or two peer instructions. Generally, you will be given a set of short multiple choice questions/problems on the day’s topic and asked to answer them first individually and then discuss answers with peers. These are graded just for completion. They are due at 11:59pm the day after they are used (this gives you ≈33 hours to watch the video and answer the questions). This deadline applies even if the form is still open since the forms collect timestamps. You only need to get 75% of the points over the semester to be awarded full credit for this category.

Time Commitment

How much time will it take to learn the material and get work done in Compsci 201? Each week you should plan on the following. These are general guidelines, but you can see that with class, discussion, APTs, and projects that you will likely need to allocate roughly 10-12 hours a week.

Hours

Videos/Reading

2.50

Class

2.50

Discussion

1.25

APTs

(Varies) 1.50

Project

(Varies) 2.00 - 4.00

MinE (every 2 weeks)

0.75

Total

~10.00 – 12.00

Grading

The table below provides a quick overview of each aspect of Compsci 201 that contributes to your final grade. The section that follows elaborates on each category/row.

Projects (8 total)

25%

Mini-Exams (6 total)

25%

APT Quizzes (2 total)

14%

Final Exam

10%

APTs (6 total)

10%

Discussion

10%

Video Quizzes

3%

Peer Instructions

3%

Grading is done on an absolute, but adjustable scale. 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% or more guarantees a grade in the B range, 70% or more guarantees a grade in the C range, 60% or more guarantees a grade in the D range.

Late Policy (3 3s!)

The course needs to fit into a reasonable timeframe and cadence for learning, work, and feedback. For this reason, we have due dates. However, we care more about what you have learned than when you learn it, and we understand that things happen in life outside of the course. For that reason, we have a very generous late policy. For Projects and APTs we will penalize the total assignment grade by 3% per day late up to 3 days, after which we will no longer accept late work. These late days with penalty do not require an official excuse, such as a STINF, but if you have an exceptional circumstance arise you may fill out the form below to request an extension.

Everything else (Discussion Reflects, Video Quizzes, Peer Instructions, Mini-Exams, the Final Exam, and APT Quizzes) are not included in this late policy. These assessments must all be completed by their due dates, though in the case of Mini-Exams, there is also a retake opportunity.

Extensions

If you need an extension on a project or APT set, you can request one using our extensions request form.

Resources for Learning

Duke Academic Resource Center

The Academic Resource Center (ARC) offers free services to all students during their undergraduate careers at Duke.  Services include Learning Consultations, Peer Tutoring, Learning Communities, ADHD/LD Coaching, Outreach Workshops, GRE/MCAT Prep, Study Connect, and more. Because learning is a process unique to every individual, ARC works with each student to discover and develop their own academic strategy for success at Duke. Contact the ARC to schedule an appointment. Undergraduates in any year, studying any discipline can benefit! arc.duke.edu • theARC@duke.edu • 919-684-5917, 211 Academic Advising Center Building, East Campus – behind Marketplace.

Zybook (Online Textbook)

We recommend (strongly for students who have never programmed in Java before) the online textbook that will cost $49 for the term.

1. Sign in or create an account at https://learn.zybooks.com and create an account

2. Enter zyBook code: DUKECOMPSCI201Spring2021

3. Subscribe, you'll need a credit card to pay/subscribe.

Discussion and Helper Hours

Discussion: TBA

See the help page on the website for details on helper hours. 

Software Used in Compsci 201

This document describes how to install the Java JDK, the Intellij IDE we use for developing code, and Git which we use for version control. You'll need Java and Intellij for APTs, and soon Git for Projects.

This document covers more information on using IntelliJ, Gradescope, and Git. This document has some troubleshooting faqs for the same tools.