5 ms·
The point of the article has been missed entirely in this comment. The author of the orignal article uses the examples of code re-use and efficiency as just th
by alanfalcon 16y ago
The point of the article has been missed entirely in this comment.
The author of the orignal article uses the examples of code re-use and efficiency as just that: mere examples of real world considerations that his students should use in class as they would in real life. One lesson has the author providing students with an executable and asking them to reverse-engineer the code: this has nothing to do with re-using code or copying mistakes or cheating. The author creates interesting, useful problems for his students to solve. In this way, the students are self-motivated to learn and grow and problem solve for themselves, rather than simply try to achieve the highest grade by whatever means necessary. The author does not encourage cheating, he encourages engaging students meaningfully.
I, for one, would have loved such a teacher in my CS classes. It might have prevented me from dropping out of the CS program. To add context, I was regularly in the top 5% of my CS classes. I would rush to complete all assignments on my own so that I could spend the rest of my lab time creating my own interesting problems to solve (wherein I would start to truly learn things that would be useful to me even if I was never tested on them directly.) I ended up pursuing (and obtaining) my degree in entrepreneurial management where cheating was also the norm among my classmates, but where I at least felt like I was being taught new things that I would be able to apply in my later life. While cheating was rampant, I never let it piss me off... I simply went on being exceptional and always found myself standing out from the crowd.
- tom_b 16y agohristov is dismissing the point of the article rather than missing it. CS higher education is faced with deep challenges (not least of which is the continuing argument of how much CS should be software-engineering oriented). Ignoring those challenges entirely though, we should not conflate plagiarism of programs with code re-use. Code re-use is an important part of the "real world." But not in the practice of programming for learning purposes. Exploratory programming and code hacking, as you point out, is a wonderful learning mechanism. I'm scared when the original article makes statements like "I no longer teach programming by teaching the features of the language and asking the students for original compositions in the language." And you should be too. I don't worry so much about cheating, but rather more about the end result in the marketplace. Why do organizations shy away from developing their own tools and software internally? High cost with a low likelihood of success? I think that poor software developers negatively influence the opportunity for software development. There are times when custom software development has significant advantages over the purchase of software solutions. While it is important to actually consider the benefits and costs of custom vs buy, I always feel a little bewildered explaining that we can create and support custom software in-house. I also cringe at in-house software dev shops that primarily are configuration experts and administrators for purchased solutions. Of course, that same reluctance to do in-house dev is probably a major opportunity for entrepreneurial hackers.