מצגת של PowerPoint

Download Report

Transcript מצגת של PowerPoint

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)


Abstraction level as reflection of the process-object duality


Retreat to familiar mathematical structures
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
Ld
12
Lu
3
(The symbol ‘ represents set complement.)
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 Blocks
Relations between
building blocks
Functional
Functions
Composition
Procedural
Procedures / Sequence of
commands
Hierarchy
Object-oriented
Classes
Inheritance
Abstraction as an organizing theme
for a Programming Paradigms course
Programming paradigm
Programming language
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