Computing Education: What Have We Learnt From Computer Science (and Software Engineering)?

Computing Education:

What Have We Learnt From

COMPUTER SCIENCE

(and Software Engineering)?

John Hurst

4th Melbourne Conventicle

Deakin University

16 Nov 2007

Outline

  1. On Art, Education, Engineering and Science
  2. Early Masters of Computer Science
  3. The Lessons of Computing
  4. Conclusions

A Personal Reflection

Some Definitions

So we have two new fields:

Science and Art

John Stuart Mill (1843):

"Several sciences are often necessary to form the groundwork of a single art. Such is the complication of human affairs, that to enable one thing to be done, it is often requisite to know the nature and properties of many things ....

Art in general consists of the truths of Science, arranged in the most convenient order for practice, instead of the order which is the most convenient for thought. Science groups and arranges its truths so as to enable us to take in at one view as much as possible of the general order of the universe.

Art ... brings together from parts of the field of science most remote from one another, the truths relating to the production of the different and heterogeneous conditions necessary to each effect which the exigencies of practical life require. "

(My emphases)

Taxonomies and Typologies

The challenge in here is one with which one of my recent PhD graduates (Angela) wrestled, in acknowledging that a true understanding of student programming difficulties required a 'typology' of attributes that define such difficulties.

Knowing the nature and properties of the discipline in question is the first step to creating the intellectual rigour that goes to make up a science.

In other words, science consists of taxonomies.

What of Engineering?

Education

Outline

  1. On Art, Education, Engineering and Science
  2. Early Masters of Computer Science
  3. The Lessons of Computing
  4. Conclusions

An ECR Grapples with Pedagogy

Form and Content in Computer Science (Minsky, 1969)

  1. Theory of Computation (form is often beguiling: what is the optimum way to multiply two numbers?)
  2. Programming Languages (Look at moi, look at moi: I've got one word to say to you: syntax!)
  3. Learning, Teaching, and the "New Mathematics" (which has more x's?)

Education is another area in which the computer scientist has confused form and content, but this time the confusion concerns his professional role. He perceives his principal function to provide programs and machines for use in old and new educational schemes. Well and good, but I believe he has a more complex responsibility -- to work out and communicate models of the process of education itself.

Computing Education has a long (and distinguished) history!

Computer Programming as an Art (Knuth, 1972)

Donald Knuth, in his 1973 Turing Award Lecture, wrote:

If we go back to Latin roots, we find ars, artis meaning "skill." It is perhaps significant that the corresponding Greek word was Τεχνη (tau-epsilon-chi-nu-eta), the root of both "technology" and "technique."

The word "science" seems to have been used for many years in about the same sense as "art"; for example, people spoke also of the seven liberal sciences, which were the same as the seven liberal arts. Duns Scotus in the thirteenth century called logic "the Science of Sciences, and the Art of Arts". As civilization and learning developed, the words took on more and more independent meanings, "science" being used to stand for knowledge, and "art" for the application of knowledge. Thus, the science of astronomy was the basis for the art of navigation. The situation was almost exactly like the way in which we now distinguish between "science" and "engineering."

(My emphases)

Knuth, by his own admission, regards The Art of Programming as his life's major work. It is still being written (vol 4 of 6).

Notation as a Tool of Thought (Iverson, 1979)

Derived largely from APL:

  1. Ease of expressing constructs arising in problems.
  2. Suggestivity. (for example, De Morgan's Laws, Duality of Boolean Algebra, Existential and Universal Quantifiers, etc.)
  3. Ability to subordinate detail. (divide and conquer)
  4. Economy. (George Miller The Magic Number 7±2)
  5. Amenability to formal proofs. (formality is inexorable: Ken Robinson)

What are the notations for Computing Education?

Outline

  1. On Art, Education, Engineering and Science
  2. Early Masters of Computer Science
  3. The Lessons of Computing
  4. Conclusions

Unix model: History

Unix model: Multi-Lithic

Portability: Why be Limiting?

Many of you will know where I am coming from here: My Microsoft Page

But I'm not anti-Microsoft, just pro-interoperability!

Arrogant or Erudite?

The Age, Letters, 8 Nov 2007

  • Does courtesy exist in IT?
  • It is arrogant to assume technical capacity on the receiver's part
  • It is erudite to offer materials in a form best assimilated by the student

Robustness: Pedagogic Reliability and Validity

Computability: What are the Limits?

Time Sharing: Where to with Multi-Tasking?

Roll Your Own ...

Outline

  1. On Art, Education, Engineering and Science
  2. Early Masters of Computer Science
  3. The Lessons of Computing
  4. Conclusions

Conclusions: Computing Education as a Science

Conclusions: Computing Education as an Art

Conclusions: Computing Education as Engineering

Concluding Conclusions

http://www.csse.monash.edu.au/~ajh/research/seminars/WhatHaveWeLearnt.html