Module for writing a new type of exercises for programming tutorials
Hello, everyone. I am in contact with teachers who will have to teach programming at the beginning of the next school year. It's going to be as part of a mandatory computer course, so they're going to be dealing with students who aren't necessarily very motivated. They are therefore looking for a way to make this course as interesting as possible. The language is imposed, but, good news, it will be Python (version 3, probably). However, at the sight of the existing tutorials, whether they are written in Python or in another language, their main fear comes from the fact that the exercises have a text-based interface. Nowadays, almost all young people have a smartphone, so they are used to graphical interfaces. They have rarely, if ever, had to deal with a text console. Writing programs with a textual interface, they may (falsely) find this outdated and therefore not very motivating. Therefore, I am currently working on a Python module that will allow to design exercises, not with a text-based interface, but with a web interface. An exercise consists, for the studentq, in writing a program that solves a certain task. To check that the program is working properly, they will have to modify its parameters. This is usually done by modifying these parameters directly in the source code, or by entering their value at runtime with the help of 'input(...)' instructions. With a web interface, they will have a real graphical interface to enter the values of the different parameters. This is much more convenient, and also much closer to what they are used to with their smartphones. The module is designed in such a way that, as soon as the program corresponding to the exercise is launched, a web browser automatically opens to give access to the interface of the program. In addition, the student will be able to open the URL of the program on its smartphone, or even send this URL to its friends/parents/teachers/whoever, so they can use its program on their own device. So that you can see what it looks like and how it works, here is the address where you will find some examples of exercises based on this module: https://q37.info/s/tpkx4cfk . Any feedback will be greatly appreciated. I am also looking for content that I could adapt using the module, so that I can provide a set of ready-to-use exercises to teachers who need them. There is a lot of such content, but I have a little trouble choosing, knowing that the purpose of the exercises will be, not the learning of Python, but the learning of programming. Any help will also be welcome. Regards, -- Claude SIMON (http://q37.info)
Thank you for your contribution Claude. I have been looking at your github site and eyeballing the source code. You make a good point about smartphones being so different a device, because of their small format, than even a laptop computer. Students with only phone experience feel unprepared for a shell or prompt, unless you remind them it's like a chat or messaging window. Python is talking back. However trying to use a Python REPL on a cellphone is still not a great experience (I've tried it). I see scientific calculators and smartphones in the same category: devices too small to be comfortable replacements for what I'll call "a Silicon Valley desktop" -- leaving it to the reader's imagination how many large display screens that might mean. The issue with large format devices is they're not very compatible with the small "desk-chair" footprint common in many classrooms, especially math classrooms. You're expected to have a notebook and take notes. Calculators fit. Cell phone are usually frowned upon as a distraction (but that's where the best calculator apps live). Having students bring laptops is a compromise. A fully equipped computer lab is another option. Like many contemporary authors and curriculum developers, I've been introducing Jupyter Notebooks as a good mix of skills, as you have both the Python and the web page design aspects. Again, none of this works well on a smartphone. Kirby
On Monday, August 5, 2019, kirby urner <kirby.urner@gmail.com> wrote:
Like many contemporary authors and curriculum developers, I've been introducing Jupyter Notebooks as a good mix of skills, as you have both the Python and the web page design aspects. Again, none of this works well on a smartphone.
There is at least one iOS frontend app for Jupyter; but IIRC, it doesn't support nbgrader (yet?). The "Grasshopper" app for learning JS on mobile devices is great, IMHO; though I really haven't compared much. Mobile UI and UX design — or really just responsive design — really could be a priority for JupyterLab. A mobile UI/UX objectives JEP may already exist? e.g. Shift+Enter and Ctrl+Enter aren't easy with the standard mobile keyboards. What are the major sticking points with Jupyter on a mobile device?
Kirby
What are the major sticking points with Jupyter on a mobile device?
Seems like the Github Jupyter rendering engine sends out CSS @media queries to detect client format, and if your device below a specific size, the sever sends you raw JSON instead (the notebook sans rendering). With any art comes the media it uses. That all media should be accessible through a smartphone is not a realistic goal, so then the question becomes one of priorities. Tablets are more of a twilight zone. I found this post on using Jupyter on an Android: https://www.leouieda.com/blog/scipy-on-android.html I'd rather see that students are provided with alternative larger format devices, but maybe that sounds too revolutionary by today's standards. We used to call it One Laptop per Child. Kirby
You can check-out Sololearn - they are oriented towards smartphones (app or web) Also have py course https://www.sololearn.com/Course/Python/ Ps: why not Blocks? 2019-08-05, pr 19:41, kirby urner <kirby.urner@gmail.com> rašė:
What are the major sticking points with Jupyter on a mobile device?
Seems like the Github Jupyter rendering engine sends out CSS @media queries to detect client format, and if your device below a specific size, the sever sends you raw JSON instead (the notebook sans rendering).
With any art comes the media it uses. That all media should be accessible through a smartphone is not a realistic goal, so then the question becomes one of priorities. Tablets are more of a twilight zone.
I found this post on using Jupyter on an Android: https://www.leouieda.com/blog/scipy-on-android.html
I'd rather see that students are provided with alternative larger format devices, but maybe that sounds too revolutionary by today's standards. We used to call it One Laptop per Child.
Kirby
_______________________________________________ Edu-sig mailing list -- edu-sig@python.org To unsubscribe send an email to edu-sig-leave@python.org https://mail.python.org/mailman3/lists/edu-sig.python.org/
The students I mentioned will all have a laptop computer, on which a real Python development environment will be installed. The thing about the smartphone is that, when they will launch an exercise on their computer, below the corresponding interface, which will be displayed in a browser, a QR code will also be displayed. By scanning this QR code, students will then have access to this interface from their smartphones, without having to configure their devices or the Internet box. Claude.
nbgrader and/or jupyter-edx-grader-xblock may be useful for your use cases as well. It's a good idea to run Python code in containers or in JS in the browser. JupyterHub helps with running code in containers. TLJH (The Littlest JupyterHub) is one way to host Jupyter notebooks with nbgrader for multiple users with JupyterHub. I haven't seen a pyodide (in-browser JS) compilation that includes nbgrader yet? http://nbgrader.readthedocs.io/ https://github.com/ibleducation/jupyter-edx-grader-xblock https://tljh.jupyter.org/ https://github.com/iodide-project/pyodide https://github.com/quobit/awesome-python-in-education On Sunday, August 4, 2019, Claude SIMON <python.org.vz2x@q37.info> wrote:
Hello, everyone.
I am in contact with teachers who will have to teach programming at the beginning of the next school year. It's going to be as part of a mandatory computer course, so they're going to be dealing with students who aren't necessarily very motivated. They are therefore looking for a way to make this course as interesting as possible.
The language is imposed, but, good news, it will be Python (version 3, probably). However, at the sight of the existing tutorials, whether they are written in Python or in another language, their main fear comes from the fact that the exercises have a text-based interface.
Nowadays, almost all young people have a smartphone, so they are used to graphical interfaces. They have rarely, if ever, had to deal with a text console. Writing programs with a textual interface, they may (falsely) find this outdated and therefore not very motivating.
Therefore, I am currently working on a Python module that will allow to design exercises, not with a text-based interface, but with a web interface.
An exercise consists, for the studentq, in writing a program that solves a certain task. To check that the program is working properly, they will have to modify its parameters. This is usually done by modifying these parameters directly in the source code, or by entering their value at runtime with the help of 'input(...)' instructions.
With a web interface, they will have a real graphical interface to enter the values of the different parameters. This is much more convenient, and also much closer to what they are used to with their smartphones.
The module is designed in such a way that, as soon as the program corresponding to the exercise is launched, a web browser automatically opens to give access to the interface of the program. In addition, the student will be able to open the URL of the program on its smartphone, or even send this URL to its friends/parents/teachers/whoever, so they can use its program on their own device.
So that you can see what it looks like and how it works, here is the address where you will find some examples of exercises based on this module: https://q37.info/s/tpkx4cfk . Any feedback will be greatly appreciated.
I am also looking for content that I could adapt using the module, so that I can provide a set of ready-to-use exercises to teachers who need them. There is a lot of such content, but I have a little trouble choosing, knowing that the purpose of the exercises will be, not the learning of Python, but the learning of programming. Any help will also be welcome.
Regards,
-- Claude SIMON (http://q37.info) _______________________________________________ Edu-sig mailing list -- edu-sig@python.org To unsubscribe send an email to edu-sig-leave@python.org https://mail.python.org/mailman3/lists/edu-sig.python.org/
As I mentioned in my reply above, the students will have laptops to program in Python. They will work in a real development environment. The smartphone will only be used to access the applications they wrote, as if they were web applications. Note that it is possible, as indicated in the README of the Github repository, to run the exercises in a web browser, by using Repl.it (http://repl.it). Claude.
How about adding some screenshots in the readme? Abdur-Rahmaan Janhangeer http://www.pythonmembers.club | https://github.com/Abdur-rahmaanJ Mauritius
As the project is under active development, screenshots would quickly become obsolete. In addition, there is a procedure described in the README file that allows you to test the project in a web browser, with no installation at all. However, I put a screenshot in the new project I present below :-).
To make the course even more interesting, in addition to the exercises I introduce in my initial message, another set of exercises could be used. Each exercise of this new set will consist in developing a functionality of, say, a game. By completing the last exercise, you will have a fully functional game. The programming course will consist of a continuous switching from one to the other of these two sets of exercises. The first will be used to learn the basics of programming, the second to apply what they have learned to the development of the game's various features. As for the first set of exercises, the second will also have a web interface, this interface being more familiar to students, given their habit of smartphones, than the usual text interface. I create a repository with some of these exercises as proof of concept. You can find it here: https://q37.info/s/7sxtcv7g As usual, any feedback is welcome. Claude.
participants (5)
-
Abdur-Rahmaan Janhangeer
-
Claude SIMON
-
Jurgis Pralgauskis
-
kirby urner
-
Wes Turner