Observations from During and After CS16: Summer 2024

Alterations from Summer 2022: Due to changes to campus policy, I could not offer a fully hybrid version of the course this time, so I offered in person lectures, lecture slides posted on the coures Canvas before lecture, and then students could email for a lecture recording if necessary. From my side this was a bit easier---not having to look at the simultaneous zoom for questions during lecture made the lecturing more straightforward, and I only had to check that a recording was successful if a student asked for it instead of after every class. However, this also limited the students' options for engagement with the course, and I would be interested to get more information on how they perceived this difference. I also changed the five late day policy into a one built-in late day policy (to handle the slightly late submissions I noticed), and then a significantly clearer policy for longer extensions so students knew how easy it was to get longer extensions. I ended up keeping the quizzes after noticing that a student mentioned them as being helpful in their course evaluation. I also ended up adding a lab redo option---students could redo one lab for an improved grade at any point after the original submission was graded. Finally, I ended up simpifying Lab 07 significantly, to focus more on the intended topic (classes) without making it too difficult in terms of the geometry implementation necessary.

In-Person Exams: One additional change from Summer 2022 is that I switched the 24 hour take home exams to in-class exams during lecture time. The original impetus for this change was the release of ChatGPT between Summer 2022 and Summer 2024, but I think in terms of the course, this also helped my ability to offer quick help to all students (without staying awake and near a computer for 24 hours straight). This also meant shorter and more conceptual focused exams, which I think is overall better for the learning objectives of the course and for not giving students unnecessary work.

Mid-Course Feedback: I added a midway feedback form (right after the midterm) for this edition of the course, which I think was helpful in getting some actionable input from the students as well as getting a sense of which topics needed more review (I asked for this on the survey). I unfortunately, however, was not able to implement some of the course setup feedback due to existing constraints with Canvas. However, it did give me good feedback for future courses, specifically to move away from Canvas due to some of the necessary features simply not existing.

Clearer Extension Policy: As I mentioned above, I adjusted the extension policy, and the most important change there was to give students both an example of an email to send to request an extension and reassurance that extensions will be granted. With this, I noticed a definite reduction in the amount of justification students tried to provide for extension requests, which was wonderful since I didn't want students to feel they had to defend their need for an extension.

Observations from During and After CS16: Summer 2022

Hybrid (in person and zoom option) lecture approach: I think for the time this course was held, this made a lot of sense. Between COVID quarantines and a shaky housing situation in the area, making sure students could access the class remotely was very helpful, and allowed me to save some time not having to catch up many students per week on the classes they missed. However, this also vastly limited my ability to do more interesting classroom activities, especially anything involving collaboration or discussion. While I strongly believe it is important to make sure the class material is available to students who can't attend on any particular day, I plan to find a different method of doing this in the future to allow the in-person lecture to be more interactive.

Five late days: The idea behind this plan was to give students flexibility in deadlines without having to ask me for an extension—for example, if they didn't feel comfortable explaining their reason for needing an extension. I still allowed extensions students asked about as well, which I actually want to make more clear for future courses. Overall, though, keeping track of these 5 days per student turned out to be a major hassle, so I think something else would be better (not sure what that is yet though). I will say setting up late days on Gradescope helped a lot with the regular deadlines though, since I saw quite frequently assignemnts that were turned in only 15 minutes late, and I am glad the setup allowed for students to do this easily without having to email me late at night to reopen Gradescope like they would with a hard deadline.

Ungraded quizzes at the end of lecture: My idea with these was to give students a quick interactive way to check their understanding after learning a topic, and also to give me a quick way to get feedback on the lecture and know if I needed to give more time to any topics. However, I think the multiple choice format I used, while great for expediting my analysis, was too restrictive in the types of questions I could ask. I would be more interested in doing something short answer that students don't turn in, to be more for their benefit even if it would lose me that feedback. I also think doing this at the end of the class is too quick for stimulating recall, for the future I think putting these at the beginning of the lecture would be better for reminding the students of the prior topic and leading into the next one.

Homework and Exam Grading: For future, I am interested in incorporating some sort of redo policy for graded assignments, to help students focus on learning from mistakes, as well as making sure they actually read and digest the feedback I give. I'm still working on how exactly to implement this though, to not overwhelm either me or the students.

Lab 07: This was the only lab I completely reinvented instead of taking from the previous iterations of the course. My goal was to emphasize the object-oriented topic of classes with a literal "object", a video game sprite, to show the reasons a class would be more valuable than just writing standalone functions and a struct. I also hoped that the connection to video games would help students see how they could use this topic for things they enjoy outside of class. In that sense, I feel like it went well, though I learned from this one that the assignment itself got fairly bogged down in the geometry of object collisions, and I think removing or vastly simplifying those functions would be preferable so that the meat of the assignment is the class construction, not implementation details.