Previous: Introduction and background
Main page
Next: assessment
Background -- educationIt is easy to take the practice of teaching for granted. Teaching is often misrepresented as being a simple matter of presenting information to students. Such a view underestimates what is required of both student and teacher. In reality, teaching and learning are complex social and cognitive processes, and educational practice is the subject of a thriving research literature. To understand what is going on in this literature, we will need to look at the prevailing educational theory: constructivism.
ConstructivismConstructivism is one of the most important theories of learning today. Essentially, constructivism says that students start out with some kind of mental framework (which may be sketchy), and assimilate new knowledge by slotting it into place within that framework (Ben Ari, 2001). In other words, students understand new information only in relation to information that they already know. This implies in turn that the teacher must not simply transmit information, but help learners to integrate and assimilate the new information, recognise when a learner has constructed a model that is inconsistent with it, and explain and repair the resulting misconceptions.
Requisites for learningThere are a few obvious prerequisites that need to be in place in order for learning to be effective. Students need to feel safe to explore their environment. This is a problem in computer science, because many students enter the discipline with little previous computing experience and, like many novice computer users, may fear that misusing the computer will somehow break it.Similarly, students need to feel socially safe: they must not feel vulnerable to loss of face. This is always a challenge; few people enjoy being wrong, and yet the experimentation and exploration that are necessary to construct a new mental model often takes students down a few blind alleys and wrong turnings before they get it right. If students feel that they will be open to ridicule or exposure, then it will be much harder for them to attain deeper levels of understanding.
Computer science educationComputer science is a new discipline, and has been taught as a University subject in its own right for less than the lifetime of many of its practitioners. Although there is a large literature in computer science education, especially concentrating on the teaching of programming, most of it is concerned with the choice of programming language (Jarc, 1992; Howland, 1997), or examines particular teaching or assessment practices (Carbone, 1998; Chamillard, 2001; Hagan, 1998). These authors are usually informed by extensive teaching experience, but rarely tie the practice into a theoretical framework. The authors that treat theory (Powers, 1999) are rarely specific about classroom practice. It seems that the foundation theories of computer science education are still under construction.
Constructivism in computer science educationAs Ben Ari (2001) points out, the nature of introductory computer programming courses makes them highly suitable to the constructivist model. In general, students entering such courses have limited exposure to programming, and therefore lack preexisting misconceptions. In comparison, students usually enter introductory Newtonian physics handicapped by a lifetime spent under gravity and in the constant presence of friction: naive physics is Aristotelian, characterised by the belief that objects will stop moving in the absence of force, but naive computer programming is practically nonexistent. Moreover, it is usually easy for the student to explore the world of computer programming. Testing a new hypothesis about how the compiler will behave gets almost instant feedback. Again, this is not the case in physics: practical physical experiments usually require a degree of setup, measuring and calculation. Tam (2000), writing from the perspective of distance learning, also gives constructivist arguments that support the use of computers as a medium of instruction even in non-computing contexts.Experience does, however, suggest one domain of prior experience that may interfere with the successful construction of a model: language. Most computer languages are based on human languages, at least in vocabulary, and computer programs do resemble a list of instructions that one might give another person, so it is only to be expected that students will unconsciously make the same assumptions when programming that they do in speech. And yet, computer languages are very different to human languages. When we interpret language, we rely heavily on context to disambiguate references: they are usually taken to refer to the most salient object that matches the description, either in the environment, the prior conversation, or in the body of knowledge shared by the speaker and the hearer (Clark, 1996). To date, no computer language has been developed that can interpret the way we do --- and such power of interpretation would be undesirable in any case, since that flexibility gives rise to the ambiguities in natural language! Several authors have commented on the problems that arise from novices' inappropriate extensions of natural language (Spohrer, 1986; du Boulay, 1989). Therefore, the steep learning curve that is the hallmark of introductory programming can be explained as the foreseeable result of the students' having to construct their own mental model of the discipline, with little interference from prior programming knowledge but some interference from prior natural language knowledge. Computer programming teachers can help them in this construction by helping them orient themselves in the new domain, and by helping them to identify and overcome any misconceptions they might acquire. Mayer (1989) gives evidence that a broadly constructivist educational technique --- explicitly providing students with a "model", or descriptive analogy, for the constructs they are learning --- has a positive effect on deep learning.
The university and its stakeholdersEducation does not take place in a vacuum. There are many bodies that have an interest in the teaching process, and each body needs to be satisfied that the whole business has been worthwhile. Before the outcomes of the education process can be evaluated, it is a good idea to examine the needs of the people who have a stake in it. Assessment can only be evaluated in this wider context: does it actually do what we need it to do?Many groups have an interest in the way universities conduct their teaching, and each has a slightly different perspective on university activities. The most obvious group is the student body. Students enter university for many different reasons, but it is safe to say that they wish to be trained for a career, to be treated fairly, and not to be worked too hard. Although the student body is heterogeneous, most students do not have much experience with the discipline in which they are being trained, nor do they necessarily know much about how universities are run --- either administratively or educationally. The university staff, both academic and general, must also be considered stakeholders. Staff who teach follow-on courses need to know what level of ability they can expect from incoming students who have completed prerequisite courses, and administrative staff need to ensure that resources are being well used. University policy-makers wish to ensure that the university's reputation remains high, both as a research institution and as a teaching institution. Universities are also responsible to the industry bodies --- both to the future employers of their graduates and to professional associations such as the IEEE or the ACM. Employers expect a certain level of workplace competence in their graduates, and professional bodies need to scrutinise the quality of the courses taught in order to accredit them. In Australian public universities, the government is also a major stakeholder: as the university's primary source of funds, it needs to be assured that its funds are well-spent. The wider community is also entitled to expect competence and professional standards of behaviour from university graduates. University courses must address the concerns of all these stakeholders. It can be particularly difficult to evaluate how well a course is working: for example, student evaluations are often used, but as mentioned above, students might not know their discipline well enough to form an informed opinion on the subject. Counting the absolute financial cost of the course is not sufficient to assess its worth: the benefits of the course need to be counted as well. Even the pass rate of a subject is meaningless in itself, without information on the course content and the methods and standards of assessment.
The challenges of a new disciplineAs well as the demands listed above, which are common to all university courses, computer science faces some challenges all its own. The youngest of the sciences, it has achieved a great deal of publicity. Computers are now found in most workplaces and many homes, and newspapers breathlessly report the achievements of computer manufacturers and software development companies. At the same time, computer science and computer programming are not well understood in the general community.The high profile of computing in the general press is probably one of the factors pushing demand for computer programming courses. Despite the increasing number of people qualifying, demand for qualified programmers, although not as strong as it was at the height of the dot.com boom, is still much greater than the supply of graduates. Denning (1999) and McKeown (1999) comment that this industry demand draws potential academics away from research and education. The fact that this situation was not an artifact of the Web-driven 1990s is demonstrated in Curtis (1983). The community's lack of understanding of computer sciences causes another problem for introductory courses. Learning computer science is not simply a matter of knowing how to program. Constructivism would lead us to expect that programming ability rests on some conceptual basis that needs to be built before the skill transfer can be effective. Furthermore, a competent programmer needs to be able to do many other things than program: the speed with which the basic components of the programmer's work environment --- operating system, hardware, languages, applications --- succeed one another implies that the ability to retrain will be most important. This means that the programmer needs to acquire sufficient conceptual background to be able to extend his or her knowledge without assistance from others, which will entail the assimilation of a lot of abstract theory. However, graduates often come into computer science courses with the expectation that programming will be the sole focus of their course. This disjunction between student expectations and the reality of the computer science syllabus is arguably a cause of student attrition (Sanders, 2000). | |
Previous: Introduction and background
Main page
Next: assessment