-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
When the students were frustrated with csv-i, I sat talked to them to better understand and address the issues. These are the notes I took.
To close this issue, look at each item and either turn it into a todo or decide it's not worth doing anything about (too unclear or too much work or not an issue)
#### "Difficult to track how all the objects were interacting with each other"
Another student suggested that a visual representation would be helpful.
In this case, we only have three classes, maybe we could come up with something.
At the same time, it's a skill they will have to learn, so they will get better at it over time.
But it's probably good to give them a strong model early so that they have a foundation to develop this skill on top of.
#### "Visual representations would be helpful"
I agree. Unfortunately this is difficult:
* Depending on how much you know, the way to represent an object graph may be different.
* There is not necessarily a common representation of an object graph. Perhaps the answer is that I need to explore UML more?
* Probably requires showing visually how the graph changes as we modify the code, so requires juggling and updating lots of images and so forth (tedious, easy to get wrong).
* Perhaps a tool that generates these? Maybe Rubinius + graphviz
#### "Felt like copying someone else's calc homework w/o having even taken arithmetic"
I don't think it's worth introducing "arithmetic", which is presumably some simpler code before this.
Aside from the class method, this is pretty simple (though probably they are comfortable accepting it and are more confused by the composition).
I think a better solution is to ease the transitions
#### "Jumped well beyond the current horizon of knowledge"
I feel like maybe we should remove the mock object? Downside is this requires us to implement the repository
#### like that there are more exercises at the bottom to apply the ideas to on our own
#### would be good if there was a "roadmap" at the beginning
#### big jump to go from copy/paste to "now go make your own"
Add in my high-level interpretation
play with TDD and object design
use an integration test to guide us
integration test gets the wiring into place (files/classes/methods)
now we specify all the behaviour and test edge cases with unit tests
introduces another object,a repository (doesn't really go into the reasoning about why)
separate out file reading from entry containment so you can intialize with just ary of hashes
create entry data structure
when low-level tests pass, go back to high-level test for guidance about what to implement next
This leads us to write a test for looking up by first and last name
and then finally reverse lookup
Maybe reassure them when we do the big jump, that it's okay that they wouldn't have thought of that
Metadata
Metadata
Assignees
Labels
No labels