An instructionally-designed, open-source introductory Python curriculum for university settings
In our typical section, we have a team of Teaching Assistants. These assistants are critical for managing the scale of the class, and help in a number of ways. Although TAs can be both graduates and undergraduates, we have found great success using undergraduate TAs.
The most important role for the course staff is to attend lecture and assist students working on classwork problems. Not all students come to office hours when they need help - students almost always come to lecture.
TA training can be essential for helping teaching assistants. It is important to help students arrive at answers themselves, rather than simply giving out solutions. Refer to the TA training material for suggestions on how to prepare TAs to be effective in supporting learners.
Teaching assistants are required to host office hours. We usually schedule 4-5 hours per TA. Coordinate office hours so that most hours are covered, but be open to moving them later in the semester after “hot” hours are determined. You can use a tool like: https://www.when2meet.com/
The course staff meets once a week to discuss what has gone wrong/well, and what is coming. During this time, we also provide training on how to be an effective TA.
Organizing this once-a-week meeting is very difficult. You can use a tool like: https://www.when2meet.com/, but you must also keep in mind that you’ll need a room to meet in. Some TA groups will arrange multiple meetings in order to ensure that everyone can make it.
A course Piazza is available to give students help outside of the regular class time. Students are not allowed to publicly post code solutions - they must do so privately to instructors (this can be difficult to convey to students, and problematic to enforce). When posting code, students should be required to do so correctly (i.e. proper formating, as text instead of as an image) or they will not be helped. In general, course staff should follow the same guidelines they use in helping students during office hour.
TAs should be given time each week to try out the material and be prepared to work with students. This is particularly important for new assignments, before they are given to students.
Most of the course is auto-graded, however some assignments are meant to be graded by a human. There are three types of such assignments:
Quick verification: These types of assignments require a mechanical kind of checking - they could almost be done by a computer, but specialized software would be required. Both the IDE Installation and Turtle Art Project fall under this category. The rubrics for these activities are sometimes a set of binary categories: they either completed an aspect or not (e.g., submitted a screenshot of their artwork or did not).
Ethics Write-ups: Writing activities, such as the Ethics assignments, require a human to grade. These have a provided rubric that is described below.
Code Style: Coding activities with less structure, such as the projects, require a human to handle the grading. Rubrics for each of the projects are explained in their requisite section.
TAs should be given feedback on their grading, and activities should be planned to help them align their grading with each other. Rubrics are helpful in guiding the TAs’ grading, and are available for most activities.
Grading code style
The ethics assignment rubric has 4 levels across 5 components. The levels are assigned points carefully to ensure certain grade outcomes:
Level | Points | Grade |
---|---|---|
Full Marks | 1 | A |
Adequate | .85 | B |
Inadequate | .7 | C |
Missing | 0 | F |
The components are divided as such:
Component | Description |
---|---|
Summarize the Situation | Summarization accurately captures the most important point or points about the situation to clearly lay out the impacts of the ethical issues on society |
Take a Clear Stance | The stance is clearly identified. Depending on the type of ethical situation, this could involve either disagreement or agreement with a decision, or a recommendation for a particular outcome or actions. |
Write a Coherent Argument | The argument should be logically and clearly laid out, without unwarranted conclusions. |
Reference an Ethical Theory | An explicit, named reference to an ethical theory (e.g., Justice, Utilitarianism) or a guideline from a relevant, well-established computing organization (i.e. ACM or IEEE) is given as context for the argument and explained concisely, clearly, and correctly. |
Use Proper Grammar, Spelling, and Punctuation | No grammar, spelling, or punctuation mistakes are made that impact the readability of the post. |
Graders can refer to the Ethics Guidelines for more information about how to interpret the components at different levels.