Until 2023, I happily taught MIT App Inventor to groups of students, using the extremely useful tutorials that have existed and have been updated, and also developing my own notes based on how I was taught.
Now, with the public availability of GenAI, and its use in coding, I'm concerned that I am teaching them old methods only. I think that the tutorials are still useful, because the students need to learn the basics, and that level of understanding is also necessary for debugging and error-checking. But I am increasingly feeling guilty because I'm not teaching them how to effectively use GenAI tools. I'm not too keen on straight "vibe-coding" at this stage, but I think it cannot be ignored.
So, should I be teaching them how to use GenAI tools for this? And, if so, are there any good starting points/tutorials? (Everything I know on the topic is self-taught - useful, but not a good framework for lesson plans :-(.
I think it would benefit your students more if you continue teaching them as before, giving them the best possible grounding in App development. Once they are truly proficient programmers, they can explore GenAI (etc) for themselves.
in addition to what has already been said, if your students will have "their" (?) code made by AI, what will happen if such code fails ? They'll never be able to debug it by themselves.
Unless we can survive in the future with airplanes whose automatic pilot could say: "the software has executed an illegal operation and will be terminated" ... during a take off or a landing...
Yes, just as with other assignments, I allow my students to use AI, but then I tell them that they are fully responsible for anything they submit. So, for example, if they cite an article that does not exist, the assignment fails. Not because they used AI (which is impossible to reliably detect), but because they cited a non-existent article.
Yes Ken, 100% agreed !
... and that's why you are a very good teacher and I'm just an old electronic engineer
I don't truly know where to find tutorials on the AI auto-coding matter, but in my experience of firmware developer, what I can suggest is to teach them to "write" the best specifications they can.
In other words: since the duty of coding will be more and more automated (I "fought" with [and not against] the very first Computed Aided Software Engineering -CASE- tools on the early '80ies) the more clear and detailed specification is written, the best software is coded, and the bugs will be far less than a code based on a poor specification.
So, in the classic V model of software development cycle, since the coding will (more or less) disappear, the greatest importance will be kept by the requirements description, their allocatiion into a good specification, which both will contribute to a strong validation phase (test procedures and test cases).
I reckon that this seems very theoretical, but I guess it could be approached in an Agile mode, fostering the cooperation between the students to work in small groups to achieve a common target (hopefully ).
Sorry having bothered you so much, and best wishes for you and your students.
Ugo
the more I dig in App Inventor and teach my students, more I think how useful would be custom special trained model of GenAI with all of the existing knowledge about App Inventor. It would be very usefull... Anyone with same toughts?
[Note the following are my own thoughts and not necessarily representative of the MIT App Inventor team or MIT as a whole]
I think a key thing to keep in mind either when using App Inventor or any other tool out there is what are you intending to really teach. I don't think the goal of teaching with App Inventor is about getting students to make an app--a task that is also something you can do with so-called "vibe" coding. The core thing I believe students should gain is the ability to think critically about problems and decompose them into actionable pieces they can solve. If using AI tools takes away the thinking portion they will not really have learned anything.
Thanks, yes, I saw that. Those cover teaching students about coding MIT apps that use AI; my concern was teaching students about using AI to help code their apps.
Yeah, creating a custom GPT like that would probably be really good. There's a limit to the amount of material that a custom GPT could hold, though, and you would have to point it to other sites (like this one). I'm not sure how the community would feel about that, or how you would begin to find out. Nice idea, though.
Yes, I think using it for a large project would lead to many problems ("Build me a Hangman game"). I was thinking more along the lines of small problems. A block not working correctly, or if something works, but it's messy, and you figure that there must be a better way of doing it. (Similar to how I've used it for Excel, if I want to do something, and I think: I'm sure there is a way to do this in Excel, but I don't have the time to figure it out. I describe it in detail, and ChatGPT gives me the formula or the macro, etc.)
Yes, frequently, the problem is that the students can't break the problem down into the required small steps (creating pseudocode or flow charts at too high a level). If they can get that right, then they can usually solve the problem - or they could use it as a prompt for ChatGPT. :-/
In effect by reading the article posted by @TIMAI2, and by reading your comments, I'm even more convinced that you should teach your students to "slice down" in very detailed mini-specifications the "system" they want to build. I mean: even a big wall is made bay small bricks, so let AI just make the bricks, and let humans build the wall (or the house). So if one brick is defective, they can "easily" find and correct it (maybe manually or by letting a second chance to AI).
All the best.