@aquapt
I don’t see the full upper levels in as much depth as I see others, but I can give you what I see in the introductory class, and what I see in my peers as I have gone through
In the introductory class, it really boils down to a few main archetypes. There are the people that have been coding since they could walk, those that just got into it at the end of high school, those who are trying it out just for the hell of it, those who are doing it for the money, those whose parents told them to major in CS, the ones taking it as an elective, and those as a minor.
The experienced veterans are usually in for a rude awakening since we don’t teach “Programming 1” or “How to Code” like a lot of other schools, and they often struggle to unlearn bad habits. Some take it in full stride, but others struggle through the whole course.
The ones who are trying it new quickly learn if they enjoy it or not, and are actually the top students usually. They commit themselves to learning how to problem solve and design, not just make it work. But for every one of those, there are at least 3 students who realize CS is not for them and usually drop before the W period, or just before that deadline. Interestingly, a good deal of minor and elective students usually end up taking more CS classes. Some of our best TA’s are actually only CS minors. The most frequent to drop are the ones in the “parent told me to” category, which is why I mentioned that as a big red flag. Of course, parents can convince students when they are truly into it as well, so the case really depends.
In the end, I would estimate the Fundies drop rate around 15-20%, more or less equal parts of the following:
- Students who took it as an elective, not realizing what class it was. CS1100 is usually better suited for these students, which focuses on complex Excel use, and gives a small taste while also giving useful skills for them.
- Students with prior experience who didn't really understand what high-level CS was, and now realize they don't enjoy it truly but like the creation / hacking aspect of it, not the field as a technical discipline.
- Students who decided CS was their major for the money or because of their parents and realized it was not for them quickly.
- Students who didn't keep up with the class and began to fall behind the content. CS is like a Math class in that it often builds on itself, and missing a week or two of material is a big hole to climb out of.
- Students who just didn't enjoy it or have a knack for it.
The cool thing about the introductory program is that it introduces you to pretty much a taste of everything CS in the first semester, and if not in the first year with Fundies 2. So after that initial loss, you don’t find many dropping. A few students switch to the BA or a combined degree, or a concentration in another area like game design or interactive media, but in general the major slowly grows as people switch in. I don’t think it’s nearly enough to even out the initial loss, so I would estimate the CS class size shrinks by 10-15% probably.
Fundies 1 is a really unique class because it manages to treat those without experience equal to those with experience, yet still cover a lot of the subject in a no-nonsense way. I link to this tirelessly, but for others who haven’t seen, this is the best summary of the program out there:
http://www.ccs.neu.edu/home/matthias/Thoughts/Growing_a_Programmer.html
I believe both the OP and @aquapt have seen this, so sorry for the repost for them.