Monday, October 13, 2008

Jeff Kramer on Abstraction

Here are some notes that I've taken down from a keynote speech given by Jeff Kramer at MODELS 2008. The keynote was about how and if to teach abstraction and how abstraction is important for SW development and design. Some students just do not understand clearly certain concepts (concurrent algorithms, modeling) whereas some students are really good. What is the difference between the good and unable students. The answer is abstraction. What is abstraction?
  1. remove detail (simplify) and focus (selection)
  2. finding commonalities
Jeff exemplified abstraction on metro maps. London was the first one to use abstraction to depict the routes, i.e., not adhering to the geographical parameters. Metro maps around the world use this abstraction now. One should keep in mind that each abstraction is fit only for certain purpose. Don't use the abstract metro map instead of a normal map when you are walking around the city. Software is abstract, intangible, by its nature. Hence abstraction is important in its design. This leads us to the following Question: How do we obtain the skill of abstraction? Can we teach that? Answer: It's part of our genes but, no doubt, can be improved by teaching. According to Jean Piaget's cognitive stages, abstractions skills develop between the age of 12 and adulthood. Bad news: abstraction skills reached only by 30% of people. What do we do to improve this?
  • teach enough mathematics
  • teach modeling and analysis, must be tool supported, students must feel the benefit
In the second half of the presentation, Jeff gave a demo of some examples and tools that he's using in his course on concurrent systems. A formal language is used to describe concurrent systems and these can be further analyzed, animated, etc. in a LTS Analyzer. See Jeff's book for more information. An example that I found interesting was how to use deadlock detection to solve the Fifteen puzzle. And a small problem at the end. Let's have the famous N dining philosophers problem. An even-numbered philosopher will always first pick the fork on the left and then the right one whenever he wants to eat. An odd-numbered philosopher will pick the one on the right first. By picking I mean that the philosopher waits if the fork is in use. For which N this strategy does not deadlock?



Blogger rgrig said...

If by "always picks left" you mean "tries to get the right fork only if it holds the left fork" (and if the choice is nondeterministic when two try to get the same fork) then why would there ever be a deadlock?

14 October, 2008 10:32  
Blogger mikolas said...

rgrig: I didn't phrase the problem properly, I tried to fix it now.

However, you're right there's no deadlock for any N.

14 October, 2008 11:07  

Post a Comment

<< Home