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.

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 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.

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 in some cases. 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, limited 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 substantially similar to existing publicly or privately available materials. Submitting work that is substantially similar to existing work is an honor code violation. In particular, students use generative AI tools at their own risk.

As a word of advice, current AI coding assistants are now good enough to generate a lot of code, very quickly, that may do approximately what you ask for. However, the assignments in this class are generally complex enough that generated solutions are unlikely to work immediately. 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, so you are only hurting yourself by doing this.

Finally, 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 initial plan is to have 4 projects. If things go really well, there might be time for an additional project, in which case the below percentages may change.

Project 0: 10%

Project 1: 20%

Project 2: 20%

Project 3: 20%

Midterm exam: 10%

Final exam: 15%

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.