[Bank Account] Instructions mention race conditions; tests do not check for race condition

The Bank Account instructions discuss race conditions. The tests (since Dec 2022) do not check for race conditions.

Should the instructions append mention something?

On the Pyret track, I ended up doing an append for this exercise telling students to ignore the race condition part because the language doesnā€™t support concurrency. Itā€™s a little awkward because while instructions seem to be written expecting concurrency, the problem specifications test suite indicates you can implement the exercise without concurrency. I probably should have foregone it though since this exercise feels pretty different with and without concurrency.

1 Like

Yeah. Maybe we should just remove this exercise from the Python track since issues around concurrency and race condition testing keep coming up. (see this one from 2021 and this forum post from 2023).

That - or retool the exercise and tests to use and extra attribute, or multiprocessing, or some flavor/configuration of ProcessPoolExecutor. But more than an attribute addition feels like a huge effort for very meager and poorly supported results. Itā€™s also unclear that we could even get the last two of those to work properly.

Or perhaps - like the recent discussions around the Sieve exercise, we should edit the main instructions to indicate that in programming languages where concurrency can be applied, the student should account for it, but ignore it otherwise. e.g. remove or replace the ā€œconcurrencyā€ term with something else more genericā€¦ :thinking:

1 Like

I think in the meanwhile (while I consider removing the exercise), Iā€™m going to snipe the wording from your append ā€“ if thatā€™s OK? :sweat_smile:

1 Like

Iā€™m glad it could help. :slight_smile:

@IsaacG @BNAndras ā€“ if this looks good to you, gonna merge it while we noodle on the general instructions,

Suggestions welcome, :smile: