Abstract:
In higher education subjects are traditionally taught in the form of lectures, where teachers are required by the curriculum to cover a certain amount of content in order to prepare their students for subsequent courses or examinations. It has been observed that people struggle when they are required to memorize a lot of new information, this phenomenon is explained by the working memory theory [1], and the negative effect is amplified when teaching subjects like programming, with the links between categories of information that has to be memorized not clearly identifiable by beginners. Lecture material for programming courses often mixes language-specific information (keywords, syntactical rules, ready solutions), mathematical basis for a given solution (type theory, algorithm theory), hardware-specific limitations (computer memory management) etc. This often has drastic consequences for students’ success in later courses that rely on material from previous courses [2].
This paper argues, that the process of learning is not simply about transferring knowledge from teacher to student. In fact, knowledge does not have to be “existing in an objective manner” for subsequent transmission, it can also be “built in a constructive manner by the learner" [3]. Within a traditional educational process software engineering students find themselves in situations where text is used to reason about other forms of text: typically code examples are shown first, then the code’s structure and syntax are explained. While there is intrinsic value in reading code written by experts, reading explanations of that code is much less effective than trying to reason about the structure and function of a program, and various features of a programming language. This paper will attempt to showcase several teaching techniques that don't utilize textual explanations (either partially or completely), putting forward the argument that non-linguistic presentations can be more effective in teaching, under certain conditions. Several methods of achieving this effect will be described, with the main goal of appealing to the student's ability for computational thinking.