Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A framework for building exercises to work with Khan Academy.

Fix views_of_a_function answer type in iPad app

Summary:
In the iOS app, we hide the inputs and show MathOutput thingies instead. This
means that we muck around in the DOM such that each <td> has a <span> and a
hidden <input> as children rather than just the <input>. The guess extraction
part of the custom answer type assumed that the <input>s were the only children
of <td>s. This change explicitly looks for input elements rather than assuming.

This also adds a fix that prevents grading if you don't fill out any answers.

Test Plan:
iOS
===
1. Update khan-exercises in the iOS app with this change.
2. Run the iPad app, find the Views of a function exercise.
3. Answer a question that requires filling out a table, submit and get it right.
4. Hit "check" on a question that requires filling out a table without entering anything and see that it doesn't grade it.

Local mode
===
1. Load http://exercises.ka.local/exercises/views_of_a_function.html
2. Answer a question that requires filling out a table, submit and get it right.
3. Hit "check answer" on a question that requires filling out a table without entering anything and see that it doesn't grade it.

Reviewers: emily

Reviewed By: emily

Differential Revision: https://phabricator.khanacademy.org/D16426
latest commit 9d22652ba4
Ben Eater beneater authored
Failed to load latest commit information.
build Change khan-exercises to use /api/internal everywhere
css Fix dropdown z-index
exercises Fix views_of_a_function answer type in iPad app
fonts Move all answer area content to the bottom of the question area
genfiles Remove references to `USERNAME`
images Update badge images and fix clipping
local-only Upgrade katex in to v0.2.0
test Tests: Make tests run again
third_party Use webpack to bundle JS together, not requirejs
tools Add tools/runlint.py, which will be automatically run by khan-linter.
utils Something you can point to != interactive
.arcconfig update .arcconfig to https
.gitignore Fixed a few TODOs.
.gitmodules Move qunit to a more-global directory
.travis.yml Try a different room ID!
Gemfile Fixed a few TODOs.
Makefile Fixed a few TODOs.
README.md Link to careers page, not Jobvite
exercises-stub.js (khan-exercises) Replace top-level var declaration with explicit glob…
history.js Fix coach report answer correctness color
interface.js Close experiment in favor of clues (khan-exercises)
khan-exercise.js Determinstically choose problem type
lint_blacklist.txt Use webpack to bundle JS together, not requirejs
main.js Use requirejs for module loading
package.json Fixed a few TODOs.
requirements.txt First pass at creating a new extract-strings.py script for our i18n e…

README.md

Khan Academy Exercises

Copyright (c) 2014 Khan Academy

The exercise framework is MIT licensed.

The exercises are under a Creative Commons by-nc-sa license.

Exercise Framework

Khan Academy has created a generic framework for building exercises. This framework, together with the exercises themselves, can be used completely independently of the Khan Academy application.

The framework exists in two components:

  • An HTML markup for specifying exercises.
  • A jQuery plugin for generating a usable, interactive, exercise from the HTML markup.

Using the Framework Locally

You need to serve the files from some sort of a server. You can't just open the files directly in a browser. For example:

cd khan-exercises
python -m SimpleHTTPServer # or python3 -m http.server

Now if you open your browser to http://localhost:8000 (or http://127.0.0.1:8000/) you should see the contents of the khan-exercises directory. Navigate to the exercises subfolder, and an HTML file under there to see an exercise.

Exercise Development

This framework supports over 450 of our current math exercises including updated versions of many exercises Sal built for his cousins before he made his first video! New exercises on Khan Academy, however, are now written by many content experts using Perseus and stored in our datastore as individual questions.

More

If you're passionate about providing a free world-class education for anyone, anywhere and want to apply to be a full-time or intern software developer at Khan Academy, please do so.

Something went wrong with that request. Please try again.