Hiding a graph affects correctness

Something’s not working the way it seems like it should.

When I …
Hide a graph it marks things as incorrect, irrespective of the correctness scheme in mind.

I saw …
Simply hiding a graph results in an incorrect X on the teacher dashboard, whereas keeping it visible results in a correct checkmark on the teacher dashboard

But I expected …
Hiding/Not Hiding a graph should be irrelevant

Here’s the link to the page, dashboard, or activity:

Noteably, this doesn’t happen in every instance, but in this setup, it renders errors as described.

Thanks for the detailed bug report! We should really use this as a model for others.

The issue here isn’t that hiding and unhiding a graph affects correctness, rather that tickers don’t run on hidden graphs or on graphs not on the current screen. Because you’re using a ticker to calculate correctness, the hidden graph isn’t performing those calculations because the ticker Isn’t running.

Thanks Jay.

Any chance this behaviour could be changed for hidden graphs? I can certainly make the graph visible and display something superfluous but that’s neither pedagocially nor programmatically particularly sound.

Afraid not. Its a performance based decision to keep activities from having too many tickers running at once.

I understand that in terms of having tickers stop running that are on different screens, but how does that make sense for graphs that are on the same screen? Hiding or not hiding them doesn’t change the number that run.

Except it does! A screen with 9 hidden graphs with tickers and 1 visible one will have 1 ticker running, not 10.

If you have a conditionally hidden graph with a ticker and want to preserve the ticker state when its hidden, use saveOnChange.

Ah, I don’t think i made my point clearly.

If the idea is to limit the number of tickers running at once, treating hidden graphs differently than visible ones as a proxy for this goal doesn’t really work for two reasons:

It’s that last point that I’m interested in of course: I’m not actually interested in running a bunch of tickers on one screen.

Thanks for the link to the preserve state method. It’s not what I really need for my use-case though, and perhaps I should have explained that more.

I’m using a ticker to simulate a capture action without the need for a student actually pressing a button. Basically the ticker is a watching function that looks for changes and remembers stuff when a condition is met.

Does any of that make sense?

Understood. And I see how in your specific case we probably wouldn’t run into any problems, but changing the way that calculators are constructed in activity builder would have ramifications for many other cases (including graphs that do not contain tickers).

The calculator is implemented in two parts:

  1. The interactive calculator - thats things that students can see and interact with. The actual “graph” including all of its sliders.
  2. The underlying evaluation engine

A visible graph runs both parts of the calculator, while a hidden graph or a graph on another screen will only run the evaluation engine. That allows us to send data in and out of the calculator from hidden graphs and other screens. This prevents us from having to run multiple fully-built graphs at the same time, and while this may not be the case for you specifically, its necessary to ensure performance for the greater user base as well as our internal authors.

The ticker is part of the interactive calculator, which is why (along with other sliders) they don’t run when only the evaluation engine is running.

1 Like

Got it, thanks for that explanation.