3 ms·
Out of curiosity, what do you think that adoption will look like?
by Mayzie 10y ago
Out of curiosity, what do you think that adoption will look like?
- ftlio 10y agoTerm projects. Those are what prepared me for getting paid to apply my academic knowledge more than anything. All the better when it was left up to me to create the spec. Most of the time I had to abide by some requirements, like 'Must use SPI for communication between two or more microcontrollers', but it was pretty obvious in these classes if you were actually applying what you were learning or not.
- valine 10y agoPersonally I'd like to see a large reduction in the emphasis on exams and repetitive homework. Today, at least to some degree, classes are designed to rank students against their classmates by who can memorize the most trivia. The primary objective of every class should be that the students know how to find info related to the subject. The final project in an algorithms course could be something like, "Using google and a programming language of your choice provide an implementation of $ALGORITHM." Where $ALGORITHM could be an algorithm that was not explicitly covered in the course material. This would show that the students have a broad enough understanding of the material that they can seek out solutions to types of problems they haven't seen before.
- NotOscarWilde 10y agoIt depends on what you want from an "Algorithms" course; you could even split it into levels as follows: 1. Graduates can implement algorithms given a nice and thorough description in a textbook or a website. 2. Graduates can implement algorithms given a few minute whiteboard explanation by a colleague or a short answer on a Stack Exchange site. (For a short answer example, look at some at cs.stackexchange or cstheory.stackexchange, where expertise is often assumed.) 3. Graduates can design and implement algorithms that are simple derivatives of those they have seen or implemented before, without any textual advice. 4. Graduates can design non-trivial derivatives of algorithms that they have seen before, given a problem that is not googleable (for example, it came up as a secondary question in your research). The actual goal depends on the aims of your university or class. The problem with any level besides 1 is that it seems to require an artificial test environment. You want to give the students easy exercises, say solvable within 60-90 minutes, and you want to give them as much freedom for their implementation environment -- but the reality is, any popular and "time-tested" exercise is fully solved online, most likely in full detail on Stack Overflow. (Speaking from experience, trying to "dress up" the problem in some alternate description doesn't work if the students can Google.) And, predictably, if you forbid the access to the internet you get upset students, you provide an easy and effective way to cheat, and you give ammunition to the critics who call your testing methods "distant from any actual practice". I don't know what the "right" answer is, but I am fully convinced that stopping at level 1, the only level where you can realistically allow access to the internet, is not the right way.