Discovery is an essential part of Sugar in education. There are many kinds of discovery. You are welcome to add to this discussion.
The irreducible minimum in science is a combination of observation and theory, where the scientist takes great care in checking how closely they match up, and compares his or her theory to all other contenders. Peer review and publication are essential to making scientific results useful to anybody other than the discoverer. Robust debate within the community is necessary to weed out weak theories, and to replace strong theories with stronger ones when the evidence justifies it.
The epitome of this method is Isaac Newton's discoveries in gravity and thus in astronomy, combining the mathematics of an inverse-square attraction with millennia of observation of the stars, the planets, the tides, the calendar, comets, meteors, and other phenomena. The discussion of these matters in detail amounts to a library. Here we will note only that there is much more to the story than is given in schoolbooks, and that much of it matters in daily life, where denial of the findings and methods of science is a major factor in US politics, and in many other countries. It is widely conjectured that teaching scientific method in schools would greatly improve public discourse, and cut into financial fraud and other crimes. Unfortunately, so-called science teaching in schools focuses on results, and almost totally ignores method.
Alan Kay, Mokurai, and others are discussing these questions on the It's an Education Program (iaep) mailing list.
Discovery in learning software
When I (Mokurai) start in with a piece of software that is new to me, I begin by locating the minimum set of functions for doing useful work. With a text editor, word processor, or publishing program, that means
With no more than this I can create documents of considerable utility, and edit previous work. Many other kinds of application software are sufficiently similar to word processing for much the same procedure to work, starting with the same kinds of functions. Many are not, such as graphics and music software, or Unicode font viewers, or cataloging programs for documents, music, images, and so on. But the basic principle applies. In each case, you use a program because you have some idea of what it can do for you, and of the minimum set of functions you need to get anything at all done.
When I am comfortable that I can actually do something with the software, I explore every feature of the program. Not at one sitting, generally. That would be a bit much. A rule that I discovered for myself in childhood is to work on learning something until I get tired of it, or it stops making sense. Either is an appropriate signal to stop, and let my brain digest what I have taken in. Then I can come back refreshed at another time, review a bit, and proceed further.
This exploration means left- and right-clicking very object in the working area and every tool icon on any toolbar; trying every command on any menu or submenu; clicking every button in every dialogue box; and testing anything else I spot. Most items will be reasonably familiar to me from previous experience with other software, but this will not apply to the novice. There are almost always features that I have not seen elsewhere, where I am again a novice. Some I can understand by trying them to see what they do. In a few cases I have to consult the help, or ask somebody.
When I was learning Framemaker for professional technical publishing, I spent some time on this every day for several weeks. I am happy to say that no Sugar activity took me more than a few hours to understand in detail, except where there are features not made obvious in the User Interface and the Help. You can see the list of such problems in The Undiscoverable.
This neat pattern does not work so simply for programming languages. They have many more features than applications, and tend not to expose them in a convenient GUI. The principle of locating the essentials first is carried out in the tradition of providing a "Hello, World" example that does nothing more than display that text. This can vary from a simple expression, such as
'Hello, World' NB. In the J dialect of APL Print("Hello, World") /* in a variety of other languages */
up to a page or so of code in a GUI programming system to create the window for displaying the text, and whatever else might be needed. Here is the same program in Turtle Art.
Where to go next depends on the kind of language. But there are a relatively small number of things that are common to most languages, and a few more that we can use to describe and even implement any language. Studying these things is a large part of the field of Computer Science.
At some point, we will be able to create extremely simple Turtle Art examples for many of these ideas. Then we can find out how much of CS children can make sense of, or even discover on their own.
Discovering the world
Every infant is born with powerful abilities for exploring and understanding much of the world, including human language and society. We have made a good beginning on discovering these abilities, but there is far more to come and to apply to education in general and educational software in particular.