210 likes | 310 Views
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:
E N D
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 reductionbetween two languages
Show strong need for canonical procedures Given L3 = • For determining weather L3 Rstudents 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 Programming Paradigms • With Yulia Stolin
Paradigms, their building blocks and relationships among them
Abstraction as an organizing theme for a Programming Paradigms course Programming paradigm Programming language
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 ACM46(9), pp. 37-39.
Traditional methods Abstraction in software development processes
Traditional methods Agile methods Abstraction levels in software development processes
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