learn-gdscript icon indicating copy to clipboard operation
learn-gdscript copied to clipboard

Make a proof of concept teaching with more interactivity and code as used in Godot

Open NathanLovato opened this issue 3 years ago • 8 comments

This is a long-term idea, mostly something I intend to try when we remake this course for Godot 4.0 and GDScript 2.0. This won't be worked on soon as:

- We're currently limited both in budget and time. - We're waiting for Godot 4 to be stable before remaking this app for GDScript 2.0. - This will require quite a lot of work to do well.

But this is something we should work on sometime in 2022, as Godot 4 gets ready.


In issue #64, goldotasksquestions left us feedback on the course and suggested making text leaner and having more interactivity. Also, a suggestion was to use code that users could reuse as-is in Godot over custom classes, which we currently use to teach specific points (like the LOGO-inspired drawing turtle).

I still think it'll be difficult to make it work for the target audience, i.e. people with 0 prior programming experience, but I'm willing to give it a serious try, make a couple of lessons like this, and run test sessions with beginners.

There are three complementary goals I'd like to pursue with this task with the general goal to improve people's learning experience:

  1. Offer a more engaging start experience. The current course starts with a lot of text and lessons get shorter as you go. We could spread the teaching points of the first few lessons in the course.
  2. Generally, try to put a little more game design and personality in the app.
    • I think one approach that could be appealing would be to put some characters and narrative in the course. Not like lots of dialogues, but a little something that makes the course a bit warmer and makes you want to keep going, be it just to know how things unfold for the characters.
  3. Break down learning into smaller chunks. We started doing this with the course's last lessons, but there's still room for improvement.

I think it would have to be a different approach to learning, a more intuitive one, by having people use code they don't understand at first, and have them make sense of it through practice.

A suggested source of inspiration for this is language learning apps, Duolingo in particular. Another is Red Blob Games, a website with in-depth guides about algorithms filled with interactive examples. Other suggestions are welcome.

NathanLovato avatar Mar 31 '22 08:03 NathanLovato

You need a in app character, who can teach how GDScript works? 🤔

DUyWGCiWAAE743x

FancyTextLabel avatar Apr 03 '22 03:04 FancyTextLabel

Yup! We'll look into using iconic Godot characters.


Another thing we can consider is developing various practice widgets to insert into the lessons. Currently, lessons mostly consist of text with some code examples and quizzes. We should think about other widgets that act as mini practices and keep students engaged:

  • Drag and drop code bits into the right slots?
  • Type the expected output of some code (already implemented, unused in the course) ?
  • Some mini typing game where you type a short code snippet based on a prompt (e.g. "a variable named count with a value of 3") ?
  • ... we have to think about more options.

NathanLovato avatar Apr 05 '22 20:04 NathanLovato

Other suggestions are welcome.

I know this issue is over a year old but I thought this might still be interesting. Most of these projects are very different compared to "Learn GDScript" but probably it is still worth to have a good look at them.

Scratch visual programming language and educational tool

Selfless Heroes "a puzzle game that will teach you how to program without you noticing"

Colobot: Gold Edition "Colobot: Gold Edition is a real-time strategy game, where you can program your units (bots) in a language called CBOT, which is similar to C++ and Java. [...] You can save the humanity and get programming skills!"

Mimo Coding-App for Android and iOS that teaches how to learn to code in Python, HTML, etc.

Dinock avatar Apr 29 '23 20:04 Dinock

Thanks. We're already pretty familiar with all of these, except for selfless heroes, we'll check it out. Are there any specific suggestions or things you wanted to highlight? Because each of these works pretty differently.

NathanLovato avatar Apr 30 '23 07:04 NathanLovato

I'd like to help contribute to the godot 4 remake of this app. Will the new one be open-source too?

brno32 avatar Apr 30 '23 07:04 brno32

Hi, yes the remake will be open-source, though written with web-native technologies (to benefit for accessibility and UI responsiveness of browser technologies). As with all our latest projects we will start by making the first prototypes internally and will release publicly once we have a first proof of concept for the community to test.

This needs a little preliminary work on Godot processes running in the browser and some changes to the GDScript compiler, for which we hired a core contributor starting in May.

NathanLovato avatar Apr 30 '23 09:04 NathanLovato

Oh sorry and so contributions are always much welcome. You're welcome to start contributing from the moment this technology is available publicly.

NathanLovato avatar Apr 30 '23 09:04 NathanLovato

Are there any specific suggestions or things you wanted to highlight?

No, I just thought it might be useful to check out different and diverse approaches to teaching people how to code. Just to get some inspiration from a didactic and pedagogic point of view.

Dinock avatar May 03 '23 10:05 Dinock