Call for interest: Haskell in middle school math education

48 views
Skip to first unread message

Chris Smith

unread,
Jan 8, 2017, 1:49:25 AM1/8/17
to codeworl...@googlegroups.com
(Cross-posting this from haskell-cafe to seed conversations here.)

----------------------------------------

Hello fellow Haskellers!

Are you interested in getting Haskell into middle school (ages 11-14) math or other classes?  I'd love to hear from you!

Many of you are probably already aware that I've spent the last several years teaching Haskell to children and teens via my CodeWorld project (http://code.world and http://github.com/google/codeworld).  Well, 2017 is my year to make a bigger success of the whole effort.  So, let's get Haskell into K-12 schools as a part of mathematics education.  By incorporating a programming language like Haskell that's faithful to modeling using true functions, variables, and equations, we can make mathematical modeling and algebraic reasoning tangible and creative in a way it's never been before.

There's a lot that's already been done, but the task is still daunting.  With some help from some coworkers of mine at Google, and in conjunction with the New York Haskell User Group, I've put together a small budget of around $60K in USD, to start this ball rolling a bit faster with some paid help.  Some possible goals include:

- Produce quality instructional materials to help teachers around the world incorporate Haskell into their classes and after-school activities.
- Produce videos and online resources to support students learning on their own.
- Build software features make the CodeWorld tools more helpful, easier to use, easier for students share their work more broadly, and more supportive when students need help.
- Make what we already have available to more students, and educate more teachers.
- Spread the word and look for more support so we can keep up the effort after the initial investment is finished.

Everything produced as part of the project will be distributed under either the Apache 2.0 open source license, or the latest Creative Commons attribution-only license, so that it's freely available for any educational institution (or anyone else) to use, modify, redistribute, etc.

So here's where you can step in:

- Join the codeworld-discuss@ mailing list (https://groups.google.com/forum/#!forum/codeworld-discuss)
- Introduce yourself, and tell us a bit about what vision you have, and what role you might want to play.  This could be a spectator, teacher at a school near you, volunteer contributions on the side, or even a leadership role with a salary attached!

Cognizant that solo decisions can be poor ones, I hope to follow some initial sharing of ideas with gathering a small handful of like-minded individuals - I know you're out there - to make decisions about the best way to manage the effort, and go from there.

Some background reading:


I look forward to hearing from you.

Christopher Anand

unread,
Jan 8, 2017, 8:00:07 AM1/8/17
to codeworld-discuss
Hi Chris,

At McMaster Outreach, we have also arrived at a similar place, but with more twists and turns!  For middle school, we have used many different languages, including Python and Alice, and some I have even forgotten!  All with big problems.

In my day job teaching undergraduates, I have used Haskell and Gloss, and even tried using an earlier version of CodeWorld. 

Then I discovered elm, tried it out with middle schoolers first and discovered it to be a language I could use in both jobs!

I used to explain to teachers that there are different models of computation, and we happen to have picked one which interferes with algebra, but that argument has found remarkably little resonance.  What does have resonance, is seeing kids create things, and using math to do it, and I would recommend having a greatest hits page like


We also decided to simplify some things in elm, but probably wouldn't have done so had elm not dropped interaction in its graphics library when it dropped FRP, which in the larger elm picture made sense as html support is more important.  But there is little educational value in teaching html/css.  What is interesting is that it appears that elm's increasing adoption is partly driving by a more general attempt by web developers to distance themselves from imperative models of computation.  In this context, it makes a lot of sense for elm to have adopted models of computation most easy to understand by newcomers, which is a different group than beginners, but benefitting from many of the same features.  Our graphics library is available under BSD3


It is necessarily unstable, because elm still is.  But we definitely haven't figured everything out, and have unpublished (but shareable) versions with experimental/known-flawed features needed to run the hall of fame, an on-line assignment system, and a collaboration system built for my first-year course.  Suggestions are welcome!

You can try it on-line at


but may move, and don't let your browser switch to https: or you will get a vestigial page.  If it goes down, please let me know.  I know very little about web programming---just enough to make that in warp.

Christopher







Paul Brauner

unread,
Jan 8, 2017, 8:21:15 AM1/8/17
to codeworld-discuss
Hi, I'm a fellow googler in Europe. I've been following codeworld from afar and I like it a lot! I'm subscribing to this mailing list mostly out of curiosity (so I'm planning on being a "spectator"). But if you have small coding tasks I'm also happy to help.

Keep up the awesome work!

Paul

Chris Smith

unread,
Jan 8, 2017, 11:55:39 AM1/8/17
to codeworl...@googlegroups.com
On Sun, Jan 8, 2017 at 5:00 AM, Christopher Anand <christop...@gmail.com> wrote:
I used to explain to teachers that there are different models of computation, and we happen to have picked one which interferes with algebra, but that argument has found remarkably little resonance.

Interesting, because that's precisely the argument I think is the most honest and important.  I do agree that it's hard to get initial traction.  In practice, what happens is that schools initially roll their eyes at the math angle, but let me teach anyway because of the craze around teaching programming.  (Well, except that always say "coding" instead of programming, because education is weird...)

I think one problem in making the mathematics argument is that schools have become skeptics, accustomed to marketing with lines like "this develops critical [common-core aligned, etc.] math skills", and then discovering that the claim was based on nothing but a few contrived surface lessons on the Pythagorean theorem.  The other (and sadder) side of this coin is that many elementary and middle school math educators don't really have the depth of content knowledge to know what modeling systems with mathematics looks like, so it often takes educating the educators themselves to overcome that initial skepticism.

In any case, I agree with what you say next, that the math connections aren't the most exciting initial pitch.  But I feel pretty strongly that it's important not to abandon the angle.  At TFPIE last summer, Matthias Felleisen gave a great recap of his history with TeachScheme, and one great point he made that I agree with 100% is that schools have a lot on their plate, and functional programming for its own sake (maybe even programming at all!) just doesn't make the cut of what is important enough to teach in a serious way.  Algebra does make that cut.  Whatever gets a foot in the door is fine (and I have no problem using the current "teach coding" fad to do that), but it has to be the mathematics that keeps it there.  Otherwise, the program won't survive the day when schools wake up and realize that all of their Hour of Code and robotics activities haven't really met any real learning goals.

What does have resonance, is seeing kids create things, and using math to do it, and I would recommend having a greatest hits page like


Sounds exciting!  Unfortunately, your link isn't working for me.  I see a header, but no projects.

Having a gallery of student projects should definitely be a goal for CodeWorld as well, I think, and I already have an ad hoc collection of projects that I show off when people ask.  I should probably organize it on the web site, but the truth is that I'm rather awful at web design.

Our graphics library is available under BSD3

 
You can try it on-line at


Thanks!  I'll play around with this.  I considered Elm as an alternative to Haskell, back in 2012 after my first year of teaching.  At the time, I decided against it for reasons that seem unimportant today.  In particular, I thought at the time that laziness was significantly more important than I do now.  (I still consider it important, for the "foil imperative thinking" goal; but I think I could live without it for good reasons.)  I'm still envious of a few things about Elm.  For instance, the smaller distance and fewer layers between the source language and JavaScript means I'd expect better (or at least more reliable) performance.  And, though it may seem trivial, I'd pay good money to be able to write : instead of :: for type annotations.  (The last part specifically because I've worked so hard to brand my dialect of Haskell as being just executable math notation.)

I'm curious if you can give a summary of the reasons you decided against CodeWorld for your own project.  Would be good to know if there are obstacles that could be removed, or important considerations I've been ignoring.

fal...@ebrschools.org

unread,
Jan 9, 2017, 1:25:27 PM1/9/17
to codeworld-discuss
Hi Chris and Christopher,

I have similar interests, but my target is high school students and math/science teachers. I am developing a 5-week mini-course with the dual purpose of introducing coding to students and boosting their proficiency in algebra. I have used Bootstrap and CodeWorld, and despite their differences, I got the same pre-post results with both of them.

I also took a look at Elm, but I have mixed feelings about it, and I find it risky to depend on it, given that it has undergone several incompatible redesigns, and there could be more in the future. I also need something that does not require installation in the school computers, and when Evan removed the Graphics subsystem from elm.org/try it made it more difficult to use it that way. I knew about the McMaster Elm package, but I did not know about the macoutreach.rocks Web site. Is that intended for public use or is it something just for internal use?

On the other hand, I love the simplicity of CodeWorld. Even replicating the server locally is really easy, and the drawing primitives are very intuitive. When I taught CodeWorld to math teachers last summer, they got it very quickly, as they found it very natural to do things that way. Their main concern was the lack of a curriculum that integrates it with the actual math learning objectives. They basically said that they would use it if it was possible to replace a regular lesson with a lesson based on CodeWorld, but they would not use it as just an enrichment activity because they have many constraints due to the end of course standardized testing, and coding requires too much effort from students for just enrichment.

When I taught it to students, they were not so enthusiastic. Most students find coding and math boring no matter what you do with it, and the students in my class were chosen because of their low performance in math to see whether coding could be used to motivate them and boost their math skills. Compared to Bootstrap, they were more engaged while working on a project, but not enough to use it outside of class, and only a few of them saw a connection between coding and math.
I am testing CodeWorld again this quarter with a different cohort of students to gather additional data, so it is still too early to conclude anything.

The school I am working with also offers a Computer Science Principles AP course based on the UTeach curriculum, but I have been thinking for a while whether developing an alternative curriculum for CSP-AP based on CodeWorld would be worth it. Still just an idea, but if you have any thoughts about it, I will be happy to discuss it.

Chris Smith

unread,
Jan 9, 2017, 8:05:25 PM1/9/17
to codeworl...@googlegroups.com
Thanks Fernando!  Some thoughts follow.

On Mon, Jan 9, 2017 at 10:25 AM, <fal...@ebrschools.org> wrote:
I have similar interests, but my target is high school students and math/science teachers. I am developing a 5-week mini-course with the dual purpose of introducing coding to students and boosting their proficiency in algebra. I have used Bootstrap and CodeWorld, and despite their differences, I got the same pre-post results with both of them.

Great to hear that you've collected some pre and post testing results for CodeWorld.  That's on my list of things I really should start doing.  Can you share the questions that you've used for this?

When I taught CodeWorld to math teachers last summer, they got it very quickly, as they found it very natural to do things that way. Their main concern was the lack of a curriculum that integrates it with the actual math learning objectives.

Yes, I'm with you about the curriculum.  However, sometimes it's not clear to me (having never really done the teacher thing at a professional level) 

The other concern I hear from teachers (likely different teachers from those who enrolled in your class) is that their own lack of confidence in the technical skills prevents them from feeling comfortable introducing this in the classroom.  It takes a lot of prior knowledge to teach a class from scratch.  So I'm also very focused on how to create something that supports teachers learning alongside students, rather than having to become experts ahead of time.

They basically said that they would use it if it was possible to replace a regular lesson with a lesson based on CodeWorld, but they would not use it as just an enrichment activity because they have many constraints due to the end of course standardized testing, and coding requires too much effort from students for just enrichment.

I've run into this as well.  Replacing mathematics instructional hours is a high bar to aim for, though, as teachers rightly want solid reasons to believe they aren't losing measures like test scores that are accomplished with the existing math curriculum.  Integrating with the existing math curriculum and testing and such also raises questions about how to work well with different curriculum between districts, schools, etc; standards that seem on track once again to vary more from state to state (much less internationally).  I've been privileged so far to just lead after-school activities where I'm not accountable for these things!

That said, I think CodeWorld solidly hits about 50% of the Common Core mathematics standards in grades 6, 7, and 8, and therefore something similar for alternative standards.  Details are explored in this document (which is old, so don't take anything there as gospel.)  The missing standards are generally manual computation skills (e.g., long division), statistics and data analysis, and just some odds and ends that are close to ideas that work in a CodeWorld curriculum, but are just an awkward fit for some reason.  Examples of the latter group include synthetic and three-dimensional geometry, reasoning about irrational numbers, and the mechanics of solving equations.

The data analysis and statistics angle is interesting.  In addition to covering more mathematics standards, Stephen Wolfram has an article worth reading about teaching computational thinking, in which he makes the case that making substantial data sets available a computational environment is a game-changer for student motivation.  He notes, for example, that students express a much wider interest in projects when they see that a diverse selection of data is available to them.  But I still don't have a good story for how to do this in CodeWorld without losing focus or adding complexity.  So, I think this one is a miss for now.

In the end, my conclusion is that it's not realistic to replace an entire mathematics curriculum with CodeWorld.  But I wouldn't hesitate at all to say that teaching it can cover a surprising amount of the middle school math curriculum.  One activity hitting half of the curriculum goals isn't bad.  For the time being, though, I feel like the best angle is to aim for elective and after-school environments, and let more intrepid teachers consider whether to replace core math instruction?

When I taught it to students, they were not so enthusiastic. Most students find coding and math boring no matter what you do with it, and the students in my class were chosen because of their low performance in math to see whether coding could be used to motivate them and boost their math skills. Compared to Bootstrap, they were more engaged while working on a project, but not enough to use it outside of class, and only a few of them saw a connection between coding and math.
I am testing CodeWorld again this quarter with a different cohort of students to gather additional data, so it is still too early to conclude anything.

I'm definitely interested in what you conclude here.  I don't think student interest has been a problem at all for me.  It may have to do with ages.  I can imagine it might be harder to get some high school students interested in things just for the sake of creativity, versus younger ages.  If you see the same thing a second time, I'd be very curious to dig further into what's going on there.

The school I am working with also offers a Computer Science Principles AP course based on the UTeach curriculum, but I have been thinking for a while whether developing an alternative curriculum for CSP-AP based on CodeWorld would be worth it. Still just an idea, but if you have any thoughts about it, I will be happy to discuss it.

Sounds exciting!  I'm not at all familiar with the AP CSP curriculum, but it does look interesting.  I'll look through that curriculum (I assume you mean https://cs.uteach.utexas.edu/).




On Sunday, January 8, 2017 at 12:49:25 AM UTC-6, Chris Smith wrote:
(Cross-posting this from haskell-cafe to seed conversations here.)

----------------------------------------

Hello fellow Haskellers!

Are you interested in getting Haskell into middle school (ages 11-14) math or other classes?  I'd love to hear from you!

Many of you are probably already aware that I've spent the last several years teaching Haskell to children and teens via my CodeWorld project (http://code.world and http://github.com/google/codeworld).  Well, 2017 is my year to make a bigger success of the whole effort.  So, let's get Haskell into K-12 schools as a part of mathematics education.  By incorporating a programming language like Haskell that's faithful to modeling using true functions, variables, and equations, we can make mathematical modeling and algebraic reasoning tangible and creative in a way it's never been before.

There's a lot that's already been done, but the task is still daunting.  With some help from some coworkers of mine at Google, and in conjunction with the New York Haskell User Group, I've put together a small budget of around $60K in USD, to start this ball rolling a bit faster with some paid help.  Some possible goals include:

- Produce quality instructional materials to help teachers around the world incorporate Haskell into their classes and after-school activities.
- Produce videos and online resources to support students learning on their own.
- Build software features make the CodeWorld tools more helpful, easier to use, easier for students share their work more broadly, and more supportive when students need help.
- Make what we already have available to more students, and educate more teachers.
- Spread the word and look for more support so we can keep up the effort after the initial investment is finished.

Everything produced as part of the project will be distributed under either the Apache 2.0 open source license, or the latest Creative Commons attribution-only license, so that it's freely available for any educational institution (or anyone else) to use, modify, redistribute, etc.

So here's where you can step in:

- Join the codeworld-discuss@ mailing list (https://groups.google.com/forum/#!forum/codeworld-discuss)
- Introduce yourself, and tell us a bit about what vision you have, and what role you might want to play.  This could be a spectator, teacher at a school near you, volunteer contributions on the side, or even a leadership role with a salary attached!

Cognizant that solo decisions can be poor ones, I hope to follow some initial sharing of ideas with gathering a small handful of like-minded individuals - I know you're out there - to make decisions about the best way to manage the effort, and go from there.

Some background reading:


I look forward to hearing from you.

--
You received this message because you are subscribed to the Google Groups "codeworld-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codeworld-discuss+unsubscribe@googlegroups.com.
To post to this group, send email to codeworld-discuss@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/codeworld-discuss/d075d1b9-bd86-402a-ab32-fb6874b5c3c8%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages