10 ms·
The problem is that 'computational thinking' has become expected of a university education, regardless of major, but universities haven't shifted to meet the ne
by nlawalker 12y ago
The problem is that 'computational thinking' has become expected of a university education, regardless of major, but universities haven't shifted to meet the need.
All the other basic requirements of a university education are filled through entry level classes - credit-fillers that students have to take in order to graduate. This structure works out well for everyone: the university ensures that students are getting a well-rounded education (as opposed to a trade-school degree) and maintains its reputation and the value of its product.
The only classes that students can take to demonstrate an ability in computational thinking are CS classes. Entry level CS classes, like those in the other engineering disciplines, are not like entry level classes in non-engineering disciplines. Most students that take ARCH 101 and LIT 101 are not taking them because they are interested in pursuing the major, they take them because they were the best-sounding classes that help them to fill their credit requirements. In doing so, they end up with a well-rounded education. In contrast, most students that take EE 101 are trying out for EE as a major.
CS entry level classes traditionally fell into the latter category. Demand has resulted in students treating them as part of the former.
The best thing a university could do is to figure out what skills that these employers are all demanding and offer entry-level classes to fill the need. Structure them to work with large numbers of students, just like all the other 100 and 200 level classes that everyone takes.
Here's the key part: advertise these classes relentlessly, to students and employers. Talk about how the university has seen the demand for these skills and has shifted to focus on them. Become known as a university where every student can get these skills as a part of their education, regardless of major, and most choose to.
Potential students will be thrilled at the prospect of a university where they can get a bankable education without having to commit to CS as a major. Strain on the CS major will go down and prestige will increase - if every student is getting the kinds of CS skills that employers require, then the ones that enter the major must be the hardest of the hardcore.
- timr 12y agoLook at the chart for non-major interest in upper-level CS classes at Harvard: operating systems has no interest; "data science" is surging. Andrew Ng's machine learning class has more than twice the enrollment of computer architecture or software engineering (which is a particularly pathological case, since by definition, nobody else can teach Andrew Ng's class). This is not general-interest demand. Students are hopping on the bandwagon, and picking the classes that sound like they're the shortest path to a high-paying job. About the only thing colleges can do right now is offer more of the hot classes via lecturers, and wait for the crash. Universities don't hire (lifetime) tenured faculty based on short-term enrollment surges.
- pjbrunet 12y ago"Shortest path to a high-paying job." Big student loan needs to get paid somehow. Too many desperate programmers in the world is a bad scenario, IMO.
- vorg 12y agoBetter to have programmers who have learnt something about programming at college. Too many programmers without aptitude in IT shops who transferred into programming from some other non-technical job in the same company.
- jimmaswell 12y ago>credit-fillers that students have to take in order to graduate. This structure works out well for everyone: the university ensures that students are getting a well-rounded education (as opposed to a trade-school degree) Do you really think the irrelevant classes are necessary at this level though? The student has had all of elementary through high school to be exposed to the broad subject range. By the time you enter university you should know what you're doing. None of my credit filler requirements have been especially enlightening or broadening; mostly just annoying. A Greek and Roman history class I took was interesting to me at least, but I don't see much value forcing another CS student to take it. If I have to take one more English class I might just drop out and start my own company. Do you really think universities believe in the "rounded education" goal, or do they just know that making you take more classes gets them more money?
- mhurron 12y ago> Do you really think universities believe in the "rounded education" goal This was the traditional role of Universities. It's only recently that they have become pressured to become trade schools and remove anything deemed 'unnecessary' or 'non-profitable.' Of course when Universities filled that role, you didn't have choices as to what to use as, as you term it, irrelevant classes. Everyone had to have a broader education with classes drawn from many different disciplines.
- hsitz 12y agoYes, yes, yes. I think good universities (i.e, most of their faculty and administration) still believe strongly in the "rounded education" goal. As you say, historically universities sought to provide a liberal education, regarding subjects that "were considered essential for a free person (a citizen) to know in order to take an active part in civic life. . . . The aim of these studies was to produce a virtuous, knowledgeable, and articulate person." [ http://en.wikipedia.org/wiki/Liberal_arts http://en.wikipedia.org/wiki/Liberal_arts ] It's mostly the students now who don't believe in a well-rounded education, who just want to prepare themselves for a job. I'm fifty years old and I've observed the trend towards higher education becoming more and more like vocational education. It began before I was born, but it surely seems to be accelerating. Frequent articles on whether college can be "economically justified" are representative of this. Formerly, there was no question of whether a liberal arts (i.e., "well rounded") education would somehow "pay off". It was something desirable for its own sake, part of becoming a better person.
- shabadoop 12y ago>CS entry level classes traditionally fell into the latter category. Demand has resulted in students treating them as part of the former. I was in a funny position with this. In university, I had taken the engineering "Intro to C" class as a first year student, but when I switched to a math major, I had to take the intro level CS classes. Now, the first year CS classes are required for math, physics and chemistry majors at my school so you'd expect the syllabus to take that into account. The class was almost entirely built around working with the Java API and object hierarchies and writing bloated Java programs to perform simple tasks. It was a huge waste of time, and I didn't have much time to spend on a freshman level general ed requirement. I like to think my whining was one of the reasons why the math department finally made the push to offer a scientific programming course for the rest of the science departments. I don't mean to bash my school's CS department, either. I took some higher level Systems Programming and Algorithms courses and thought they were fantastic. They just treated their intro courses like software engineering weed-out courses, when other departments required them as general ed courses.
- kelseyfrancis 12y agoGeorgia Tech considers "computational thinking" to be an important component of a liberal arts education, so much so that it used to require all majors to take the same intro CS class that CS majors took. It was a legit intro CS course taught using SICP with Scheme. As far as I can tell, all majors still must take an intro CS course, but the school now offers a wider variety of intro CS courses, because many people studying things like international affairs and even many engineers didn't want/need or couldn't handle the rigor/difficulty. So it seems at least some universities have indeed shifted to meet the need (and a long time ago at that).
- sliverstorm 12y agoWell, you can definitely tailor even introductory computational thinking to different disciplines without necessarily dumbing it down. For example, literary majors would probably rather learn in Perl, and "hard science" majors might benefit from spending their time in Fortran or Matlab, etc. Spend more time on data analysis for biologists, perhaps... Of course it won't be a course ABOUT data analysis or physics simulations, but if you make the projects more germane to the students, they will get more out of it.
- flatline 12y agoI TA'd an entry-level CS 100 class, it counted as a core science credit and covered a good variety of the field of CS with the time it had. The curriculum was something along the lines of: hardware basics, binary math and logic, basic programming, algorithms, computer graphics, crypto, AI. Granted they didn't get very deep into any one topic but a few students came out of that class with the intention of switching to a CS major, and the others got more than they had anticipated from the class. Most of the students enjoyed programming in Scratch, except for those that had programmed before. Coincidentally, I was blown away by what some people managed to do with Scratch in a couple weeks. The professor was recently written up in the NYT for her efforts to get a more solid CS curriculum into highschools, so perhaps this was an unusual course offering.
- seanmcdirmid 12y agoCSE 142 at UW is not this, it is geared toward CS and ENGR majors. An "entry-level" 100 class is geared towards non-majors, is quite different.
- netcan 12y agoAnother (possibly complimentary) is to make "programming for X" classes, the same way they make "statistics for X." That way it can be a later year course and use tools and example relevant to those people. Degrees with a lot of statistics might have a "working with data" class which could teach SQL, R & such. Architects can learn Lisp for CAD. University students tend to learn writing by taking classes that require writing incidentally. Maybe programming could be similar. "Introductory" classes are always in danger of leaving students with an expanded vocabulary but very little else for exactly the reason you describe whether they are "filler" courses or "major" courses.
- X4 12y agoIt's unfair to highly skilled people, because it would bore the hell out of them. That's how you weed out the top 1% and breed a normalized group of students. I truly understand why some of the super-skilled people I know didn't even consider going to any higher school, but still beat the shit out of the PhD's that I know, when it comes to a) knowledge b) theoretical and practical skill c) solid maths + formal verification. It doesn't mean that universities suck, but they polarize skills towards industrial demand and forget about the diversity of culture that arrived, they are about to eliminate for the greater good of the industrial market, which manifests in the number of graduates. But oh beware, that too many graduate, as if that would mean that the university is cheap and will loose it's prestige. Professors tend to hate it, when too many pass their exams and often times help to let some % of the students fail on purpose, to keep up their "prestige". If every single professor explained thinks like on Reddit's ELI10 and used interactive media to underline the structure behind a problem, then almost everybody would pass. So, does a high number graduations automatically mean that the university only teaches low-skill courses, resulting in low-quality students? I'd say no, if they teached students more efficiently.
- fanf2 12y agoAn example of a university that is doing what you suggest is Princeton: see Brian Kernighan's course "computers in our world" and the accompanying book D is for Digital. http://www.cs.princeton.edu/~bwk/ http://www.cs.princeton.edu/~bwk/