Skip to content

Instantly share code, notes, and snippets.

Last active February 4, 2017 05:02
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save apetro/a362e5211f1f9da36b8ab517519605a6 to your computer and use it in GitHub Desktop.
Tactics for ImageQuiz



Incomplete, unpolished, in-flight thoughts.

Project vision

Enable image quizzing with free and open source software

Sometimes visually-oriented quizzing is an effective method for teaching, learning, and assessment.

Enable more adoption of this effective method through free and open source software products that bring this technique in closer reach.

Drive down the cost of institutions, instructors locally implementing quality image quizzing experiences through the availability of quality free and open source software supporting this kind of teaching and learning.

Software products

A handful of software products do or could enable this technique. These products exist (and are open source) to a varying degree.

Software products might be:

  • a Java desktop application for delivering image quizzes
  • a Java desktop application for composing image quizzes
  • a C++ native desktop application for delivering image quizzes
  • a server-side application for generating websites that deliver image quizzes
  • an LTI Provider implementation of image quizzing, suitable for use in Sakai or Canvas or so.
  • a Sakai Tool implementation of image quizzing, suitable for use in Sakai
  • a Tsugi tool about image quizzing?
  • ...

Ingesting existing software products

Some of these products already exist.

For products that currently exist:

  • Ensure open source licensing is okay
  • Get these source codes up into GitHub in whatever state they're in, even if they don't work or are incomplete. Essential to open source is opening the source code.
  • Thereby enable transparency into the state of these software products.
  • Thereby enable potential collaboration on clarifying or improving the state of these software products.
  • Thereby create the opportunity for these sub-projects to gain traction, inspire other work.
  • Thereby create the opportunity for more informed perspectives on which software products shouldn't be actively maintained, further invested.

Going forward

There are three streams of effort:

  • Appreciating what already exists
  • Improving, normalizing what already exists
  • Building new things that would be even better

These streams of effort are complimentary.

Appreciating what already exists

There are existing software products, in C++, in Java, in PHP.

Investing effort in these could allow the current products to be more adopted, do more good.

Work on

  • Clarifying and documenting the licensing considerations, that these really are open source software, that it's okay to use them.
  • Documenting the products, how to use them, their features.
  • Work out how to repeatably build them from source, document this, smooth this.
  • Make these products more discoverable.


  • Deliver academic value in the nearest term: these applications already exist and could do some good. If people can find them, understand them, use them, then they can do more of that current good.

Improving, normalizing what currently exists

For the existing software products

  • Separate software product from academic content. Externalize the quiz content, the images.
  • Improve compatibility. The same quiz content, images should be usable with the desktop apps, with the PHP tool, with all the things.


  • The software products become cleaner. They're technically small, tight products.
  • The quiz content becomes cleaner. They're only the academic content, potentially usable with multiple ImageQuiz engines, and thereby more valuable.
  • Continue to go after the non-enterprise market. There's something to the image quizzing solution not being part of the enterprise LMS, being this more casual thing delivered directly on a classroom computer or laptop or so. Does K-12 want an LTI tool? Or does K-12 want a desktop app except with more polish?

Build new things

An LTI or Sakai Tool version of this seems promising as a more "enterprise" way of encouraging visual learning and quizzing. Might gain adoption and interest in a new more enterprise end of the market.

It might even be that this could be pursued in a way

Be deliberate about which of the many already-existing and potentially-existing software products to apply resources to, and which to let lie.

Externalize domain-specific resources, metadata, images. The quizzes. As in, the software products are the engines for doing quizzing. These software products are configurable with external files, directories, URLs that have the quiz metadata and the images.

Which is to say "ImageQuiz-Plants" is not a software product. "ImageQuiz-java-swing" might be a software product. One grabs that software product and locally configures it with some quiz questions, some images, the learning domain stuff. A single software product might support quizzing about plants, or about architecture, or about art, depending on how that same single software product is configured.

GitHub organization

Have an Organization on GitHub. "Apereo ImageQuiz".

Within that Organization, have several repositories, one for each software product.

  • ImageQuiz-java-swing : the Java desktop application
  • ImageQuiz-mac-native : the C++ desktop application for Mac?
  • ImageQuiz-Windows-native : the C++ desktop application for Windows
  • ImageQuiz-website-generator-php : the server-side PHP application that itself generates static websites that deliver image quizzes
  • ImageQuiz-composer-java : (I'm fuzzy on the details here, but something about how there are more products beyond just the things that deliver quizzes - there are products for building quiz datasets?)
  • ...

In general, whatever software products there are, have repositories for them, so that they can be modeled, versioned.

Some flowers are annuals

As much source code as feasible should be open source in the world. If it's not open source and available it misses much opportunity of being discovered, adopted, or inspiring other work. Let all the flowers bloom.

But that doesn't mean all source code should be actively maintained. It would be totally okay, desirable even, for some of these legacy products to quickly reach a state of, okay, we understand what's here, there's a starting point if you're interested enough, but this isn't something anyone's choosing to invest in further at this time.

So say that clearly in the README for those products and let them drop down the list.

Some flowers are parrenials

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment