Git Product home page Git Product logo

apps1's People

Contributors

alexwlchan avatar bochenski avatar carylandholt avatar gmp26 avatar jyounce avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

apps1's Issues

Laundry list of little mathmo question problems

I’ll be out of Cambridge for the next few days, and only making sporadic fixes. I’m making this list for personal reference, but having it here might be useful too.

  • In complex arithmetic, occasionally it spits out a horrible decimal. Example
  • In modulus argument, sometimes answers come in the form $6e^0$. This feels overly simple or trivial; I think we should probably deliberately escape this case. Example
  • In rank 2 and rank 3 matrices, it might be nice to pull common fractions outside the matrix. e.g. $$\frac{1}{17}\begin{pmatrix}1 & 2 \ 3 & 4\end{pmatrix}$$ as opposed to $$\begin{pmatrix}\frac{1}{17} & \frac{2}{17} \ \frac{3}{17} & \frac{4}{17}\end{pmatrix}.$$ Not sure how easy it would be to implement.
  • I have a typo to fix in further vectors.
  • I can do some more tidying in Newton-Raphson to make the decimal points line up.
  • Formatting of $dx$ in integration by substitution. Also spacing in the denominator.
  • Spacing in figures of revolution.
  • In differential equations, if the term on the RHS is negative, then pull it over so the RHS is zero. Example
  • In 2nd order DEs, investigate adding forcing terms on the RHS (this is a common problem at A-level).
  • In stationary points, write a full sentence for the answer.
  • In implicit differentiation, correct the formatting of $\frac{dy}{dx}$ and some wording.
  • In vector equations, fix a typo that I made.

List here to account for the stack of commits I’ll push over the next few days, but also for other people to contribute to. Put other small fixes or minor issues with Mathmo in this thread, and I’ll work my way through the list over the next few days.

mathmo window resize after prev/next

When a window is resized and a mathmo plot is showing, it resizes properly. However, the prev and next buttons cause the plot to revert to the old window size.

Create a new 'Diamond Collector' fluency app.

Use http://mathquill.com/ for equation entry.
From @vrn20:

I had a `good idea' earlier today. Diamond collector is a rather nice way of getting students to practise finding equations of lines. I think that it's the same resource type as Mathmo, but with a couple of nice advantages (more engaging, slightly distracts students from what they're doing so that they might develop more fluency). I wondered whether it might be possible to make a version of Diamond collector that allows players to use equations of circles too. Perhaps just circles, perhaps a mix of lines and circles (possibly those are different levels or something). We could talk about what form the equations of the circles should take.

Boomerang counter can be negative or non-integer

The boomerang counter allows for negative counts, and these aren’t necessarily flagged as “bad”.

For example, (small, large) = (-1, 1) doesn’t get flagged as bad because Phil needs an hour of carving and Cath decorates no boomerangs (which are valid values).

Either negative values should be discarded and reset to zero, or should flag an appropriate warning. Similar for non-integer values.

I realise that the Boomerang LiveScript is only a first pass; I might have a go at fixing some of this myself once I’ve learnt some more LiveScript.

Refactor reusable code

This repo is good at making standalone Apps, but pretty hopeless at packaging reusable directives. I think we need to start a new repo for reusables modelled along angular-ui/bootstrap lines. This would mean adopting conventions such as each directive in its own [angular] module, and probably dispensing with require.js.

So we keep Apps1 for apps, but start a new repo for directives and associated support - probably by forking angular-ui/bootstrap. Those guys can summon amazing demos in plunkr or jsFiddle with very little code.

Here are some candidate reusables

Directives

  1. Factor out existing d3 directives.
  2. A graph plotter
  3. An <input type="tex" ngModel="{{mathExpr}}" > input directive based on MathQuill
  4. The mgc directives currently in incoming - these have yet to find a place in Apps1, probably because they are naturally best published as directives.

Services

  1. A TeX to abstract syntax tree parser service. (Probably can inherit this from MathQuill)
  2. An adaptive function sampler service. It must take a mathematical expression and sample it intelligently over a given domain.

Automate library updates - using yeoman/bower generated apps

It's hard maintaining all the dependencies by hand and Yeoman and Bower are mature enough to use now.

Probably best to create a yeoman generator that builds the individual apps and ditch this umbrella app.
Brian Ford's generator - npm install -g generator-angular looks like a good starting point but we would want to convert from coffeescript to livescript. (--coffee option generates a coffeescript codebase)

bower install angular-bootstrap will bring in angular-ui/bootstrap.

Might be worth extracting the few reusable directives we have at the same time. See #36.

A Proof Sorter

Chunks of HTML that are draggable and sortable. Note that this is for embedding in CMEP resources and so a jQuery based solution may be preferable to an Angular based solution. The end result should be the ability to create a list of HTML blocks, delimited by lodash template commands.

The lodash templates are processed into two forms - for web and for paper.

For the web the blocks should be randomised and have jQuery sortable behaviours attached. For paper, they would convert to LaTeX boxes and standard sized label formats for print.

We'd be looking for a simple template syntax to include in the markdown. Something like:
<%= sortable_start(groupId) %>
...markdown
<%= sortable_end %>

Need to take care that mathJAX remains rendered, that images drag with the surrounding texts, and that the drag and drop works on multiple touch devices too. A common problem with some touch screens is that the whole page drags rather than just the part that should be interactive.

Graph plotter

embeddable plotter taking inspiration from desmos.

New questions needed

@vrn20 is posting them in the CMEP-site repo. Copied here:

New Mathmo questions

It would be very nice if the following questions could be added to Mathmo. Perhaps they can be deleted from this list when they've been added.

I'm writing ... to mean something that the computer should generate at random; I hope that it will be clear what I have in mind.

  • Find the equation of the line that passes through the points ... and ....
  • Find the equation of the line that passes through the point ... and is parallel/perpendicular (computer chooses) to the line ... (perhaps this could be given sometimes in the form $y = ax + b$ and sometimes in the form $ax + by = c$).
  • Find the equation of the circle with centre ... and radius ....
  • Find the centre and radius of the circle with equation ... (perhaps this could be given sometimes in the form $(x-a)^2 + (y-b)^2 = r^2$ and sometimes in the form $x^2 - 2ax + y^2 - 2by = C$).
  • Find all the points where the line/circle ... and the line/circle ... intersect (again giving equations of lines and circles in various forms, and the computer chooses whether to give lines or circles).

Matrix transformations questions are returning NaN in answers

I’m not sure what’s causing this yet, but I’m going to dive in and try to fix it soon.

I suspect it’s caused by trying to treat a frac object as an actual fraction, which lead to some problems when writing the first of the new questions.

New questions needed

vrn20 is posting in the site repo; copied here:

  1. Find the distance between the points ... and .... [It would be good to have a mix of positive and negative coordinates, a mix of integer coordinates and coordinates expressed as fractions and coordinates expressed as decimals and coordinates expressed as surds, if possible. Anything to get away from the inevitable Pythagorean triples.]
  2. Find the highest common factor of ... and .... [I'm expect them to use Euclid, so the numbers could say go up to 99999 or even 999999 if you're feeling mean. Positive integers only, please!]
  3. Find the centre and radius of the circle passing through the points ... and ... and .... [I think that the nice way to do this is to find the circumcentre of the triangle by finding the point of intersection of two of the perpendicular bisectors of sides of the triangle and then computing the radius afterwards.]
  4. Find the least common multiple of ... and .... [Probably best not to use very large numbers for this.]
  5. Find all integer solutions $m$ and $n$ to the equation $...m + ...n = ...$. [Let's make the first two coefficients positive, and say up to 999, and the right-hand side any integer (say between -999 and 999).]

2 and 4 should be easy (we already have helper functions for these), I’ve already had a play with 3, and 1 and 5 don’t seem too tricky either.

Mike — shall I do these when I have a spare moment?

mathmo y axis bounds

Plot y-axis bounds are not always correct. The maximum range of -10 to +10 is not appropriate when y is bounded above or below by N where |N| > 10.

Currently, we replace samples where |y| > 20 with [null,null] and then clip the plot to -10 < y < 10. Samples are taken every dx=0.01, which is usually good enough to catch a clipped point where 10 < |y| < 20, so the asymptote gets properly clipped. That 0.01 should adapt to the function however to ensure this is always the case.

d3MultiLinePlot interprets a null point as a penup command.

There is a similar issue with some of the parametric plots which have horizontal asymptotes.

Add mathmo unit tests

Some unit tests coded by Ben Millwood for the last mathmo incarnation are now in the test directory. Since we are now using a seeded random number generator, it is possible to make much better tests - i.e. for a given seed, simply check that the resulting Q and A is as expected.

It should also be possible to run these under grunt test using the Karma/Jasmine setup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.