3 ms·
On a slightly related note: I find the trend of forcing students in non-technical fields of study to take introductory programming classes to be troubling. As
by vibhavs 17y ago
On a slightly related note: I find the trend of forcing students in non-technical fields of study to take introductory programming classes to be troubling.
As an example, CMU requires all undergraduate students to take the introductory programming class. I saw many students - for example English majors - develop a terrible aversion to programming, and worse, a very poor perception of the field itself. Worst of all, forcing some of these students to take these courses probably leads to increases in cheating.
It may be more beneficial for some of these students to learn more computer skills (e.g., setting up a WordPress blog) than CS fundamentals. Further, the field already suffers from a problem of poor public perception. By applying such blanket policies, are we doing more harm than good?
- _delirium 17y agoI agree the classes often aren't that engaging, but I do think it'd be useful for everyone (or at least a lot of people) to understand the basics of giving instructions to a computer so it can do things for them. Many will end up having to do at least some simple form of it in their future lives, anyway; certainly people in the natural sciences do, and increasingly lots of other people will find themselves needing to write an Excel macro, or sort some data with a Perl script, and various other such things. I agree current CS 101 classes aren't good at conveying that excitement though, of being able to make a computer do what you want. The linked article talks about media computation as one approach to that: instead of having people sort lists or whatever, show them that they can make simple art stuff. (I personally got hooked on computers much earlier than college in large part because of a Logo course.)
- gacek 17y agoThe problem is that if you are not interested in CS and haven't been programming before the course then lets face it - you won't become good at it during a semester. So later, when you are faced with different environments and sets of instructions (excel, perl) you'll just call your computer guy, or fill the spreadsheet manually. It might be better to teach programming after 3-4 semesters, to show how some tedious work from previous classes can be replaced by a neat excel macro.
- Dobbs 17y agoWhat if instead of a practical class as the intro we had a theoretical class. Things like Boolean logic, what a Turing machine is, the logic behind a stack, queue and so on. Teach the ideas behind computers without focusing on the practical.
- wisty 17y agoOr focus on the practical, and use python (or some other nice language) to process screen scrapes, serve web pages, or something else fun. You could write an application to scan your twitter feed for keywords, then take some action (send you an email?) if the keywords match. You could process a whole stack of (say) project gutenberg books, looking for how word use changes with time. Then you could try it with different data structures, and see which is faster (guess what - lists take longer than dictionaries for certain tasks!).
- jorgeortiz85 17y agoI have the opposite complaint. We hold our humanities students to much lower standards we do our science students. At least at my university, when science students were required to take a humanities class, they had to take a regular humanities class that would count towards a humanities major. They couldn't cop out and take "Bedtime Stories" instead of an English class or "Should I get out of bed in the morning?" instead of a Philosophy class. No, they were expected to take regular humanities courses alongside humanities students and to write humanities papers comparable in quality to those from humanities students. However, when humanities students were required to take science classes, there had the option of taking "Let's play with HTML" instead of Computer Science or "Let's talk about stars" instead of Physics. These classes would never be allowed to count towards a science major, but humanities students were allowed take them to fulfill their "science" requirements. If we believe that a well-rounded student must have a command of language, some knowledge of history and literature, and capacity for critical thinking, then a well-rounded student should also have mathematical proficiency, scientific fundamentals, and the ability to think computationally. "Dumbing down" science classes for non-science majors seems to me to be doing them a major disservice.
- radu_floricica 17y agoAs Norvig said, it takes 10 years to make a programmer. Why would you want to teach an introductory course badly, when you can create a course that is designed from the ground up to be independent and not depend on 9 years of follow-up?
- cloudkj 17y agoWell, the alternative isn't that great either. At Berkeley, many undergrad business students had the option of taking an intro CS course (symbolic programming with Scheme; awesome course) or an interdisciplinary course called "introduction to computers." The latter was pretty much a joke; I remember helping some business friends with their projects, and it involved making HTML pages with frames and figuring out how to FTP files onto some servers. Pretty lackluster.