See here for the official course syllabus. Some highlights are summarized below.

Class Expectations

The central expectation of the course is that students and instructors adhere to the Reasonable Person Principle.

Students should attend lectures and try to answer any questions either during Q&A periods of lecture or by coming to office hours. Solving the course projects will almost certainly require students to come to office hours. If a student cannot attend posted office hours, appointments can be made with the instructors. However, the instructors will not answer questions via email.

AI and Collaboration Policies

There is no group collaboration in this course. Students should submit their own work for both course projects and the midterm and final exams. Plagiarism will not be tolerated, and the UNC honor code will be enforced. These rules extend to sharing or publishing of solutions before, during, or after the course. Releasing your solutions in any form is an honor code violation. Additionally, because this course is based on open source course materials, releasing your solutions is harmful to CS Academic community beyond UNC. Please be a good citizen of the larger CS community.

Instructors/TAs/LAs will help students with high level advice on projects and will assist students in learning how to use tools to debug their code. However, instructors will not debug student code. Similarly, students shall not give or receive debugging help from other students. Discussions should be conceptual in nature, not focused on debugging specific issues.

The use of generative AI in this course is (i) probably inevitable (ii) permissible, if used responsibly. The permissible uses fall broadly into two categories. First, students may use generative AI to answer high-level questions. For example “What is the default storage layout in postgres?”. Second, use of AI-based coding assistance is permissible subject to the following condition.

In all cases, students will be held to the following standard regarding generative AI, collaboration, or other outside sources: Students are responsible for ensuring that submitted work is not copied from publicly or privately available materials. Submitting copies of existing work is an honor code violation.

As a word of advice, current AI coding assistants are now quite good, but may not immediately solve all problems in this course. If you generate a lot of code without understanding what it does, you will ultimately struggle to debug your program. Remember, instructors will not help you debug your code, make sure you are developing an understanding of your code as you work.

The above policies do not apply to the midterm or final exams. Both exams will be completed without the use of any computing device. The use of AI or any computing device during the completion of an exam is an honor code violation.

Grading

The plan is to have five projects and two code reviews. These weightings are subject to change.

Project 0: 5%

Project 1: 10%

Project 2: 10%

Project 3: 10%

Project 4: 10%

Code Review 1: 7.5%

Code Review 2: 7.5%

Midterm exam: 15%

Final exam: 20%

Participation: 5%

Late Policy

Students will receive 4 late days to use at their discretion. Late days can be used for any project besides project 0. Outside of this late day policy, no late work will be accepted without a university-approved excuse.