Skip to content

Instantly share code, notes, and snippets.

@lazywithclass
Created November 6, 2017 10:26
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment