Content deleted Content added
m Fixed references appearing twice |
Remove link to the title inside the text (CheckWiki error 48). Do general fixes if necessary using AWB (8512) |
||
Line 13:
The group raised funds from several private foundations, the US Department of Education, and the National Science Foundation to create
* software appropriate for novices in functional programming
* courseware (curricula, lecture notes, exercises, mini-projects)
* teacher training camps.
Over ten years, it ran several dozen one-week workshops for some 550 teachers. In
Line 21:
presented their work with students.
In 2010, [[Racket (programming language)|PLT]] renamed its major programming language [[Racket (programming language)|Racket]]. At the same time, the group renamed DrScheme to [[DrRacket]] and a little later TeachScheme! to
==Functional Programming, Computing and Algebra==
Line 52:
This short program simulates an apple falling from the top to the bottom of a
small white canvas. It consists of three parts:
* a function definition for create-image, which is a one-line function in mathematics, assuming an algebra of images with place-image, circle, and empty-scene have been introduced;
* two abbreviations, where names are equated with some value, just as in "let x be 5" in an algebra text; and
* one line for running the program.
A teacher can explain create-image as easily as any ordinary function in an algebra
Line 97:
Along the process dimension students learn that there are six steps to designing a
(simple) program, before they can run it and others can use it:
* problem analysis with the goal of describing the classes of data that go into the program and come out;
* the reformulation of the problem statement as a concise purpose statement;
* the creation of examples that illustrate the purpose statement and that serve as criteria for success;
* the organization of givens, also called a template or inventory;
* coding;
* and the creation of a test suite from examples to ensure the program works properly on small inputs.
Note that, as in [[test-driven development]], test cases are written ''before'' coding, as part of requirements analysis, rather than afterward as part of testing.
Line 130:
To get started the ProgramByDesign project has produced three essential elements:
* a series of successively more powerful and permissive teaching languages, which are dialects of Racket, matched to the design recipe but with error reporting matched to the student's level (for example, many things that are legal in standard Racket, but which a beginning student doesn't need, are flagged as errors in the Beginning Student level);
* a beginner-friendly, freely-downloadable, pedagogic programming environment, [[DrRacket]], that enforces these language levels;
* a curriculum, encoded mostly in the book [[HTDP]] and its (draft) successor [http://www.ccs.neu.edu/home/matthias/HtDP2e/ HtDP 2nd Edition]
Their choice of Racket reflects their belief that Racket is a good language for a
Line 151:
==ProgramByDesign and Bootstrap==
In 2006 PLT at Northeastern University and Citizen Schools from Boston made joint efforts to reach out to inner city students with after-school programs. Citizen Schools is a nation-wide organization that matches volunteers with after-school program sites and gets them started with scripted curricula. The goal of the effort is to translate the material into a sixth-grade curriculum. The first few tests were a great success in Boston.
| url=http://www.boston.com/yourtown/news/dorchester/2011/05/bootstrap_program_pulls_up_rox.html
| title=Bootstrap program pulls up Roxbury, Dorchester middle-schoolers
Line 165:
==External links==
* [http://programbydesign.org/ ProgramByDesign]
* [http://www.racket-lang.org/ Racket]
* [http://www.htdp.org/ ''How to Design Programs'']
* [http://www.bootstrapworld.org/ Bootstrap]
[[Category:Computer science education]]
|