Curriculum Application

8 views
Skip to first unread message

Sean Corfield

unread,
May 24, 2014, 9:23:04 PM5/24/14
to clojurebridg...@googlegroups.com
Clojure is great for manipulating data and much of our curriculum reflects that: introducing arithmetic, then vectors, then some functions, then more data types, more data structures and more functions.

We'd originally settled on a data manipulation web app to reflect that, and chose the World Bank Indicators API for the "data science" angle. The web app idea was to enable students to show off what they'd learned to their friends.

Starting from ground zero in Clojure, to create a full web app, is a lot of work for beginners because Clojure's strength is not really in "web development".

Minneapolis chose a different web app: a simple chat app that could be woven into the modules so students built it up alongside learning the base curriculum. We can see the whole app here:

https://github.com/clojurebridge-minneapolis/chat/blob/master/src/awesome/handler.clj

It certainly has the benefit of being nice and small but it does a lot of HTML construction and very little data manipulation so it doesn't really mesh with what we're trying to teach about Clojure. One of the guiding principles for the curriculum was to cover everything needed to complete the WBI app so that app determined some of what went into the curriculum and what didn't.

Some basic questions for discussion:

* Is building a web application a reasonable goal for ClojureBridge at all?
* Is it reasonable for beginners?
* Is it reasonable for experienced programmers? (I hope the answer is "yes" here, at least)

If we decide that a web application is still a good goal for the curriculum, do we perhaps want to consider some Clojure "web frameworks" to make it more tractable? (at least in terms of reducing boilerplate)

Specifically in that area, is it worth looking at something that doesn't require explicit declaration of routes and/or something that uses a more template-based approach to HTML views? There's no Rails in Clojure but there are small frameworks that take us part of the way there for small applications.

As an example and straw man, here's a small contact list web app:

https://github.com/framework-one/fw1-clj/tree/master/examples/usermanager

Model:

https://github.com/framework-one/fw1-clj/blob/master/examples/usermanager/model/user_manager.clj

Controller:

https://github.com/framework-one/fw1-clj/blob/master/examples/usermanager/controllers/user.clj

View:

https://github.com/framework-one/fw1-clj/blob/master/examples/usermanager/views/user/list.html

No need for routes, no building HTML as data structures, "standard" mustache-style HTML views.

Back to some questions for discussion, assuming we still think a web application is somewhat realistic:

* Is data science the way to go?
* Can we figure out a better showcase for Clojure's data manipulation that reflects what we'd like to teach?

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 27, 2014, 10:03:18 PM5/27/14
to clojurebridg...@googlegroups.com
Here are my current, basic thoughts on the App based on what we've seen in the 4 workshops so far:

* It needs to be very, very, very simple for the beginner track.

* Given the limited time in the single day of instruction, we have to weave the implementation of the app throughout the day.

* Students really, really like publishing a web app, so I still think it's a good idea to try to maintain that aspect despite the challenges. Finding a way to simplify it would be great.

* For the beginner track, I don't think doing data science is all that important. Maybe it would be good to push that to the advanced track.

Bridget

Bridget Hillyer

unread,
Jun 10, 2014, 3:20:05 PM6/10/14
to clojurebridg...@googlegroups.com
It seems that everyone agrees that the app is the crucial piece we need to get fixed.

For the beginner curriculum, here are my brainstorms on app ideas:

* take one of the streams of exercises in the curriculum and make it into a (Very Simple) web app. A tip calculator?

* use the Minneapolis chat app and update based on their experience with it.


What ideas do you have?

Bridget
Reply all
Reply to author
Forward
0 new messages