Excellent work. I think all high school students should be taught a functional programming / declarative language first as a way to encourage computational thinking which is useful in so many fields. By teaching an non-functional / imperative language first, potential computational thinkers are discouraged from developing this important skill.