正在加载图片...
No one can predict what kind of application packages will exist five or ten years from now. But application packages will continue to require some form of programming. To prepare students for these kinds of programming activities, schools can either force them to study algebra, which is the mathematical foundation of programming, or expose them to some form of programming Jsing modern programming languages and environments, schools can do the latter, they can do it effectively, and they can make algebra fun Design Recipes Cooking is at once child's play and adult joy. And cooking done with care is an act oflove Craig Claiborne(1920-2000), Food Editor, New York Times Learning to design programs is like learning to play soccer. a player must learn to trap a ball, to dribble with a ball, to pass, and to shoot a ball. Once the player knows those basic skills, the next goals are to learn to play a position, to play certain strategies, to choose among feasible strategies, and, on occasion, to create variations of a strategy because none of the existing strategies fits A programmer is also very much like an architect, a composer, or a Writer. They are creative form a mental outline, and refine it on paper until their writings reflect their mental image do P people who start with ideas in their heads and blank pieces of paper. They conceive of an idea much as possible. As they bring their ideas to paper, they employ basic-drawing,writing,and instrumental skills to express certain style elements ef a building, to describe a person's character or to formulate portions of a melody. They can practice theis trade because they have honed the basic skills for a long time and can use them on an instinctive level Programmers also form outlines, translate them into first designs, and iteratively refine them until they truly match the initialidea. Indeed, the best programmers edit and rewrite their programs many times-until they meet certain aesthetic standards. And just like soccer players, architects, composers, or writers, programmers must practice the basic skills of their trade for a long time before they can be truly creative Design recipes are the equivalent of soccer ball handling techniques, writing techniques, techniques of arrangements, and drawing skills. A single design recipe represents a point of the program design space. We have studied this space and have identified many important categories This book selects the most fundamental and the most practical recipes and presents them in increasing order of difficulty About half the design recipes focus on the connection between input data and programs. More specifically, they show how the template of a program is derived from the description of the input data. We call this data-driven program design, and it is the most frequently used form of design. Data-driven designs are easy to create, easy to understand, and easy to extend and modify Other design recipes introduce the notion of generative recursion, accumulation, and history sensitivity. The first one produces recursive programs that generate new instances of problems as they recur; accumulator-style programs collect data as they process inputs, and history-sensitive programs remember information between successive applications. Last, but not least, we also a design recipe for abstracting over programs. Abstracting is the act of generalizing two(or more) similar designs into one and of deriving the original instances from it TEAM FLY PRESENTS-11- No one can predict what kind of application packages will exist five or ten years from now. But application packages will continue to require some form of programming. To prepare students for these kinds of programming activities, schools can either force them to study algebra, which is the mathematical foundation of programming, or expose them to some form of programming. Using modern programming languages and environments, schools can do the latter, they can do it effectively, and they can make algebra fun. Design Recipes Cooking is at once child's play and adult joy. And cooking done with care is an act of love. -- Craig Claiborne (1920-2000), Food Editor, New York Times Learning to design programs is like learning to play soccer. A player must learn to trap a ball, to dribble with a ball, to pass, and to shoot a ball. Once the player knows those basic skills, the next goals are to learn to play a position, to play certain strategies, to choose among feasible strategies, and, on occasion, to create variations of a strategy because none of the existing strategies fits. A programmer is also very much like an architect, a composer, or a writer. They are creative people who start with ideas in their heads and blank pieces of paper. They conceive of an idea, form a mental outline, and refine it on paper until their writings reflect their mental image as much as possible. As they bring their ideas to paper, they employ basic drawing, writing, and instrumental skills to express certain style elements of a building, to describe a person's character, or to formulate portions of a melody. They can practice their trade because they have honed their basic skills for a long time and can use them on an instinctive level. Programmers also form outlines, translate them into first designs, and iteratively refine them until they truly match the initial idea. Indeed, the best programmers edit and rewrite their programs many times until they meet certain aesthetic standards. And just like soccer players, architects, composers, or writers, programmers must practice the basic skills of their trade for a long time before they can be truly creative. Design recipes are the equivalent of soccer ball handling techniques, writing techniques, techniques of arrangements, and drawing skills. A single design recipe represents a point of the program design space. We have studied this space and have identified many important categories. This book selects the most fundamental and the most practical recipes and presents them in increasing order of difficulty.2 About half the design recipes focus on the connection between input data and programs. More specifically, they show how the template of a program is derived from the description of the input data. We call this data-driven program design, and it is the most frequently used form of design. Data-driven designs are easy to create, easy to understand, and easy to extend and modify. Other design recipes introduce the notion of generative recursion, accumulation, and history sensitivity. The first one produces recursive programs that generate new instances of problems as they recur; accumulator-style programs collect data as they process inputs; and history-sensitive programs remember information between successive applications. Last, but not least, we also introduce a design recipe for abstracting over programs. Abstracting is the act of generalizing two (or more) similar designs into one and of deriving the original instances from it. TEAMFLY TEAM FLY PRESENTS
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有