21
What did I take from the research in AMT to the research in Computer Science and Software Engineering Education? Orit Hazzan Department of Education on Technology and Science Technion October 16, 2007

What did I take from the research in AMT to the research in Computer Science and Software Engineering Education? Orit Hazzan Department of Education on

Embed Size (px)

Citation preview

What did I take from the research in AMT to the research in Computer Science and Software Engineering Education?

Orit Hazzan

Department of Education on Technology and Science

Technion

October 16, 2007

Abstraction

Kramer (2007): Two aspects:

The first emphasizes the process of removing detail to simplify and focus attention;

The second emphasizes the process of

generalization to identify the common core

or essence.

Research

The theme of reducing abstraction (Hazzan, 1999)

Students use ways by which they reduce the level

of abstraction of abstract (mathematical) concepts.

Computability

Abstract algebra

Differential equations

Data structures

Graph theory

School mathematics

Reducing abstraction Abstraction level as the quality of the relationships

between the object of thought and the thinking person (Wilensky, 1991)

Retreat to familiar mathematical structures

Abstraction level as reflection of the process-object duality

Show strong need for canonical procedures which reflects process conception

More

Show strong need for canonical procedures

Three main ways to solve an exam: Constructing a Turing machine

Using Rice theorem

Defining a reduction between two languages

Show strong need for canonical procedures

Given L3 =

For determining weather L3 R students could:

use Rice theorem or

construct a reduction from one of the non recursive languages.

Relying on Rice theorem is a simpler and shorter

process.

Students prefer building a reduction.

Solving Question 3A

No. of students who used Rice theorem: 36.

No. of students who built a reduction: 72.

Different languages as the source language of the

reduction.

HP 45 students

L()’ or (L)’ 12 (The symbol ‘ represents set complement.)

Ld 12

Lu 3

Show strong need for canonical procedures

A student: “When I do a reduction from HP I know what to

do in each case, when it halts and when it does not halt.

[…] When I learn for the exam [and solve problems from

previous years] instead of complicating the solution,

showing that a property is a non-trivial property of

languages in RE [and using Rice theorem], I always do a

reduction from HP”.

Interpretation: “A reduction from HP can sometimes be

constructed automatically without understanding the subtle

details”.

Teaching

Teaching Programming Paradigms

With Yulia Stolin

Paradigms, their building blocks and relationships among them

Programming Paradigm

Building BlocksRelations between building blocks

Functional FunctionsComposition

ProceduralProcedures / Sequence of commands

Hierarchy

Object-oriented ClassesInheritance

Abstraction as an organizing theme for a Programming Paradigms course

Programming language

Programming paradigm

The Software Industry

Software complexity

“[m]any of the things we make with software today are more complex than most buildings and, as in building design, software design embraces many aspects: function, safety, human interface, ergonomics, graphics, algorithms, data structure, program structure, protocol, and application interface, among others.” (Singer, 1994).

Abstraction in computing

"Once you realize that computing is all about constructing, manipulating, and reasoning about abstractions, it becomes clear that an important prerequisite for writing (good) computer programs is the ability to handle abstractions in a precise manner". (Devlin, 2003).

Devlin, K. (2003). Why universities require computer science students to take math? Communications of the ACM 46(9), pp. 37-

39.

Abstraction in software development processes

Abstraction in software development processes

Traditional methods

Abstraction levels in software development processes

Traditional methods

Agile methods

Abstraction in agile software development

Small Releases

Planning Game release and iteration

Refactoring

Pair Programming

Agile methods

What did I take from the research in AMT to the research in Computer Science and Software Engineering Education?

Theoretical lesson: The importance of abstraction

Practical lesson: Everything you learn is useful