Hi! I teach a beginners course in programming on highschool level in Norway. Just like Devin, I have found that the most important thing is what you want your students to learn. The development environment is not very important. I try to introduce various components in a way that helps build the students understanding of the fundamental concepts and principles used in programming.
I use a methodology quite similar to the one Devin suggests at the end of his reply. 1. I present and show my students a concept/principles/method 2. We use this concept on various simple problems together in the class - this will often be accompanied by classroom discussion 3. The students then get a task where they can apply the concept on a problem that is quite similar to the problems used in point 1 and 2 4. Then I give my students a task which involves a more complex problem, where the application of the concept is not very obvious. At this point I encourage my students to help each other with the task. 5. The students then show their various attempts at solving the problem, either to a group of students or the whole class, and we discuss the various solutions in class 6. If needed I will then show them examples of «best practises». Here I will also present various controls and how they can be used as part of the solution of the given problem At the moment we are setting up the classroom to facilitate this approach in a better way. The classroom is divided into five groups, each group having its own large table with a 42 inch monitor, that all students can connect to, at the end of the table. We are about to set up a solution with HDMI Matrix Switches that will allow each student to route their screen to any of the monitors and to the main projector if needed. Likewise, I can share my screen with any of the monitors or the main projector. This will help my students in sharing their solutions/problems with each other. Like Devin, I have also come across research that seems to indicate that drilling is better than complex problem solving in teaching basic skills. However, my experience is that to much of this will make it harder for my students to become good problem solvers. In my course, all students must develop an application of their own choosing, from initial idea to finished product, in the last term. Many of my students have indicated that this have been the most important factor in the development of both understanding of and skills in programming. I think that the most important factor in this is the kind of problem the students face in step 4 of this method. This problem most be near enough to the original problem, but still different from it. This decides the quality of the discussions we get after the students have tried to solve the problem. Best regards Tore Nilsen > 10. okt. 2019 kl. 20:36 skrev Devin Asay via use-livecode > <email@example.com>: > > RIchmond has an excellent point: your development environment is less > important than your goal. > > The reason that all of us immediately typed ’set the userLevel to 5’ in > HyperCard is that you wouldn’t get far in your task until you needed a > bump-up to a higher level of capabilities. > > I also teach beginning programming (beginning application development is > actually a better term), but to college students rather than primary kids. I > realized recently like a bolt of lightening that I have been spending far too > much instruction time describing the development environment and too little > on setting tasks and then telling the students about the tools in LC that let > them accomplish the task. I don’t know why it took me so long to come to that > insight, because “need-based” learning is how I learned both HyperCard and > LiveCode. (And probably how most of us learned.) Now I’m thinking about ways > to incorporate more task-based instruction into my classes. > > But then I’m faced with the paradox that, according to some of the research > I’ve looked at on teaching programming, large problem solving assignments are > less effective than focused focused practice in teaching fundamental > programming concepts. What I take from that is that students are helped by > “drilling” a concept with canned, focused, smaller tasks than they are by > setting them a complex problem to solve. So my evolving approach is 1. > present a concept, 2. do some drill and practice on the concept, 3. set them > a more complex task that requires them to apply the concept. > > I had imagined by this time in my career that I’d have figured this all out. > I might just be slow. :-) > > Devin _______________________________________________ use-livecode mailing list firstname.lastname@example.org Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode