6 ms·
It's not "what the school wants to teach" but more "what the student needs to know at the end of the semester". I love SICP -- for me it was a revelation which
by d0m 15y ago
It's not "what the school wants to teach" but more "what the student needs to know at the end of the semester". I love SICP -- for me it was a revelation which opened a new world, and is still my favorite book -- but not everyone is like that. 90% of my colleague in my university would hate that book.. (As they hated the dragon book and anything less practical). So, as they say, "Hate the game, not the gamers". What a school teaches is a reflexion of what is needed in the society and sadly what the students want.
I do hope however that great professors will still strongly suggest the book to students who want to go one step deeper.
p.s. A new version of SICP could include a couple of pages on python; i.e. make a list comprehension, yielding, etc. :)
- derleth 15y agoIf you make a degree a prerequisite to getting a specific job, or even a specific job at a specific (higher) pay scale, you always end up with people treating traditional four-year programs like trade schools. Especially if you also make people think of trade schools as where you go if you only barely passed high school, or if you failed high school and wound up with a GED. (And we could recurse and talk about how one-size-fits-all high schools aren't the only option, either, but we won't.) Now you have four-year programs becoming the only option. This leads to a mix of philosophies, and by 'mix of philosophies' I mean 'raucous all-out war between two different groups punctuated by useless tracts calling for peace like this one.' The two different groups are the people who want to understand the theory at a respectable university level and the people who are on a fetch quest to get the paper to get the best ending (uh, job). Neither group is wrong, but one group would be much better served by a non-stigmatized trade school system. This fight invariably leads to the airing of two philosophies: One, the student-as-customer philosophy, says that as long as tuition costs money the schools damned well better dance to the students' tune chop chop. They're more sympathetic than that once you realize how eager companies are to shitcan anyone who doesn't have enough letters after their name, which might actually be the real problem. The other, the university-as-noble-institution philosophy, says that universities are places apart from the world where real research can be done and grants can be funded and, incidentally, there are these undergrad things running around that the exterminators refuse to extirpate so we might as well rope some researchers into making them the next generation of people educated enough to further our culture and, incidentally, keep our technical society from collapsing. In this model, the students don't get to influence pedagogy and coursework and so on because they, as per hypothesis, aren't educated enough to know what they want: If they were they could teach themselves and save everyone a lot of money. Like I said, neither philosophy is wrong. It's just that one of them should be in a completely different set of institutions.
- jgracin 15y agoI wholeheartedly agree. The schooling system was set up more than 60 years ago. Any social system instituted by man is time limited. With time, people (because we're intelligent) try to maximize the benefits while minimizing the effort, and this compromises the system. Sixty years ago, finishing high-school was a major accomplishment, opening lots of opportunities. One went to college because he/she wanted to learn stuff which will be useful on his/her voyage to the frontiers of human knowledge. Intellectual curiosity is the main motivating factor for this kind of people. College education today assumes the same role that high-school education had 60 years ago, and it's NOT because there's more stuff that has to be learned. (I think 12 years of education is more than enough to keep the world spinning. We're just doing it wrong, but that's another story. Paul Lockheart's Mathematician's Lament is a great read on this subject, feel lucky on Google). The question is, what will provide today what colleges provided 60 years ago? I don't mean to sound catastrophic. Top-class research is being done today as well. It's just that we're making things unnecessarily hard for everybody.
- vdm 15y agoGreat point. Bookmarked. To see how to do trade schools without the stigma, look at Germany. They do it Right.
- absconditus 15y agoSo basically you and 90% of your colleagues hate computer science. You want a vocational education in software development, which is something different.
- bartwe 15y agoWho offers a vocational education at an university level? Not everybody who is smart wants to be an academic.
- absconditus 15y agoWhat does your comment have to do with what I wrote? No one is denying that many people really want a vocational education. No one is claiming that smart people should want to be academics. The point is that what people want is not computer science. Civil engineers do not enroll in physics programs and then complain that their physics professors are not teaching them anything about practical bridge construction.
- Apocryphon 15y agoThen the problem is with college departments and administration who fail to create separate programs distinguishing between CS and SE.
- zoips 15y agoI'd argue that that would be a really bad idea. You can't be a good software engineer without having a good grasp of Computer Science.
- Apocryphon 15y agoThere's nothing to stop them from having a lot of overlap. Much like how Computer Engineering overlaps quite a bit with EE.
- saraid216 15y ago
- bmj 15y agoThere is a compelling argument that, in the age of nearly limitless computing resources, it doesn't matter anyway. You will in all likelihood be a glue programmer: you'll rely on APIs and libraries, most of which have been written by someone else, and you will simply string them together by applying the functions that most obviously address whatever problem you're trying to solve. Who cares, really, if you're using Quicksort or heap sort, you're just going to call sort() on your array (or map, or key-value store, or whatever), and define a callback function that will evaluate any two given values in the array to be sorted, and that's it. Who cares if one requires a little more memory than the other, or a little more time to execute? I'd argue that such a programmer does not need a degree in computer science to do this work. How do I know? Because I don't have a degree in CS, and that's mostly what I do. And if I can sit down and learn, say, C# for a job, certainly someone that has come out of a good CS program can, too. A CS degree shouldn't be about learning a single language (or three).
- BlackJack 15y agoI agree that a programmer doesn't need a degree in CS, but to have a CS degree doesn't mean you're a programmer. A topic earlier showed that 26 of the ACM Turing Award winners had degrees in mathematics, and a lot of the theoretical CS is math anyways. If a student in college wants to acquire a CS degree, they should be exposed to fundamental ideas in CS, not just what they'll need to be a professional programmer.
- jackpirate 15y agoA topic earlier showed that 26 of the ACM Turing Award winners had degrees in mathematics The field of computer science didn't exist when they went to college. They invented it, hence the awards.
- pzb 15y agoThis is really the root of the problem. Computer science/programming is immature as a profession. There are not clear, broadly accepted rules for what roles exist and what requirements there are for one to fill the role. Looking at building houses (just the construction side, not the mechanical systems), we have: - Architect - Structural Engineer - Architectural Technologist - Carpenter plus construction employees not officially certified. Each of these has a specific test, both written and practical (apprenticeship), and specific roles in the building process. In software, we have no standardized tests, so companies substitute "BSCS" for "Software Engineer" in the requirements. And there is only ever one role officially defined; there is no separate "Software Programmer". Internally every companies has "Software Engineer I", "Software Engineer II", etc however this is rarely exposed in job postings and requirements and is never standard between companies. The software industry could solve all this hand-wringing by creating a set of standardized roles, testing to create Certificates of Qualification for each, and getting HR departments to require these. And it would be possible, even with an established industry. Canada has added several new Professionals over the last decade, working with the existing industry to define the job, requirements, and build a phase-in plan that allowed the industry to continue operating.
- cabalamat 15y ago> I do hope however that great professors will still strongly suggest [SICP] to students who want to go one step deeper. Surely anyone studying comp sci at MIT should want to go one step deeper? If not, WTF are they doing there?