Overview

There are three types of programming in Compsci 201: Projects, APTs, and Diyad programming. Each is described below.

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. These are due roughly each week on Thursday. For Fall 2024, four APTs are due for each set and late APT submissions are not accepted. The challenge and extra APTs are optional. In general, we will do some of these in class and discussion and you’ll do some on your own. You may collaborate with others (per course policies), but you should be able to write the code/solutions on your own since you’ll need to do that for APT quizzes and for job interviews if you pursue that opportunity.

You can find all APTs via this netid-authenticated link.

For those outside of Duke, you can see the problems via this link, but you will not be able to submit work for grading.

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. Assignments will be weighted, those at the end of the semester will have more weight. The first two assignments will carry a weight of 1.0, the next three 2.0, and the last three 3.0. 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 (see use of ChatGPT and other LLMs in the course syllabus). 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. Questions from projects may be part of the midterm and final and will be part of discussion sections.

Individual extensions will be granted for medical reasons (see the Incapacitation form) or other circumstances beyond your control that must be presented with an official Dean’s excuse or by talking to the instructors. We do not grant extensions after an assignment is due.

Projects are due on Monday. You’ll submit using Git and Gradescope and an autograder will determine whether your code passes a suite of tests for each assignment. In general passing 85% of the tests will result in full credit for the assignment. Because projects/assignments are due every week at the beginning of the semester, it is difficult to catch up by turning in an assignment late. Projects turned in up to 24 hours late receive no penalty. After that a late submission loses 10% a day (weekend is one day). Projects are not accepted after one week.

Each project requires developing code and answering questions about the assignment. These questions are called the project’s analysis. Again, you may discuss the analysis questions, but your write-up should be your own.

Diyad programming

Information coming soon.