https://www.inc.com/kimberly-weisul/how-harvey-mudd-college-...
https://www.inc.com/kimberly-weisul/how-harvey-mudd-college-...
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.
( 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.
I guess I'm in a small minority, but I had never written a line of code in my life before my CS100 class.
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.
https://www.math.princeton.edu/undergraduate/placement/seque...
Lumping all these students into one general course would be a disservice to everyone, like you say, and should be spilt up.
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.
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.
[0] https://www.hmc.edu/institutional-research/wp-content/upload...
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.
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
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.
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.
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.
However, I think it should still be mentioned as one of the key reasons why they have parity, rather than claiming it's simply due to changing the culture and courses, especially if we're asking other institutions to learn from them.
[0]: https://www.washingtonpost.com/news/grade-point/wp/2016/03/1...
For a back-of-envelope calculation[1][2], it looks like there were 27 CS majors out of Harvey Mudd in 2017. We can probably add in another 20 from the joint CS-Math degree. So, about 50. Berkeley, on the other hand, graduates almost a thousand students in EE or CS every year. Stanford, MIT, Georgia Tech, University of Michigan, UCSD... these schools all graduate large numbers of CS majors and compete with each other for the top students.
The accounting is tough here because the degrees at Harvey Mudd and Berkeley are different, so I may be over or under counting, but we're talking about a massive difference in scale here.
Let's take one metric - the AP Computer science test. About 27% or the people who took the AP Computer science test are women. Harvey Mudd is small enough that it could probably fill 100% of the starting class with women who got 5's on the AP Computer science test and have near perfect math grades and SAT scores. But if scores are roughly evenly distributed between men and women, eventually, you're going to have a school that has more men with 5's than women - and the only way to reach 50-50 parity will be to select women who got 4s or 3s with men who got 5s. It won't be Harvey Mudd, but that's because HM is tiny and elite. Instead, it'll be Berkeley, or Georgia Tech, or UC San Diego, or U Texas. Would Harvey Mudd be able to maintain this at 1000 CS majors, using the same methods they do now, while competing fiercely for the top students in this environment and at this scale?
[1] https://www.hmc.edu/institutional-research/institutional-sta... [2] https://eecs.berkeley.edu/about/by-the-numbers