It seems like one of the key lessons here -- seen especially in the
absorption code -- is that you don't have to understand every detail of
some code to use it.
We do mention this and say that it's the magic of abstraction. But
perhaps in the spirit of transparent assignment prompts, maybe we should
call that out? Perhaps even with a discussion that there's degrees of
abstraction: for example, using a foreign library for which you have no
access to the code, the actual function is a pure black box, code-wise.
But here you have a...gray box? You have the code, but you don't need to
understand it fully in order to correctly use those methods.
It might be useful to make those ideas clear, and also to mention
another lesson here, namely refactoring.
I imagine we might, say, add a section to the README stating the
learning goals. (And then refer to those in the eval.)
...and if we're going to do that here, for consistency, perhaps we
should consider for all the take-home exercises and homeworks?
Just a thought.
It seems like one of the key lessons here -- seen especially in the
absorption code -- is that you don't have to understand every detail of
some code to use it.
We do mention this and say that it's the magic of abstraction. But
perhaps in the spirit of transparent assignment prompts, maybe we should
call that out? Perhaps even with a discussion that there's degrees of
abstraction: for example, using a foreign library for which you have no
access to the code, the actual function is a pure black box, code-wise.
But here you have a...gray box? You have the code, but you don't need to
understand it fully in order to correctly use those methods.
It might be useful to make those ideas clear, and also to mention
another lesson here, namely refactoring.
I imagine we might, say, add a section to the README stating the
learning goals. (And then refer to those in the eval.)
...and if we're going to do that here, for consistency, perhaps we
should consider for all the take-home exercises and homeworks?
Just a thought.