Font Size: a A A

Explorations in the cognitive science of computer programming

Posted on:2015-12-03Degree:Ph.DType:Thesis
University:Rensselaer Polytechnic InstituteCandidate:Li, JinrongFull Text:PDF
GTID:2478390017995530Subject:Cognitive Psychology
Abstract/Summary:
ABSTRACT Despite decades of research and development devoted to building systems for teaching computer programming to young students, and for enabling a computer to automatically create computer programs, we still face two fundamental challenges that have not yet been met: The Educational Challenge (E ): How can we teach computer programming to humans (particularly young ones) in such a way that these humans thereby acquire the ability to solve complicated problems, not only in programming itself, but in other domains calling for problem-solving power? The Technological Challenge (T): How can we "teach" programming to computing machines, so that they have the ability to write computer programs on their own?;The defense focuses primarily on results regarding E..;There have been many attempts and approaches pursued in the attempt to meet these two challenges. In the case of such work aimed at meeting E, we can safely say that the vast majority of this work has been based on constructivism. Constructivism, which is in turn based on (what we call) naive Piagetian theory, holds that young students learn best in bottom-up fashion, by constructing small, simple programs, and working gradually toward deep understanding and deep problem-solving power, which they supposedly obtain as they gradually progress. Cognitivism (at least of the elementary sort), on the other hand, holds that human cognition is computation, where that computation is restricted to relatively simple computationally mechanisms and routines; and that pedagogy should teach students routines. This research has explored a framework beyond both constructivism and cognitivism: formal meta-cognitivism+. Formal meta-cognitivism+ is based on the belief that deep understanding at an abstract level completely independent of domain is the key to problem-solving, but the abstractions in question are built out of those available in the science of computation. Programmatically, formal meta-cognitivism+ includes the view that the best way to teach computer programming is to teach facility at this abstract, logical level, and in turn teaching at that level means teaching formal logic, and the parts of computer science that relates directly to formal logic. The + is included because unlike cognitivism, our theoretical framework leaves open the possibility that computation beyond standard, Turing-level computation is needed for suitably accurate abstractions and models.;Our main formal meta-cognitivist hypothesis is that dedicated training in abstract formal reasoning will help students solve complicated computer programming problems. An initial pilot study tended to support this hypothesis. To test the hypothesis further, we investigated, in three experiments, a set of factors (e.g., ability, educational background, logic training, programming experience) in order to gauge the impact of such factors on skill in computer programming. The results support our main hypothesis, as is explained and shown in the dissertation.
Keywords/Search Tags:Computer programming, Teach, Science, Hypothesis, Students
Related items