SIGCSE 2024 - Papers, Experience Reports, and Lightening Talks
Last up we have paper sessions, which include experience reports and lightening talks.
Probably won't write as much on this - I'm a little SIGCSE posted out.
One interesting note was a semi-recurring theme of "the hidden curriculum." I say semi-recurring because while it appeared in three sessions I attended - two experience reports and one lightening talk, each time, the speakers were referring to a different "hidden curriculum."
The first time was a talk from UCSD describing a projects course. It was similar to many projects based courses - students are shepherded through a large project, but in this class, students worked exclusively on large existing open source projects. The hidden curriculum consisted of all those real world tools and techniques not covered in a typical CS sequence - testing, code maangement, tech integration, navigating a code base and more.
The course sounds great. If given a single choice, I'm not sure if it's better for students to work on a large original project or to learn how to work in an existing one as both skill sets are valuable and important but do like what they described as going on at UCSD.
The second time the hidden curriculum came up was in a lightening talk from instructors at the Milwaukee School of Engineering. What was interesting was that they were talking about something altogether different from what UCSD considered their hidden curriculum. In tnis case they were talking about things like study skills, stress management, homework strategies, registration and advisement, time management, and life after graduation. While I certainly appreciate everything about the software engineering skills form the UCSD talk, the skills talked about here are arguably more fundamental and they're skills that many students, particularly those from lower income households have never had the opportunity to develop. This took me back to our first keynote when the speaker mentioned that he while he got great support from his family as the first one going to college, he got very little help. His family supported him and wanted him to succeed but as nobody else from the family had ever gone to college, they didn't have much to offer in terms of concrete help in navigating this new world. At the school. the instructors taught their hidden curriculum through extra curricular sessions during common free times (providing free food to draw in the students).
The third hidden curriculum was a talk titled "From Degree to Developer…" In this case the hidden curriculum as interview prep both in terms of the soft skills for interviewing and also the technical interview skills - how to pass those LeetCode problems. The solution in this case was like the first talk - create a course that was essentially an algorithms course with interview style implementations along with the soft skills.
What struck me here is that we've got three different institutions all resorting to something outside of their school's major requirements to address a real student need (the two courses that were created were free electives). Something's wrong here and unless it's addressed we'll see the gap between the haves and the have nots continue to expand since well to do students at elite institutions are best able to learn these hidden curricula on their own.
Personally, I've found that if you're strategic you can add a fair amount of the software engineering practices to core CS classes without too much hassle - certainly if you tweak the content a bit - do we really need every single one of those data structures and do we have to dive so deep into proof and theory? Maybe we should realize that our programs are still set up for 100% percent of our grads to go on to get their PhDs where the reality is that the majority want to take tech skills to industry. I'm betting programs could easily accommodate most of the hidden curricula with some sensible re-evaluation of requirements and everyone would be better for it.
One other session that I want to mention before I wrap up was one on "Creative labs in CS1" at Georgia Tech. This was interesting. In this course, they added a handful of what they considered "fun" projects. The concepts would not be tested on exams. These projects would not be in Python, which I guess is the core language for the CS1 class. The first project might be an HTML/CSS web site. The second, maybe adding some JS. To be honest, I didn't get this at first but then the speakers explained that at Georgia Tech, CS1 is almost entirely made up of non-majors. I'm still not sold on their plan here but I think I get what they were trying for. What got me was the fact that this is a real problem and not just for Georgia Tech. We're seeing more and more schools requiring students to essentially pre-declare in CS before they're even admitted to the school. Kids without sufficient opportunities, as a result, are being locked out of the field. I know we've got a booming enrollment problem but we've got to do better.
So, that's it for the sessions. I think I'll do one more SIGCSE post as a general wrap up and talk about our Portland adventures. Then it'll be back to my usual curmudgeonly rantings.