1 / 21

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 Technology and Science Technion October 16, 2007. Abstraction. Kramer (2007): Two aspects:

kiona
Download Presentation

Orit Hazzan Department of Education on Technology and Science Technion October 16, 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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.

  3. Research

  4. 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

  5. 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

  6. 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

  7. 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.

  8. 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

  9. 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”.

  10. Teaching

  11. Teaching Programming Paradigms • With Yulia Stolin

  12. Paradigms, their building blocks and relationships among them

  13. Abstraction as an organizing theme for a Programming Paradigms course Programming paradigm Programming language

  14. The Software Industry

  15. 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).

  16. 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.

  17. Abstraction in software development processes

  18. Traditional methods Abstraction in software development processes

  19. Traditional methods Agile methods Abstraction levels in software development processes

  20. Abstraction in agile software development • Small Releases • Planning Game • release and iteration • Refactoring • Pair Programming • Agile methods

  21. 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

More Related