The Good, The Bad and The Ugly

22 views
Skip to first unread message

Sean Corfield

unread,
May 23, 2014, 11:17:36 PM5/23/14
to clojurebridg...@googlegroups.com
Hi folks,

I think everyone who has been invited so far has signed up so I wanted to kick off the discussions as promised in this thread a week ago:


We've run four workshops now and there are some common themes in the feedback we've had from all of them. I'll briefly outline how that feedback breaks down into what works well, what needs some improvement, and where we have a bit of an unknown (except we know it's "broken").

As noted below, I'll start separate discussion threads for four specific areas - and I'll start those over the weekend - so feel free to post introductions as a response to the "welcome" thread linked above, as well as starting new threads on other areas that I haven't covered specifically below, which you feel are important for us to discuss.

The Good

Most folks are pretty positive about the curriculum overall. It's clear there's a huge amount of work behind it and it tackles Clojure's features in a reasonable progression to build students up from pretty much no programming knowledge to a state where they can solve a number of small problems. It's a great base for us to build on.

The Bad

The mornings generally go pretty smoothly but we seem to bog down in the afternoon in a few areas. For experienced developers, the pace is too slow in the morning, but picks up - and we still lose some of them in the afternoon. We've found that if we go "off script" and expand on certain areas of the curriculum, we can lose people pretty quickly and derail the schedule of the day.

I'll start a couple of specific threads where we can discuss aspects of this: Curriculum Pacing for Beginners, and Advanced Curriculum. We definitely need multiple "levels" of curriculum, we just have to figure out how to go about it so we can easily adapt for mixed levels at any given workshop.

Building updated versions of the slide deck has been problematic for several teachers/TAs. The slide deck is built with Hoplon, which uses "boot" rather than "lein" and that seems fragile, as well as not working on Windows (at least we couldn't figure that out in SF).

I'll start a separate thread on The Slide Deck Issue as it's mostly a technical issue.

The Ugly

The Web App. A little bit of history is worthwhile here. Last year, as ClojureBridge was coming together, there were several discussions about what we should try to have students build as part of the workshop. Many people felt we should play to Clojure's strengths of data manipulation and that "data science" could have a nice eco/environmental pull to it that would catch the interest of students. There was also a strong sense that we should ideally provide students with the opportunity to create something they could easily show off to their friends - this is key to what RailsBridge achieves.

So we decided to try to build a simple web application, using the World Bank Indicator API as a way to ease students into the data science side of things, and offer a closing module where they could get the app up and running on Heroku to show their friends what they had achieved.

I think it's fair to say that this is a rather ambitious goal and our workshops so far have shown this is a very problematic aspect of the curriculum.

This also highlights one of the ways in which RailsBridge is very different from ClojureBridge: RailsBridge is teaching a web framework, with only a little bit of the language, so it's close to the target from the get-go - a deployable web application on Heroku. Clojure's approach to web development is radically different: we prefer small composable libraries over opinionated frameworks and thus the hill to climb to deploy a web application is both a lot higher, a lot steeper, and has a lot more "machinery" in it to even say "Hello World!".

Durham found the app just too much and identified that we need to rethink this area. In San Francisco, we ended up being very rushed toward the end of the day to explain how the skeleton app provided works at even a basic level. Minneapolis took a completely different tack with a chat application instead and wove it more deeply into the curriculum throughout the day (but I get the impression not too many students completed this app?). I'm not sure what happened in Brisbane regarding the app - Jen, can you provide some feedback there?

I'll start a thread for an open discussion of the Curriculum Application - this is probably the most amorphous area for us.

Sean Corfield -- http://clojurebridge.org

"ClojureBridge aims to increase diversity within the Clojure community by
 offering free, beginner-friendly Clojure programming workshops for women."

signature.asc

Bridget Hillyer

unread,
May 26, 2014, 9:16:46 AM5/26/14
to clojurebridg...@googlegroups.com
Sean - thanks so much for getting discussion going on the ClojureBridge curriculum. We have a really great curriculum, largely due to the hard work Clinton did ahead of the Durham workshop. It has been the basis for four very successful workshops already. We have chatted about general direction of the curriculum during meetings, and the consensus is that we have a really good basic curriculum that we should stick with and that we should promote as the "main" curriculum. That way, workshops will have one central resource to rely on that is easy to find if they just want to focus on putting on a workshop and not build their own curriclum.

The great thing about having had multiple workshops with this curriculum is that we are seeing some common themes emerge about what doesn't work so well with it. My opinion is that these challenges are 1) fairly clear now and 2) easy to fix. So it is my hope that we can focus on getting those things fixed as soon as we can so that future workshops won't continue to repeat the same problems. Thanks to the San Francisco contingent who have already contributed some great updates. 

One thing I want to add is that, while we need to focus on getting the basic curriculum in shape, I hope that in the not-too-distant future, we can think about other curricula, also. I think we have a great platform that we can use to do some interesting and experimental stuff with what we teach. So I'd be happy to hear people's ideas in that direction, too.

Bridget

Brian Maddy

unread,
May 26, 2014, 11:08:54 AM5/26/14
to clojurebridg...@googlegroups.com
"Minneapolis took a completely different tack with a chat application instead and wove it more deeply into the curriculum throughout the day (but I get the impression not too many students completed this app?)"

A number of people got the app finished, but I don't think it was the majority. The problem wasn't really the app though, it was that we made the mistake of adding a bunch of stuff to the functions module that intimidated and confused people. I think the things that worked well about the chat app were that it starts out simple enough to interleave it in with all of the modules and people actually get to build something from scratch (like they would in the real world). The things that didn't work as well were a result of us not merging the chat app with the slides very carefully. For example, we needed to rearrange modules to make things line up caused us to accidentally start using maps in the slides before we did the module that introduced them.


--
You received this message because you are subscribed to the Google Groups "clojurebridge-curriculum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curr...@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurebridge-curriculum.
For more options, visit https://groups.google.com/d/optout.

Sean Corfield

unread,
May 26, 2014, 1:03:43 PM5/26/14
to clojurebridg...@googlegroups.com
On May 26, 2014, at 8:08 AM, Brian Maddy <br...@brianmaddy.com> wrote:
A number of people got the app finished, but I don't think it was the majority. The problem wasn't really the app though, it was that we made the mistake of adding a bunch of stuff to the functions module that intimidated and confused people. I think the things that worked well about the chat app were that it starts out simple enough to interleave it in with all of the modules and people actually get to build something from scratch (like they would in the real world). The things that didn't work as well were a result of us not merging the chat app with the slides very carefully. For example, we needed to rearrange modules to make things line up caused us to accidentally start using maps in the slides before we did the module that introduced them.

Thanx for the background on the MN app. I think weaving an app through the curriculum like you did was a great idea but I agree that making the flow of the curriculum match the evolution of the app is important (Clojure requires we know quite a bit of stuff before we can build even a simple web app - which makes this a challenge).

Can you speak a bit about why you went with a different app? The interactivity seems appealing but it doesn't seem to play to Clojure's strengths.
signature.asc

Jennifer Smith

unread,
Jun 12, 2014, 9:10:25 AM6/12/14
to clojurebridg...@googlegroups.com
Hi there

I can certainly fill you folks in on what happened in Brisbane.

The day went really well, but we suffered from the same problems as have been described here with the web app. They were made slightly more bothersome by the fact that we had issues deploying to Heroku (issues that didn't seem to happen when Hugo tried it in the week).  We didn't get to the web app part of the day until about 3pm after a fairly intensive day of training.

We had some folks with a web background, but also some who had only done earlier RailsBridge/RailsGirls events. When you think about web requests, json, HTML, javascript, HTTP, browsers, ports, git, deployment to heroku etc. Well that seems to be a tremendous amount of subject matter to cover even before we encounter Clojure and ring.

I understand the goals of the web app, but I would like to see if we can offer an alternative. Some of our attendees would have benefitted and enjoyed staying at the level we were at before we jumped to the web app. Either carrying on with new and different functions or putting them to work with some further exercises in the style of project euler/4clojure. 

Brian Maddy

unread,
Jun 13, 2014, 8:25:35 PM6/13/14
to clojurebridg...@googlegroups.com
On Mon, May 26, 2014 at 12:03 PM, Sean Corfield <se...@corfield.org> wrote:
Can you speak a bit about why you went with a different app? The interactivity seems appealing but it doesn't seem to play to Clojure's strengths.

Here's some of the reasons we went with a different app and why we did the app we chose:
* We had heard stories of the other clojurebridge events not getting to the app or not getting through much of it so we wanted to try to do something that was a little easier and something we could start at the beginning of the day.
* If the students write another application after the workshop, they won't have a leiningen template to build a big portion of their app for them--they'll have to start from the beginning. Because of this, we wanted to start from "lein new app_name".
* We thought the ability to interact with each other using the app they made would be fun for people.
* There's not a lot of Clojure jobs around here yet so we figured it would be unlikely a novice developer would find a job after a single workshop. We had discussed doing something as simple as a contact form because every brochure website out there needs a contact form (we really wanted novice developers to walk away with skills they could actually use). We ended up not doing that because it wouldn't have been much of an app, the interactivity of the chat app would be more fun for people, and the chat app gave us the opportunity to use atoms.

Cheers,
Brian

Bridget Hillyer

unread,
Jun 20, 2014, 4:52:10 PM6/20/14
to clojurebridg...@googlegroups.com
I've been thinking on options for the app for the last couple of weeks, and I'm still at a loss for a good suggestion. So I'm just going to organize some of the points I have heard from other's experiences in hopes that it sparks someone.

1) With a group of beginners, when you get to 3pm and just finished the functions section, everyone is braindead. Presenting any new ideas here seems wasted, at best.

2) So we need something ***very*** small to build. 

3) Or maybe not even an app at all - maybe more exercises.

4) Weaving an app throughout the day helps - as Minneapolis found.

Brian which of these is the chat app you used:


- or - 


Bridget

Brian Maddy

unread,
Jun 20, 2014, 5:06:36 PM6/20/14
to clojurebridg...@googlegroups.com

Jennifer Smith

unread,
Jun 30, 2014, 4:33:11 AM6/30/14
to clojurebridg...@googlegroups.com
I like the idea of weaving the app through the day  - and particularly with something a bit simpler like the chat app. 

We are still going ahead with another ClojureBridge on the 1st of August here in Melbourne and I am keen not to proceed with presenting the app in it's current form. Current options:

1) "Choose your own adventure" : when we get to the web app, give people the choice of either web app or doing more exercises. Will put together some more exercises that complement and build on what we have already done.
2) Weave the original web app or the Minneapolis chat app into the curriculum during the day
3) Staying with existing

At present, I am favouring 1) as my experiences doing the last Clojure Bridge say that would have been the most comfortable for everyone.

To unsubscribe from this group and stop receiving emails from it, send an email to clojurebridge-curriculum+unsub...@googlegroups.com.

Bridget Hillyer

unread,
Jul 2, 2014, 11:53:21 AM7/2/14
to clojurebridg...@googlegroups.com
Hi Jen.

To be honest, if I were doing a workshop this summer, I don't think I'd use the current capstone web app at all. But I can see a case for using it with advanced students. I know the table of current programmers at the Durham workshop finished it. 

So if I had a vote, I'd pick #1, too.

Bridget

Bridget Hillyer

unread,
Jul 15, 2014, 8:25:25 AM7/15/14
to clojurebridg...@googlegroups.com
Hi all.

I've been wracking my brain trying to decide what I think is the best way to go on the curriculum, and I'm not getting anywhere. So if anyone has any brilliant (or even non-brilliant) thoughts on what to do, please, I'm all ears.

What if we did this:

* Separate the current curriculum into two tracks: beginner and advanced
* Beginner - current curriculum up through the Flow Control section plus an additional section of exercises (like what Melbourne is planning to do)
* Advanced - current curriculum including the current capstone web app.


If we went this route, what would need to change about the curriculum? 

* Add additional section of exercises for beginners
* Weave some aspects of the capstone web app into earlier sections of the curriculum
* Adjust the "Making Your First Program", "Making Your Own Web Application", and "Putting your Application Online" sections to fit better into the single day workshop format.

Thoughts?

Bridget
Reply all
Reply to author
Forward
0 new messages