Code of Conduct
Create code of conduct as a team.
Overview
Computer science educators have been putting a lot of fo- cus on building diversity and inclusivity in the classroom. Facilitating a process for creating a supportive, safe and pro- ductive learning environment can aid in this effort. In this assignment, all members of the classroom environment, in- cluding students, instructors, and teaching assistants, work together to develop community guidelines. This assignment also allows students to gain experience with GitFlow prac- tices and teamwork, while they are creating a code of conduct document to govern the course interactions throughout the duration of the course. This assignment is to be given in the first or second week of the semester to ensure there is a community-built course code of conduct that provides students with a concrete guide on ethical interactions and behaviors that enhance the inclusive classroom environment. The assignment is targeted toward the Software Engineer- ing course but can be adopted for most computer science course. Starter code of conduct templates for various types of courses are included. Students are given a Markdown tem- plate with specific categories of conduct listed and, while working in small teams, they are required to complete the code of conduct as a whole class. Each team starts with a spe- cific category of the conduct, creates one or more branches, makes commits to their branch, and when finished with their category of conduct, submits the pull request and participates in the review process to see that their branch is merged into the main document. All teams are also required to review all categories of conduct via the Git review process and suggest modifications and improvements to code of conduct through- out the review process, and all class members are required to make contributions in the way of commits. Once there is a completed code of conduct guide, the class members should commit to uphold it. Giving opportunities to review and edit this guide throughout the semester, provides nice reminders to class members about the conduct they agreed to follow.
Recommendations
This assignment is well-situated for the Software Engineering course, where the goal is to teach development of sustainable software while working in a team. Sustainable software is a software that is easy to modify and maintain with qualities such as verifiability, maintainability and reusability. Since version controls tracks changes across time and people, it allows engineers to react to valuable changes and modify software with confidence. This assignment is typically given after a class lesson on version control and gitflow demonstration by the instructor. It also assumes that students have some experience using Git and Markdown. However, the assignment can be modified to be used in other courses where knowledge of git practices or Makrdown might be useful. The template code of conduct provided to students can be modified based on the level and the type of the course. Also, assignment can be modified to eliminate the focus from software engineering concepts by using the instruction sheet that contains specific steps for gitflow process and does not assume prior knowledge.