Interestingly, the course is typically taught in strictly lecture format, with students working alongside the professor on the day’s sample code. The onus, then, was on students to practice at home, or visit TA office hours. Of course, this can be intimidating if you’re lost in class, or if you see the course as existing merely to satisfy a requirement. To me, though, this course is an excellent recruitment course for Computer Science, given that for the majority of students it is a path they have likely not considered.
In other words, I need to figure out a way to bring in some of the scaffolds from my secondary teaching experience into a traditional, lecture-based college class.
At this point, I’m still in the first weeks, but I wanted to use my blog as a way to share what I’m trying – what’s working (or not), what we’re iterating, and how we’re incorporating what research tells us works for inclusive CS education into higher education. Here’s our first iteration:
A change in format to prioritize in class development of socio-academic peer groups. Rather than three 50 minute lectures a week, only Mondays will be a more traditional lecture format. On Wednesdays, students will work on in class exercises applying new knowledge from Monday. Fridays will feature differentiated small group review (with help from TA leadership) and extension. While projects, quizzes, and exams will all be individual, students will be allowed – and encouraged – to collaborate on all other programming assignments. Each student will still turn in their own code for all in class exercises, but they may work together to debug, locate resources, and write code. Not only does this create a lower-risk environment for them to learn, but it builds in collaborative structures, which hopefully will translate to them feeling a sense of belonging in our class. Additionally, recognizing that this is most students’ first computer science class, the inclusion of practice time in class models the importance of practicing their coding skills outside of class, too – which leads me to…
Additional real-world, practice problems: One of my TAs had an excellent idea to write challenge problems for students to practice with outside of class. We’ll be taking this one step further by creating a practice problem bank for students to work on, in preparation for projects, but also to encourage them to continue to practice their skills. These challenges will be ungraded, but students will be able to submit them to us to get feedback. It was really an excellent idea, as it gives students a real-world application of their learning, and also gives them a direction for practicing – which is something that non-CS majors may struggle to find on their own.
Ultimately, if our goal is to diversify tech, we must make our introductory computer science courses at all levels accessible and welcoming to all students. While not all students may decide to pursue a future within Computer Science, each deserves the opportunity to try and see if it is a good fit for them. Incorporating strategies that research consistently identifies for recruiting and retaining both female and underrepresented students seems like a no brainer, no matter which level of education the course is offered.
I’ll continue to blog and share resources, and am – of course! – open to thoughts or feedback you may have. Share them via the comments below.