3 ms·
> They redesigned the intro computer science course to focus more on creative problem solving. Instead of traditional homework, the faculty assigned team-based
by zeveb 11y ago
> They redesigned the intro computer science course to focus more on creative problem solving. Instead of traditional homework, the faculty assigned team-based projects so that students coded together. And, most important, they made the courses fun and emphasized ways in which CS can benefit society.
What exactly does the first sentence mean? What is an example of an increased focus on problem solving, and on what was focus decreased?
Are team assignments really just a way for weak performers to glide? I know in my own college career that was my experience.
Is computer science about fun and benefiting society, or is it, y'know, the science of computation? Is it better to build a population of computer scientists who find the science of computation fun and self-evidently beneficial, or one of computer scientists who don't?
- mafribe 11y agoWhat exactly does the first sentence mean? It's a well-known euphemism for: making it easier, diluting standards, making grades easier to manipulate. Indeed just yesterday, my head of department suggested that I move from programming exercises to essays in my operating systems course, so as to have fewer students fail. The problem with math/programming is that there are fairly hard and objective and measurable criteria for how good a student performs. So let's get rid of programming ...
- douche 11y agoYup, group projects and so-called "team-work" are where the bullshit artists go to ride the coat-tails of people who can actually do the work. On another note, why does everything have to be about benefiting society all the time? When I was an undergrad, I wanted to learn how to write a red-black tree, or how logic gates worked, not choke on force-fed activism. But I hate people, so... Ultimately, the beauty of coding is that it's just you and the machine. The machine is objective, it has no mercy, it demands that you be correct, and you be exact. You can't bullshit it, you can't hand wave it. Your idealistic O(nLog(n)) algorithm wilts in the face of the harsh reality of constant factors and memory access patterns. The machine doesn't care if you're black, white, or purple, nor whether you have bits that go in or bits that go out.
- jacobolus 11y agoIntroductory computer science is a tough subject to teach in colleges, because the students coming in have a vast range of different preparation. Even at top engineering schools like Harvey Mudd, some incoming students have never written a line of code, and others have been programming at a semi-professional level for years. If you present people with highly abstract material that they haven’t seen the like of before, without developing the intrinsic motivation to study it, you can end up weeding out even very smart and capable students. There’s no harm in taking some of those first-year college students who don’t a priori “find the science of computation self-evidently beneficial”, and showing them its benefits first-hand. Even the ones who go on to concentrate their studies in biochemistry or structural engineering or pure mathematics will surely benefit. Project-based group work doesn’t have to be easy. Indeed, I suspect the new curriculum at Harvey Mudd is objectively harder than the standard curriculum at most schools.
- phasmantistes 11y agoUgh yeah that sentence made me cringe. It doesn't do the intro courses justice at all. As someone who has both taken and graded those courses, I'll try to clarify. The intro courses don't consist of homework like "write a function which does X", and they aren't graded like "your function produced the correct output". Instead, the homework consists of week- to two-week-long projects in which the student produces a moderately complex piece of code. Depending on the point in the semester, this could be anything from a collection of pure mutually-recursive functions, a self-contained class with a nice api boundary, a collection of classes to draw some graphics format, or something else entirely. The homework is always done in pairs, and you're not allowed to work on it unless your partner is present for pair programming. During official lab timeslots, students are told to trade off "driving" (using the keyboard) every 15 minutes to half hour. Finally, the assignments are graded both on whether they produce the correct output and the clarity and efficiency of the code. Student pairs are switched up multiple times throughout the semester, and the graders/tutors ("grutors") spend significant amounts of time working with each pair and making sure that both members understand what's going on.