I believe to understand ones role in the domain of computing education, it is critical to have an understanding of at least three issues: pedagogical methodology, theory versus technology, and program demands. I discuss each of these below and conclude with my personal proclivities at this time.
While there are countless treatises on pedagogical methodology, I have found Nigel Cross' discussion of design education one of the most enlightening—not just for what it has to say about the unique demands of design education, but also because of what it observes about education in the long-established areas of the sciences and the humanities.1)
Cross posits that design represents a third educational culture alongside the humanities and the sciences. He further posits that each of the cultures relies on different languages, phenomena of study, core methods, and core values. For our present purposes, the comparisons he draws between science and design are particularly apt, especially with respect to cognitive methods. Cross asserts that science concerns itself with optimizing and truth-finding and is analytic whereas design concerns itself with satisficing, problem-solving, and is constructive. He underscores the need to recognize constructive cognition as a distinct and important model when he states that inductive and deductive reasoning are the standard cognitive models used in the sciences and humanities but that design requires constructive reasoning as well.
An issue addressed only obliquely in Cross' discussion is that not all students will respond equally to the same pedagogical methods and cognitive models—either because of their personal idiosyncrasies or because the nature of the program in which they are studying has accustomed them to particular methodologies. Therefore, when faced with a situation where the educator's preferred methodology is at odds with the student's, one must decide whether “the methodology is the message” (as it very well may be). If it is not, then flexibility in approaches will be essential to maximize the benefit to all students.
It is possible to approach computing as a purely theoretical area of study, a purely technological one, or something in between.
Proponents of a purely theoretical perspective attempt to position computer science as a theoretical field alongside other arts and sciences and point to the universality of the knowledge imparted to their students by programs based on such a perspective. Critics of theory-oriented education point out that it is possible for such programs to inadequately address professional requirements and that computing, being artificial at its core, cannot ever have the same abstract standing as, say, physics.
Proponents of technology-driven computing education point to the irrelevance of computing in the absence of any real (i.e., technological) means of expression. They may also reference the need to satisfy the “demands of industry”. Critics of technology-oriented education argue that such an approach often fails to sufficiently impart an understanding of transferable conceptual abstractions. They also point out that such programs fail to adequately recognize the transient nature of technology—especially in the area of computing—and can very quickly degenerate into what is essentially vocational training.
It may be important to note that the theory–technology dichotomy is often cast as a science–engineering one. I believe this is an erroneous conflation. While it may be true that a science-based perspective will tend to be theory-based, it does not follow that engineering is therefore technology-based. Rather, the science–engineering dichotomy is in many important ways equivalent to the science–design distinction discussed by Cross. Furthermore, it is possible to implement engineering programs that emphasize theory-centric or technology-centric approaches to problem solving.
Different computing-centric programs exist to fulfill different aims. It is as pointless to argue the relative merits of computer science vs. software engineering vs. physical computing vs. <some-yet-to-be-named-new-discipline> as it is to argue the merits of biology vs. medicine. While numerous fields are built around computing, they each exist for different purposes. As such, they have different requirements with respect to content, methodologies, and their relationship with theory versus technology.
Having a formal education that has encompassed the liberal arts, engineering, and design (in both a school of fine arts and in institutes of technology), I find myself agreeing emphatically with Cross' analysis discussed above. More to the point, I believe it is possible to align computing education with all three of the cognitive approaches mentioned by Cross. In particular, “classical” computing education has not traditionally emphasized constructive methodologies. However, the culture surrounding the nascent field of physical computing has a strong constructive component—and has produced practitioners capable of simultaneously elegant and complex computing solutions. This has some interesting implications for computing education in any context that I believe are worth purusing.
Within the context of university education, my personal preference is to focus on conceptual and theoretical issues and to use technology as a vehicle to explore them. I am comfortable using inductive, deductive, or constructive approaches as required by the content and students. I believe this approach best satisfies the pedagogical, academic, and professional needs of the student.
I believe that a university education is only complete when a student is able to engage in creative and critical reasoning processes—something in which theory plays a central role. Therefore the communication of theoretical concepts is crucial. My experience to date has suggested that for a majority of students the communication of theoretical concepts is vastly simplified when they can be referenced to concrete implementations. Furthermore, this has been the case whether I have taken inductive, deductive, or constructive approaches to exploring concepts.
While abstract theory lies at the core of the academic experience, it is important to recognize that computing is also a professional discipline and that a degree of professional competence will be expected from and/or desired by graduates. To many practitioners, this means functional competence in specific technologies (along with other requirements). The use of technology to motivate, explore, and/or reinforce theoretical issues gives the student functional experience with specific technologies upon which greater specific competences can be built as required or from which confidence to learn new technologies can be drawn.2)
Having said this, I feel it's equally important to state that the above perspective has been shaped by about a decade of teaching in a particular context and almost exclusively in one program. I am respectful of other perspectives and am comfortable modifying my proclivities as required to accomplish the larger aims of any program of merit.