Mike Smith pointed out that one problem with components-based approach is that people always wire it wrong. Mike said that the right level that kids see is at the large components level, not assembly code. Someone asked about parallel programming languages. Thomas joked that it is hard to teach parallel computing courses because each year he has to rewrite notes. He pointed out that for parallel computation in super-steps with synchronization only between steps, it is very hard to write algorithms that are provably optimal.
Parallel programs are also hard to debug.
Geoff Lowney raised the question of how could ordinary people program on 64-processor machines, which are likely to appear on people's desktops in the near future. Geoffrey Knauth argued that a good implementation of threads could automatically assign threads to processors. Margo pointed out that debugging multi-threaded programs is very difficult. Brian Kernighan added that exposing parallelism is a bad idea. Mark Day observed that a lot of people use Excel, Visual Basic and Lotus Notes, which are essentially programs.