3 ms·
> Is there any way for users to construct their own multiple stage tutorials? I really hope some kind of GUI to do that can exist one day, but it's definitely
by alexmojaki 4y ago
> Is there any way for users to construct their own multiple stage tutorials?
I really hope some kind of GUI to do that can exist one day, but it's definitely a complicated feature that I'd need help from contributors to build. Same for graphical output.
> (It looks like we can do single questions)
I think you're talking about the question wizard. That's for helping people to write good quality questions about their own struggles to post on StackOverflow and similar sites. It's not for making 'challenges' for others to solve.
> Incredibly generous of you to make it open source!
Thank you! I'm really trying to improve the state of education and make the world a better place. I hope that in addition to directly helping users, I can inspire other educators, raise the bar, and help them build similar products. To this end, futurecoder is powered by many open source libraries that I've created which are designed to also be useful in their own right:
Debuggers: these are integrated in the site but also usable in any environment:
- https://github.com/alexmojaki/birdseye https://github.com/alexmojaki/birdseye
- https://github.com/alexmojaki/snoop https://github.com/alexmojaki/snoop
- https://github.com/alexmojaki/cheap_repr https://github.com/alexmojaki/cheap_repr (not a debugger, but used by the above two as well as directly by futurecoder)
Tracebacks:
- https://github.com/alexmojaki/stack_data https://github.com/alexmojaki/stack_data (this is also what powers the new IPython tracebacks)
- https://github.com/alexmojaki/executing https://github.com/alexmojaki/executing (allows highlighting the exact spot where the error occurred, but also enables loads of other magical applications)
- https://github.com/alexmojaki/pure_eval https://github.com/alexmojaki/pure_eval
You can see a nicer presentation (with pictures) of the above as well as other projects of mine on my profile https://github.com/alexmojaki https://github.com/alexmojaki
Libraries which I specifically extracted from futurecoder to help build another similar educational site https://papyros.dodona.be/?locale=en https://papyros.dodona.be/?locale=en (which does have a canvas output, at least for matplotlib):
- https://github.com/alexmojaki/sync-message https://github.com/alexmojaki/sync-message (allows synchronous communication with web workers to make input() work properly)
- https://github.com/alexmojaki/comsync https://github.com/alexmojaki/comsync
- https://github.com/alexmojaki/pyodide-worker-runner https://github.com/alexmojaki/pyodide-worker-runner
- https://github.com/alexmojaki/python_runner https://github.com/alexmojaki/python_runner
- zinclozenge 4y agoI just wanted to say thank you for those libraries. They were a lifesaver when building my own pyodide based project.
- alexmojaki 4y agoAwesome! Can you show me what you built?
- zinclozenge 4y agoYes, here's a very rough PoC that I plan on integrating with a bigger project at some point https://glittering-narwhal-96bc3e.netlify.app/ https://glittering-narwhal-96bc3e.netlify.app/
- alexmojaki 4y agoThanks. I tried running code but couldn't see any results/output. I was hoping to see `input()` in action. The dev console just logs `{type: 'error', data: '{}', contentType: 'text/json'}`
- zinclozenge 4y agoHaha yes I think I removed the output component when doing some testing and inputs was something I considered but eventually decided against it. My goal is to provide an app to allow users to "grind" leetcode/tech interview questions with spaced repetition, and I decided that instead of taking on the extra complexity of user inputs, it'd be better to focus on the value proposition of the app. But this is just codemirror + pyodide, I'm still building the rest of it.
- westurner 4y agoThanks! FWICS, futurecoder (and JupyterLite) may be the best way to run `print("hello world!")` in Python on Chromebooks for Education and Chromebooks with Family Link which don't have VMs or Containers ((!) which we rely upon on the server side to host container web shells like e.g. Google Colab and GitHub Codespaces (which aren't available for kids < 13) and cocalc-docker and ml-tooling/ml-workspace and kaggle/docker-python and https://kaggle.com/learn https://kaggle.com/learn ) Also looked at codesters. quobit/awesome-python-in-education: https://github.com/quobit/awesome-python-in-education https://github.com/quobit/awesome-python-in-education Looks like `Ctrl-Enter` works, just like jupyter/vscode. iodide-project/iodide > "Compatibility with 'percent' notebook format" which works with VScode, Spyder, pycharm, https://github.com/iodide-project/iodide/issues/2942 https://github.com/iodide-project/iodide/issues/2942: # %% import sympy as sy import numpy as np import scipy as sp import pandas as pd # %% print("hello") # %% print("world") Does it work offline? jupyterlite/jupyterlite "Offline PWA access" https://github.com/jupyterlite/jupyterlite/issues/941 https://github.com/jupyterlite/jupyterlite/issues/941