Title: What did I take from the research in AMT to the research in Computer Science and Software Engineerin
1What 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
2Abstraction
- 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.
3Research
4The 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
5Reducing 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
6Show 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
7Show 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.
8Solving 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
9Show 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.
10Teaching
11Teaching Programming Paradigms
12Paradigms, their building blocks and
relationships among them
13Abstraction as an organizing theme for a
Programming Paradigms course
Programming paradigm
Programming language
14The Software Industry
15Software complexity
- many 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).
16Abstraction 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.
17Abstraction in software development processes
18Abstraction in software development processes
19Abstraction levels in software development
processes
20Abstraction in agile software development
- Small Releases
- Planning Game
- release and iteration
- Refactoring
- Pair Programming
21What 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