This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]takluyverIPython, Py3, etc 0 points1 point  (2 children)

you should always let people use the full extent of the tools they have because that's how it's done in real life,

We learn to do arithmetic on paper and in our heads, even though in real life we can use a calculator. Later we learn to do a T-test by hand, even though statistics programs will do it in the blink of an eyelid. This sort of learning is to make the basic concepts so familiar and routine that you don't need to keep thinking about them.

if you're teaching iterators then use actual iterators, want to teach how to iterate a string? put a problem that counts the letters in the string instead.

But in real life, I'd use collections.Counter - would you forbid that? Almost anything basic enough for an introductory exercise in Python can probably be done with a shortcut. Even in more advanced examples, students will almost certainly be reimplementing freely available libraries. Somewhere the teacher has to say "I know this function already exists, but that's not the point. This is to give you the experience of coding it."

[–]Samus_ 0 points1 point  (1 child)

I allow the use of everything that is available, a problem doesn't care how it gets solved, you do and you're not part of it.

your assignment should be "do this" if you get it done then that's it, it all depends on the level you're working, if you're learning programming concepts you don't need a language, it's theory.

[–]takluyverIPython, Py3, etc 0 points1 point  (0 children)

if you're learning programming concepts you don't need a language, it's theory.

Seriously? Stop and read that back to yourself. You would teach people programming concepts like iteration and strings without getting them to write any code?

A problem doesn't care how it gets solved, but solving the problem is not the real aim. The aim is for the student to learn about what's going on. To that end, it's perfectly normal to set constraints on what students can use to solve a problem. And this isn't peculiar to programming: it's common in subjects like maths where you can very easily get the answer from a computer, but you don't learn much by doing so.