I'm not sure if enrollment is the correct word. At my college, enrollment in the introductory CS course is at an all time high, over 1200 students who sign up. A result of this is that the CS department is now financially constrained and a high GPA cap has been set in place. But going back to the discussion, why is the number of CS graduates -- I think that's what the author intended to state -- constant? I'd like to offer a student's perspective.
First, CS is hard. Perhaps not from our point of view, us who practically grew up with a computer. But for the majority of people, it is. I notice that the students who tend to do well either have prior experience (if AP CS qualifies as that) or come from a background that emphasizes logic and abstraction (e.g. math, physics, philosophy). However, this rule of thumb fails for one group -- students who are willing to work hard, attend lecture, go to office hours, and are not afraid to ask for help from other students or GSIs. If we tried to persuade students to enroll by depicting CS as simple as making a peanut butter sandwich, I'd think we would be setting them up for disappointment -- somethings are just hard and boring, and you just have to get through it.
Second thing, a lot of college students are not willing to fail or take risks with their GPA. Maybe this has to do college admissions; often times I hear "at least you were smart enough to get into _______". The effect is that students are pressured to maintain an image of academic perfection. And the easiest way to do that is to only take courses you are comfortable with. When I tell my friends to at least take one CS course before graduating, the common response is "it's hard and I don't want to get a D" -- though that is rarely the case based on the public grade distributions.
The point is, CS is hard but doable. But hey, I got some of them to enroll in Data Science.
For me, it seemed like everyone around me in my CS classes just got it. There were definitely times I felt stupid because of it and it was demotivating to see so many people having an easy time while I struggled. When your assignments are taking you 8 hours and other people are getting them done in 3 hours, you start to think, "maybe I'm just not cut out for this". Eventually I started to get it and it became much easier for me, but it took a while. Who knows? Maybe I'm still not cut out for this.
There will always be people who are just "better". They'll learn faster, remember more, and generally make you feel inadequate by comparison.
There are also people who seem like that, but aren't. These people have prior experience and memories that accelerate the speed at which they learn, and leave fewer remaining new concepts to memorize. Over time you'll catch up to this second group, if you apply yourself.
Your #2 is illustrated well by the thoughts of Robert Pirsig (Art of Motorcycle Maintenance), and our need to switch to a knowledge-based mindset instead of a grade-based mindset.
First, CS is hard. Perhaps not from our point of view, us who practically grew up with a computer. But for the majority of people, it is. I notice that the students who tend to do well either have prior experience (if AP CS qualifies as that) or come from a background that emphasizes logic and abstraction (e.g. math, physics, philosophy). However, this rule of thumb fails for one group -- students who are willing to work hard, attend lecture, go to office hours, and are not afraid to ask for help from other students or GSIs. If we tried to persuade students to enroll by depicting CS as simple as making a peanut butter sandwich, I'd think we would be setting them up for disappointment -- somethings are just hard and boring, and you just have to get through it.
Second thing, a lot of college students are not willing to fail or take risks with their GPA. Maybe this has to do college admissions; often times I hear "at least you were smart enough to get into _______". The effect is that students are pressured to maintain an image of academic perfection. And the easiest way to do that is to only take courses you are comfortable with. When I tell my friends to at least take one CS course before graduating, the common response is "it's hard and I don't want to get a D" -- though that is rarely the case based on the public grade distributions.
The point is, CS is hard but doable. But hey, I got some of them to enroll in Data Science.