Upload
jack-hicks
View
215
Download
0
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.
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”.
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
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 agile software development
Small Releases
Planning Game release and iteration
Refactoring
Pair Programming
Agile methods