Mechanics Academy beta

Today, I’m proud to announce that Mechanics Academy has grown up from being a simple HTML prototype to a full-fledged web application. The site now serves as a fairly sophisticated content management system that allows me (and anyone interested!) to catalogue original learning material alongside existing Open Educational Resources of high quality. Internally, all this material is stored with a fairly rich collection of metadata, and I’m experimenting with ways of presenting the content so that it’s most useful for students.

For now, all the content on the site is broadly classified across a handful of subjects,

A couple of example subjects

and within each subject, the material is arranged in a manner so as to first provide students with material that motivates them to learn, followed by more comprehensive resources for deeper dives.

Some of the content types

A big part of the catalogue—the raison d’ĂȘtre of Mechanics Academy as it were—revolves around simulation-based demonstrations and exercises. The technology for this is humming along quite nicely, and I finally have a demo to share that might be very interesting for the scientific computing nerds in the audience.

Connecting to thinkbot via AJAX

Do try it out and let me know what you think!

With all this new infrastructure in place, I am now turning my focus to two big tasks. One, to actually start filling out the library with interesting material that’s already out there on the web. (I would love for your help if you can spare the time.) And secondly, I’ve figured out some recording technology that I am happy with, and I’m in the process of planning and recording lectures as well as dreaming up programming exercises for my first complete course.

Stay tuned for all this and more!

After a week of hard work, I’ve separated one of the core aspects of Mechanics Academy—its compute server—into a separate service with a clean, RESTful API. This service is called thinkbot, which I think is a pretty cute name!

I believe this was an important step to take, as thinkbot can now act as an easy-to-use scientific computing service that can meet general needs, well beyond those of Mechanics Academy. But much more on all that later.

With thinkbot, one can now do the following:

  1. Submit a job (in Python; R and Octave support planned for the future):

    curl -X POST http://api.thinkbot.net/jobs/ -F"code=<some_file.py" [other metadata] -u username[:password]

  2. Retrieve info about the job's status:

    curl -X GET http://api.thinkbot.net/jobs/3/

  3. Retrieve results based on what was requested in the metadata along with the submitted code.

    curl -X GET http://api.thinkbot.net/results/3/u.vtk

Mechanics Academy communicates with thinkbot via AJAX, and can send it scientific computing jobs and retrieve results. Check it out:

thinkbot api demo

More documentation, logins and actual science lessons using all this technology coming soon™.

I spent a couple of hours this afternoon talking to the fine folks Studix, a young company working on some interesting technology for recording, contextualising and presenting educational material in quantitative fields. In particular, we discussed ideas to incorporate Mechanics Academy’s simulation-based approach to science education with their HTML5/JS-based recording system.

This conversation prompted me to create something I’ve been meaning to for some time: a mechanics demo aimed at high school kids. So without further ado, I present to you a simple projectile motion demo:

A projectile motion demo

So, how far can you toss the rock?

I feel like I’m making quick progress designing the front-end of this iteration of Mechanics Academy. Today, I worked out a simple-yet-slick interface for signing up and logging into the site, as well as a dashboard showing relevant information to students once they’ve logged in:

A student dashboard

The tools that are making this process as easy as pie are the powerful Bootstrap framework and Middleman, a modern static website generator. If you’re interested in exploring a new way to create your next prototype, I can heartily suggest this powerful duo.

Much has happened since I first started working on Mechanics Academy all those months ago. No longer just an abstract vision in my head, the project now has clearly defined goals which I am using to drive its design and development.

And that’s where this new prototype—the site you’re now on—comes in. Exercising all that I’ve picked up recently from courses on modern web development and user experience design, I’m starting to systematically build a sophisticated web app that will:

  • Deliver a selection of scientific computing software as a service, and
  • Be used by folk to engage and teach students concepts in computational science.

I will be posting details of my progress on this blog. Both to let you know what is going on—and to keep me honest.

After finally working through a round of grant applications and talks, I’ve had a couple of days to really sit down and work on ideas for Mechanics Academy. Here is a look at how the interactive demo functionality (which will be the basis for exercises) is shaping up.

Visual design
Software architecture

All that I’ve picked up from the Software as a Service and Computer Graphics classes from BerkeleyX are being put to good use!

About

Mechanics Academy is an online resource for anyone interested in learning mechanics. The project aims to use interactive, application-relevant simulations to engage and teach students an exciting blend of mechanics, applied mathematics and computational science.

Learn more…

Recent blog posts