Instantly share code, notes, and snippets.

# lazywithclass/blog-post.md

Created November 6, 2017 10:26
Show Gist options
• Save lazywithclass/0912351809818faeadde1dd6a0d7f8e5 to your computer and use it in GitHub Desktop.
[Teaching programming] Lesson three

## [Teaching programming] Lesson three - lazyblog

### Thoughts

There was some confusion on how to use functions and recursion in the end. I didn't spot that previously. I am starting to think that a lot of what "being a teacher" means is to understand when your audience got the idea you're trying to pass on.

So what didn't I understand? For sure the fact that going from

`(car (rest '(1 2 3)))`

to

```(define second
(lambda (lat)
(car (rest '(1 2 3)))))```

isn't as straightforward as I thought, and thinking about it, why should it be? I went through each component of a function definition, I think we're there now. I basically told her that

• `define` makes a new thing available to us, it could be a function or a variable
• `lambda` defines a function, one that has no name, which is why we need the previous step; a function is a reusable block of code, so instead of writing `(car (rest lat))` we can write `(second lat)`.

Another thing I see her struggling with is concepts from previous lessons, it looks like we're missing things as we go along. For example the fact that the first position in a list is reserved for function application is a slippery concept.

I really should help her with a visual. I've started one a few days ago but it didn't look smart enough lioke those super cool ones you see online, I think I will try once more and push through even though the outcome looks silly, hopefully it will be helpful for her. Also, she's a visual learner, I really need to do that.

### On exercises

In general they seem to be too difficult. One way we could approach this problem is to address them while there, we could slow down the pace a bit, introducing new stuff every two weeks (or even every three) and addressing exercises in the other two lessons.

Now that I think about it fells like she's feeling the pressure of not being able to finish the exercises, and this is something I don't want because it removes the fun. Something that I've clearly seen in her, for example the first time she solved an exercise and saw a function returning the proper value after a required tweak. It was a very satisfying moment, to keep her engaged I think that moment should be as frequent as possible.