Course Syllabus¶
Evaluation¶
- Participation: 20%
- Assignments: 40%
- Midterm Project: 20%
- Final Project: 20%
Late Assignment Policy¶
All assignments are due at 12:00pm on the day listed. Each team gets 7 late days which can be used to turn in homework late without penalty. These 7 late days are for the entire semester.
One late day is measured as a 24 hour period after the supposed deadline. It is the student's responsibility to submit his/her homework online. If late days are used, please write at the head of your homework ReadME.md file in the format: XX late days used for this homework, and XX days remained.
Once you run out of late days, late submissions are penalized 25% per day. (For example, a homework turned in two days late will receive only 50% credit.) More importantly, we will not grant additional late days once you have used up all 7 late days.
No matter the late days are run out or not, submission more than five days late receive a grade of 0, but they must still be completed and turned in regardless. If a student ends the semester not having handed in a homework assignment, he/she is in risk of receiving a final grade of D or F for the semester regardless of their performance on other components of the course.
If you commit multiple versions, we will only grade the last commit on Github within the 5 days maximum extension and take your late days based the time stamp of the last submission as well. It is your own responsibility to keep track of how many late days you used. But we will follow the time stamp on Github as the criteria.
Class Participation¶
Class participation will be graded based on three parts:
- Classroom discussions and questions asked in the courses.
- The approved pull requests in the course website repository.
- Discussions and questions asked in the Github Classroom.
- One-minute summary on the Github Discussion. You need to summarize the content and confusions in each class, which is submitted via the Github Discussion. The summary just goes in the textbox once you begin the assignment.
Students are expected to behave professionally at all times, with courtesy towards other students, the TAs, and the instructor.
Group Work¶
During class, we will have breakout groups for homework and project through the semester. In principle, each group should have 3-4 students. The group work is designed to:
- Learning to code alone is frustrating.
- Learn from each other.
- Learn how to work in a team.
Generative AI Tools Policy¶
We allow and encourage you to use ChatGPT and other generative AI tools for the homework and project. In fact, this course is designed to help you understand how these tools work. You can try to use GPTZero Detector to check if the current technology can detect the use of AI. However, do not worry, we will not use this tool to check your homework and project.
Github Classroom¶
The homework and project will be assigned through Github Classroom. Refer to the Appendix for more details.
All the course materials are hosted on Github Classroom. The course canvas site is only for posting the grades.
Homework Submission Guidelines¶
Here are the general guidelines for the homework submission. We will specify the specific requirements for each homework in the homework repository in Github Classroom.
- Each homework should be submitted as a single repository. See Appendix for instructions.
- In the repository, you should have a README.md file to present your code as a tutorial of how to reproducibly use your code. The README.md file should at least include the following sections:
- Introduction: Briefly describe the purpose of the repository.
- Installation: How to set up your code. For example, from
git clone
to installing the dependencies. Make sure users can run your code and reproduce the results in the next usage step after they follow your installation instructions. - Usage: Provide a sample usage of your code with the expected output. You may need to have test input cases to show the expected output. You can also use images and gifs to illustrate the usage or the output if necessary.
- Report: Report other information that is required by the homework.
- Contributions: How each group member contributes to the project.
- The repository should have all the necessary code and files to replicate the installation and usage in your README.md file.
- Each team only needs to submit one repository. We will grade your homework based on the repository and all the team members' will receive the same grade.