In the afternoon, professor Jeannette Wing presented her talk entitled “Computational thinking and thinking about computation” (slides). She wrote a short essay “J.M. Wing, “Computational Thinking, CACM Viewpoint, March 2006, pp. 33-35 (paper) and introduced her big vision for our future.
Computational thinking (CT) should become a fundamental skill for everybody in the world. CT is about taking a computer science approach to solve problems, and it is not just algorithmic thinking, but also engineering thinking, AI thinking. Abstractions are our mental tools, and it is important to choose the right abstractions, operate simultaneous at multiple layers of abstractions, and define the relationships between the different layers.
Examples: taking your kids to soccer, gymnastics, and swim practice (traveling salesman problem), cooking a gourmet meal (parallel processing), cleaning out your garage (data management).
Research implications: how this has already influenced other scientific fields and beyond? Examples: caluculus for biology to model behavior of cells, brain science, chemistry, geology, astronomy, maths, engineering, etc… in economists, game theoretic notions for pricing (economics), all phd go to wall street instead of becoming professors, social science to explain social networks. Visualization enables new toolsÉ sports (ai tools for view tapes), arts,
What concepts can children learn when? What should we teach when? How to best integrate the computer with learning and teaching the concepts? There are different drivers for that.
First technological trends as for example alternative computing substrates such as biocomputing, quantum, nanocomputing, bio-nano-quantum computing, or new types of devices: mobiles, robots for disabled, cars are networked (you drive a computer)! Virtual worlds (NASA even has 2nd life meetings), brainy machines, blue brain project, web 3.0
Then societal drivers, which are related to our expectations: everything, everywhere, anytime, for ever, for everybody, different layers of things… hmmm.
There are still five deep questions in computing
- P=NP? Could drive to develop new mathematical techniques.
- What is computable? Power and limits of computation? What is a computer? A comp is not just a PC anymore: the net, server farms. Consider a machine and a computer computing together (TOGETHER), complement each other? Combine both powers.
- What is intelligence? (and consciousness)?
- What is information? Not just 0 and 1’s…
- (How) can we build complex systems simply? Is there a complexity theory for systems as there is for computing? Meaning of sys cplx that spans theory and practice. Do these systems need to be so complex???
So spread the word, make it a common place, explain it everyone!
Professor Tom Henzinger, “Challenges in embedded systems design“.
There exist two cultures of models: engineering (differential equations, linear algebra, and probability) and computer science (logic, discrete structures, automata theory). All systems we build are extremely complex, and 1/3 of the boeing development cost was for integration and validation cost. It is impossible to try every possible line of code and see where are bugs.
What went wrong? Engineering theories of estimation/ robustness, CS theory of correctness. build reliable systems. Temptation: programs are mathematical objects, but we should avoid the boolean (true/false) vision of the correctness of programs.
Cyberphysical systems 3 type of constraints for embedded systems.
Execution, Reaction, and Computation. We left the physicality in CS, we remove time and resource constraints. Software is the most costly and least flex part of embedded systems. We should take back the embedded systems design and not let it fully to EE guys. Also, we need new formal foundation for computational, which remarry compuations and physicality. Two main aspects: performance (what is computed) and robustness (change of resources, failures, attacks).
Subchallenge 1: integrate analytical and operational modeling
We need both and need engineers that understand both worlds
Subchallenge 2: build predictable system: predict = deterministic (internal we don’t care), but behavior needs to include nonfunctional aspects such as time
Non-determinism is central to complexity theory, to abstractions and concurrency. There is useful non-determinism, and the one we don’t care and that we don’t see. As long as the result is correct we don’t care how we got it.
Can we build languages that treat time in the same way as high level programming languages treat memory? The compiler (or a runtime) can choose when to execute tasks in order to be optimal. (SET - execution time model).
Subchallenge 3: build robust systems, more continuous systems: check values in function of time. Less continuous: read sensor if x then, else…
We need high-level programming models for building deterministic systems from non-deterministic parts. We need system preference metrics for building continuous systems from non-continuous parts.










