ClojureBridge/curriculum

Add more information about "Naming functions" and "Important functions" in slides?

Opened this issue · 3 comments

In module3.html there's a slide on "Naming functions" that says

Functions are named like any other value

then explains that "Predicate functions usually end in ?.

However, the curriculum goes into greater detail about the requirements for naming functions, then has a section called "Important functions", with a subsection called "Collection functions", before jumping into the discussion of map and reduce--which the slides jump into directly.

I could've sworn that we previously had that information in the slides, but cut it out because we found ourselves short on time during the actual workshops. That justification makes sense to me, but now, it feels like the slides are lacking flow in that section, in particular.

Does anyone have suggestions as to how we can improve that section of the slides?

tl;dr Jumping straight from "This is what predicate functions look like!" to "Here's map and reduce!" feels really odd, to me.

Just reviewed the functions section and felt the same way - it needs some additional content.

My suggestions:

  • add one more exercise to the section on writing functions
  • add some additional content to the section on core functions
  • add a couple of exercises to the core functions section - 4clojure problems or ones in that style would work. They do a good job of covering use of core functions.

On the naming slide, what if the first bullet was changed to something like

  • Functions are named like any other value:
    • typically kebab-case, and may include numbers, *, +, !, -, _, and ?.

The list in Important Functions seems to be intended as a review of fns previously seen, but many have not, including rest and the Map fns assoc, dissoc, and merge. (I'm assuming Data Structures used to cover more than just vectors and was later split up into separate sections.)

One option would be to pare that list down to fns that were introduced earlier and then as a final item on the list have "higher-order functions", which could lead into "Functions that take other functions."

I took a crack at this:
screen shot 2015-04-22 at 16 00 03 pm

These are some things I wanted to know when I was learning how to name functions but I'm worried that

  1. This is too much info and not necessary.
  2. This doesn't address the issue of flow from the function naming slide to the functions that take other functions slide.