What can be done to make admin of degree projects easier
I have created a number of programs to help make the administration of a degree project via the Canvas course room easier.
The assumption is that there is a Canvas course room (i.e., a Canvas course) for one or more degree project courses. It is also assumed that the students are added to sections in this course and that the section name includes the KTH course code, such as IA150X. It is also assumed that all of the examiners are added to this Canvas course room. Ideally, the KTH academic supervisors should also be in the Canvas course room as teachers.
Keeping additional notes
The program insert-column.py creates custom columns that can store short text strings. For example, you might use this for Tentative_title, Program, etc. The program can be found at https://github.com/gqmaguirejr/Canvas-tools Links to an external site..
Using sections to help reduce the workload on Examiners, Supervisors, etc.
By creating sections for each teacher and examiner in the Canvas course, a teacher/examiner can easily view just "their" section in the Canvas gradebook.
There is a program to create sections in a course based upon the teachers in the course: create_sections_for_teachers-in-course.py - it can be found at https://github.com/gqmaguirejr/Canvas-tools Links to an external site..
You will need to create a config.json file with the Canvas token in it, see https://canvas.kth.se/courses/11/pages/making-a-config-dot-json-file-to-make-life-simpler
Creating sections and adding people to the sections requires that you be a Canvas administrator for the EECS/.../ account in Canvas.
Administrative assignments
Useful information to have in the grade book includes who is the examiner and supervisor for a student and what course code is relevant for this student. To keep this information and make it readily available in the Canvas grade book, one can make an "administrative assignment", these assignments have letter grades from carefully constructed grading scales consisting of the sortable names of the examiners, supervisors, and sorted list of course codes.
The program insert_teachers_grading_standard.py creates a grading standard for examiners (the command line option "-e" ) and another for the teachers in the course, so that one can have a pull-down menu for these two administrative assignments to indicate who the examiner and supervisor of a given student is. For an example, see the Examiner column in https://canvas.kth.se/courses/25434/gradebook and the Examiner and Supervisor columns in https://canvas.kth.se/courses/22156/gradebook This is particularly useful if all of the academic supervisors are added as teachers to the Canvas course room.
There is even a program add_course_codes_for_students_in_course.py to add an administrative assignment "Course code" -- so that one can easily see the course code that a student is registered for (this uses the information about the section that the student is registered in the course in). Prior to running this program, you need to add the administrative assignment for "Course Code" and run the program insert_course_code_grading_standard.py to create a grading scale with the course codes.
Within each administrative assignment, you will need to indicate that the grading using a "Letter grade" and then selected the custom grading standard that was created by one of the above programs.
Adding the student's examiner, supervisor(s), and tentative title from a spreadsheet
I made a simple tool for taking the spreadsheet of students, their examiner, and advisor(s) and adding the students to the appropriate sections in the course (with one section for each of the teachers - so that a teacher can filter in the gradebook by section and see just the set of students they need to work with). The program also updates the "administrative" assignment "Examiner" to indicate the examiner's name as the "grade" for this assignment. A list of the supervisors (in the same name format they are in the spreadsheet) is stored in the gradebook in a custom column 'Supervisors'. Additionally, the custom column Tentative_title is updated with the title from the "Proposal" column of the spreadsheet. Thus far this program has been used with the CS-P3 students. My assumption is that other course responsibles have similar spreadsheets to those used by Mats Nordahl.
Processing the "Closed" sheet in the spreadsheet is as simple as adding a column "e-mail" to give each student's e-mail address and then save it and run:
./insert-examiners-and-supervisors-from-spreadsheet.py 33514 "Masters_thesis_proposals-CS-P3-2022.xlsx"
The program is at https://github.com/gqmaguirejr/Canvas-tools Links to an external site.
For those who would like this program run for them, you can send me your spreadsheet. For those that just want to assign an examiner for a given student, you can use the pull down for the grade for the Examiner assignment and then let me know and I can use this information to add the student to the examiner's section with another program (add_students_to_examiners_section_in_course.py).
Add the student's program or specialization to the Canvas gradebook
The program data can be gotten from LADOK (with canvas_ladok3_spreadsheet.py in https://github.com/gqmaguirejr/E-learning Links to an external site. - note that this program requires both a Canvas token and access to LADOK via the ladok3 library). The data is inserted with a program called insert-programs-from-spreadsheet.py.