For anyone who didn't read the linked article (it's short), it suggests that a key element is careful design of intro courses.
Students with computer science experience get a more advanced course that is explicitly designed not to make them more competitive in second-year courses (instead, it starts on material that will re-appear in third-year courses). Students with no computer science experience get their own intro course. And there is yet another "green" intro course tailored to biological applications.
The article suggests that these practices help level the playing field in the first two years of the computer science major, by which point people have enough invested to finish.
On reflection, these aren't new suggestions. Unlocking the Clubhouse, a 2002 book on women's experiences studying computer science, made similar recommendations. But I guess most colleges are struggling to handle the glut of first-year computer science students, let alone teach more courses to encourage more of them.
It's an interesting insight. When applying to colleges I never considered applying for CS as I (female) had no programming experience whatsoever, and seemed to be surrounded by people (male) who'd been working on computers for years,
( I'll leave speculation on that for another day )
It was only because they forced EE majors to take programming courses that I ended up in the field. I wrote my first "hello world" as an 18 year old freshman, but it never really seemed to matter.
Male here. CS courses were _not accessible_ to those without prior experience, male or female, full stop. That issue was compounded by having to use the IDEs and tooling available to us 10+ years ago. It wasn't until the last year of my business degree I was exposed to the simplicity of .NET/Visual Basic that made programming interesting, fun, and accessible to someone without experience. If only I had that exposure 4 years sooner, I'd have a CS degree today. C'est la vie.
I graduated college 20 years ago; everything I learned in college was new for everyone there (I had prior experience in other languages) and we were approximately 50%-50% male to female. From my former colleagues most males work in IT, most females work in other domains, by choice. It was no pipeline problem at that time, but the results are the same: people tend to do what they like and I don't see here (Eastern Europe) too many females that like CS. We have 80% females in marketing and over 60% in sales, how about forcing some of them to do IT instead?
When I started the "IDE" was vi running on a Solaris mainframe. 'vi' has has never been accused of being user friendly but since this was pre-linux, I'm not sure any of the experienced coders had ever seen either before. In retrospect it was a pretty good equalizer.
If a "Never saw a line of code until I took this class" sits between two "Coding since 11" students, they're going to watch their neighbors effortlessly breeze through the curriculum. If they don't know those student's background, it's not unreasonable if they come to the (false) conclusion that they're not cut out to be a developer because it's just so much easier for "everyone else" (N=2).
If you "track" your intro classes, you can put the first-timers together and likewise keep the experienced students from falling asleep in class by tracking them into something more challenging
Even if you do have a "fast" track and a "slow" track, the only ways I can think of to get travelers on either of these paths to the same place at the same time is to either slow down those on the "fast" track, or speed up those on the "slow" track. What I seem to be witnessing is a willingness of people to slow down those on the "fast" track instead of expecting people on the "slow" track to work harder to catch up.
> Even if you do have a "fast" track and a "slow" track, the only ways I can think of to get travelers on either of these paths to the same place at the same time
They don't have to get to the same place at the same time, they just all have to cross a finish line. The finish line is the same for everyone, even if the fast track students get to take a more fun route and play doing other things they enjoy along the way.
Certainly the fast track students will still have a competitive advantage since they will probably have worked on more challenging problems, but it fixes the graduation stats. Who knows if it will have positive downstream effects.
That assumes that there's no "padding" built in, and that to complete a 4-year CS degree you need to be focused on CS for every class that you take, every minute of the day.
Not a perfect analogy, but: due to my AP scores, I placed out of the first two semesters of the four-semester mathematics requirements. After two years, I didn't know more math than those who didn't place out, I just finished learning it a little earlier.
People with existing programming experience will start off at a slightly higher level than those without, but the latter group will end up in roughly the same place, by taking an elective or three fewer.
And even if they don't, so what? Maybe someone with more experience ends up diving deep into OS design, compiler writing, and database design, while someone with less experience only gets to dive deep into database design. The CS program has still prepared both groups for their first job after they graduate (or their masters/PhD program, if they choose that route), some people might just have less or more to learn later as they grow into the rest of their lives. This is true of pretty much any profession; programming is by no means unique here.
I went to Pomona College, which shared some CS classes with Harvey Mudd. We also had gender parity among CS majors. I can assure you that everyone admitted to Mudd is whip-smart. There is a strong catalog of courses and the faculty there will find a way to challenge anyone. Nobody at Mudd is getting slowed down. Talk to anyone who has worked with someone who graduated from Mudd and they’ll agree.
They definitely don't need to get to the same place at the same time, and don't even need to end up at the same final destination. Some will go onto PhD programs, some will not, etc. Having two (or more) separate tracks allows the late starters a better chance at gaining competence without getting crushed by the competition with more experience.
Maria Klawe used to be the Dean of Engineering at my alma mater when I was a student there, and I distinctly remember being lost and demoralized by this exact situation of being in intro CS with classmates who grew up coding.
Some students end up in Grad level courses before finishing their undergrad careers. Some won't be on that track but will be experienced enough for a new grad job in industry. These two groups don't need to be in the same technical courses in their first year at school.
Inexperience doesn't equal unintelligence. Making sure that your intro class structure supports people with varying experience levels means you're more likely to engage people with the right interest and capabilities, not less so.
I've never experienced or witnessed a scenario in which trying to support varying levels of experience didn't result in lowering of standards. People with the right interest and capabilities will strive to clear the bar and will not expect the bar to be lowered for them.
You may not know this because Harvey Mudd College is a small school, but it is extremely rigorous (not quite MIT/Caltech, but pretty damn close). Their middle 50% of the admitted students' math SAT range is 770-800[0]
I would be extremely surprised if HMC had any bar-lowered classes.
Just because you offer both a linear algebra course and a course on groups and rings doesn't mean the linear algebra class is some kind of mickey mouse credit--it's just for people who haven't seen that material before.
There's the "math majors' math track" and the non math majors' math track at most institutions. Even within the majors track, there's separation between experience levels and intended tracks within the discipline. Ex:
MAT215-217: Recommended for math majors, some prior experience in constructing formal proofs is useful but not required.
MAT216-218: Accelerated math major sequence, for students with substantial background in university-level proof-based analysis courses.
MAT214-204-203: Alternative path to majoring in math, with a more algebraic introduction to proofs
MAT203-204-215: Alternative path to majoring in math; good path for the applied math certificate.
But the difference in your case is that we don't expect, nor care, whether math majors and non-math majors end up at the same destination. It's okay and expected that math majors will end up learning more and becoming better at math. But when we're talking about people studying the same major, then this is not okay. You will either end up slowing down the fast track students or you will give them an advantage over those that weren't on the fast track.
I disagree with your premise, since our current situation is that different students in the same major _already_ end up in different levels of aptitude by the end of their studies. Some far exceed that of the typical student.
Preserve the ability for those with this level of prior experience or aptitude to thrive, while providing support for those who do not have this head start but could either (a) Catch up, given the right initial environment and ramp up, or (b) never catch up to the most well equipped students, but will still be proper graduates of the program.
Which is why they're creating separate tracks rather than trying to cram everyone into one class.
The people with prior experience can take classes that are suited for their level, and will be challenged rather than bored and resentful of their classmates.
The people without prior experience can ALSO take classes that are suited for their level, and will be challenged rather than intimidated and condescended to by their classmates.Once they have some experience, they can move on to the other classes.
It's a win win for everyone, including the people who through whatever luck or drive have experience before they enter the system. Remember, not everyone has the same access to things like books, computers, and programming classes in earlier environments like high school. Making an actually introductory path helps level the playing field without lowering the bar.
Students with computer science experience get a more advanced course that is explicitly designed not to make them more competitive in second-year courses (instead, it starts on material that will re-appear in third-year courses). Students with no computer science experience get their own intro course. And there is yet another "green" intro course tailored to biological applications.
The article suggests that these practices help level the playing field in the first two years of the computer science major, by which point people have enough invested to finish.
On reflection, these aren't new suggestions. Unlocking the Clubhouse, a 2002 book on women's experiences studying computer science, made similar recommendations. But I guess most colleges are struggling to handle the glut of first-year computer science students, let alone teach more courses to encourage more of them.