Ulrich Hoppe University of Duisburg-Essen (Germany) http://www.collide.info
Background Higher education teacher (math/physics) PhD in Educational Technology (Tübingen, 1984) Researcher in HCI / Adaptive UIs (1984-1995) Professor @ Univ. of Duisburg Applied Computer Science Collaborative and Learning Support Systems
Related professional activities Considerably involved in building up a new computer science department (now: Comp.Sci and Applied Cog.Sci) Responsible (still) for teaching comp.sci education to future higher education comp.sci teachers Providing support and specific software tools to teachers in several schools
thinking at multiple levels of abstraction solving problems, designing systems, and understanding human behavior by drawing on concepts fundamental to computer science thinking recursively designing for simplicity and elegance using abstraction and decomposition
Computational Thinking in a Nutshell: designing/building board games logic representation complexity strategies concurrency usability visualisation
Abstraction considered essential or progressively obsolete? Computer science abstraction: invention of mental & machine interpretable formalised schemas to describe data structures and processing strategies Possible threats (?): embodiment / tangibles, concrete visual vs. symbolic representations
Abstraction from what? externalisation, operationalisation mathematics computer science abstraction counting, arithmetic, concrete constructive geometry primary experience??? programming, data organisation / representation
The Role of Programming Programming is a constructive (possibly also cooperative) activity Programming languages induce programming styles (which, in turn, may induce thinking styles) Students should not only learn to program, but they should understand/reflect the influence of programming languages (as tools of thought) on how to abstract and how to make abstractions work!
My Declarative Programming Teaser A declarative program describes what computations A perfect should number performed is a without positive specifying integer how that to compute equals these. sum of its divisors (including 1, excluding the number itself).? perfect(x). X = 6; X = 28; X = 496... % Generator for Perfect Numbers perfect(x) if pos_num(x), divisors(x,divlist), sum_list(divlist,x). sum_list([],0). sum_list([x Xs],Sum) if sum_list(xs,sum_xs), divisors(x,divlist) Sum if is X + Sum_Xs. setof(d, (pos_num(d), D < X, divides(d,x) ), DivList ). divides(x,y) if ( 0 =:= Y mod X ).
Yes, a Petri Net
Producer-Consumer Model
System Dynamics
Comparison Comp.sci inside! System Dynamics Petri Nets What is modelled? Working principle (mechanism) Computer science contribution Continuous dynamic systems Solver for differential (or difference) equations Visual interface + coding of well-known math. procedures Discrete, possibly non-deterministic, dynamic systems Token switching rules (possibly extended to predicate-transitions) Visual interface + mechanisms
The UML Case UML (the basic language of object oriented modelling) is to a large extent not computational but a descriptive visual representation for human-human professional communication and managing complexity => Modelling instead of programming???
Take-up in Comp.Sci Education Peter Hubwieser (TU München) new curriculum for comp.sci starting grade 6/7 based on descriptive obj.or. modelling Johannes Magenheim (U. Paderborn) deconstructive approach to analysing given complex software applications
The Spectrum of Learning Formats interactive presentation lecture exercise (=> orientation/judgement) small-scale problem solving seminar interpretation, reproduction, application computer lab medium scale / standardised problems software project open-ended problems, responsible planning and teamwork
Fallacies and Challenges New interactive devices make good comp.sci Digital natives make good comp.sci students (how about hackers?) Extension of the standard curriculum: - integration/appropriation of methods for human-oriented computing - new fields of intersection with other disciplines (e.g. SNA / math. sociology)