One of the classes I teach is AP Computer Science where students learn how to program in Java. My class is a University of Washington in the High School class and also articulated for credit through several local community colleges. Programming relies heavily on math and very detailed that a missing semicolon in a hundred lines will keep a program from running, thus making it a struggle at times.
As Bruner says a student “must have the attitude that he can use his head effectively to solve a problem” That is the first concept of programming that must be learned and continually reinforced. The students learn programming processes, structures and syntax and must create a solution to a problem using them. Trial and error is a requirement as well as persistence, which can be harder for students to understand and harder to teach. Once a solution is “found” a student must demonstrate he understands how the concepts work together and explain how they used them.
I believe that my subject area within the educational technology field happens to be highly successful using constructivist teaching strategies. “Students construct knowledge (see Vygotsky, 1986) and teachers facilitate (scaffold) their inquiry. As students learn to develop concepts, the learning of information, concepts, and skills are enhanced” (Page 43).
While Bruner’s discovery learning is a great way to reinforce concepts, it is not for introducing new processes or structures. Learning how to program must have guided instruction, especially for the initial and foundational understanding of new concepts. Problem solving strategies must be taught, like how to identify and fix errors, these strategies are not inherently discoverable. Inquiry Based Learning, is successful since it combines the strategies of concept attainment and discovery learning.
The problems that I use are real world problems, those that students know and understand. When a problem is real and not hypothetical nor uses a concept that is outside the students’ experiences, engagement increases. The Learning Pyramid, is used often to explain what type of strategies increase retention of the information students are taught, and is used as a guide in designing my lesson. The students who retain the most appear to be those who can help others and can be demonstrated through documentation that the students understands what their code solves.
When starting from what the student knows, they learn how to break down tasks that they do without thinking into detailed processes, which can use to design the algorithms that will be use to solve the problem. Students relate the problems mathematically and through practice, learning how to translate them into code. I see my students “think creatively and transform how they think and think of themselves as learners” as in Inquiry Based Learning.(The IBL Blog)
The least favorite of any programming student is that of documentation. While the programming industry uses documenting, students find that it is not the “”fun” part. Documentation is the programmers “reflection”, it facilitates a deeper cognitive understanding. Students must describe what each structure is programmed to do. If a student can explain the application they are likely to be able to use it again successfully. The secondary consideration is that of using another student’s code. Have they explained to them well enough that if they needed to modify your code they could do without too much trouble?
There remain times where guided instruction in conjunction with practice is needed to help students understand the concepts. I have found that is true for programming new concepts, it is not helpful during the application. While Vygostky, and Bruner acknowledged that students must be actively involved in the construction of their own knowledge, scaffolding is an essential in a programming course. When students finally understand the concepts it is an “aha” moment, and that is one of the reasons I love what I do.
Joyce, Bruce R.; Weil, Marsha; Calhoun, Emily (2014-06-05). Models of Teaching (9th Edition). Pearson. Kindle Edition.
The IBL Blog. (n.d.). Retrieved April 17, 2015, from http://theiblblog.blogspot.com/
The Academy of Inquiry Based Learning. (n.d.). Retrieved April 17, 2015, from http://www.inquirybasedlearning.org/
#Programming #InquiryBasedLearning #Edu6526 #InstructionalStrategies
Danielson 3c: Engaging Students in Learning