Or perhaps hear, see, do? I was asked about my teaching last week. What would my ideal class period look like. It was as they say a thinker. What I have been trying to do this semester was to mix things up a bit. Straight lecture tends not to work that well. At least not by itself. As one student told me “It all makes sense when you explain it but when I try to do it I get confused.” At the same time one has to explain the concepts. Right? I think so anyway. So I often start with a lecture. I try to include pictures (or at least PowerPoint slides that are more than just bare text). I take questions (love to take questions) and look at faces to see if students are getting it (or falling asleep).
Next I try to demo the code (or what ever else I am teaching). I try to make the demos interesting and interactive. I ask questions. Answer question. And generally try to make the demo more than just a different way to lecture. Seeing seems to help usually. I also take advantage of tools like the debugger to make things obvious that are usually more opaque.
Thirdly, and probably most importantly, I ask the students to do it themselves from scratch (at least the new concepts part from scratch.) I am finding that in programming the students grasp the syntax more easily than how to put the syntax to work to solve a problem. I’m trying to help there but that has been the big problem for as long as I can remember.
It’s the same way in most subjects though. Students can know all of the parts of a sentence and be able to break them down in a sentence they are given without being able to write a great sentence themselves. At least with writing they get more practice and they don’t have to start from scratch in high school.
Getting students more problem solving practice is a goal for me for the rest of the semester. I think they will soon have enough of the concepts and syntax to do interesting things with code. It is best that they learn how to thing computationally before being overwhelmed with too many “tools.” Figuring out what is enough for now is important. From a good but not exhaustive base students can start to solve problems. Later, as they finish with simple problems, they can ask about and digest more tools for the problems that are not easily solved with the tools they already have.
That’s my theory. What do you think of it?
Yup, sounds like a plan. Teach lots of little pieces and hope the kids can assemble the pieces into a bigger picture. I like to have the kids do simple projects that target a programming concept. After doing the simple programs I give them a bigger project that uses all the parts of the simple project. Sometimes it even works. My problem is I get wrapped up into the project myself and lose the fact the kids may not be as fascinated as I am with the whole thing. In my one class of eight students I have two that actually enjoy programming, the rest are just in survival mode. Small school, not many electives and they had to be somewhere. Still it works out. They get a taste of programming so they know what it is all about.
ReplyDelete