13
How to Teach “Programming” [email protected] • Lecture 1: Education for kids Lego Mindstorms (NQC : Not Quite C) –Scratch • Lecture 2: Unix for Poets –Request: bring a laptop if possible •Windows Users: please install http://www.cygwin.com / –Target audience: Grad Students in Linguistics –Unix shell scripts (almost not programming) –Small is Beautiful • Lecture 3: Symbolic Processing –Target audience: •MIT Computer Science Majors (circa 1974) –LISP: Recursion, Eval, Symbolic Differentiation –Lambda Calculus (“Small is Beautiful” beyond reason)

How to Teach “Programming” Kenneth.Church@jhu

  • Upload
    gaetan

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

How to Teach “Programming” [email protected]. Lecture 1: Education for kids Lego Mindstorms ( NQC : Not Quite C) Scratch Lecture 2: Unix for Poets Request: bring a laptop if possible Windows Users: please install http://www.cygwin.com / Target audience: Grad Students in Linguistics - PowerPoint PPT Presentation

Citation preview

Page 1: How to Teach “Programming” Kenneth.Church@jhu

How to Teach “Programming”[email protected]

• Lecture 1: Education for kids– Lego Mindstorms (NQC: Not Quite C)– Scratch

• Lecture 2: Unix for Poets– Request: bring a laptop if possible

• Windows Users: please install http://www.cygwin.com/ – Target audience: Grad Students in Linguistics– Unix shell scripts (almost not programming)– Small is Beautiful

• Lecture 3: Symbolic Processing– Target audience:

• MIT Computer Science Majors (circa 1974)– LISP: Recursion, Eval, Symbolic Differentiation– Lambda Calculus (“Small is Beautiful” beyond reason)

Page 2: How to Teach “Programming” Kenneth.Church@jhu

Lego Mindstorms• Iphone & Lego:– Better Together– Video

• Rubik’s Cube: – Video

• Sampler: – video

• Knitting Machine: – video

• Popular – with target demographic

– video

Page 3: How to Teach “Programming” Kenneth.Church@jhu

The Origins of Mindstorms http://www.wired.com/geekdad/2007/03/the_origins_of_/

• Papert participated in educational projects at MIT which used the forerunners of the Lego Mindstorms system.

Page 4: How to Teach “Programming” Kenneth.Church@jhu

Mindstorms• When children are young, they are incredibly facile

learners. – If your child were to spend some time in France, it is likely he or

she will pick up quite a bit of French. – "What would happen," asked Papert, "if children who can’t do

math grew up in Mathland, a place that is to math what France is to French?"

• In the 1970s, Papert constructed a kind of Mathland using the LOGO programming language, and robotic turtles that could draw pictures. – These tools were used by very young kids, who would not

ordinarily be exposed to concepts like angles and polygons. – Papert’s book, Mindstorms, recounts this fascinating story.

Page 5: How to Teach “Programming” Kenneth.Church@jhu

Phrogram

Page 6: How to Teach “Programming” Kenneth.Church@jhu

http://scratch.mit.edu

Page 8: How to Teach “Programming” Kenneth.Church@jhu
Page 9: How to Teach “Programming” Kenneth.Church@jhu
Page 10: How to Teach “Programming” Kenneth.Church@jhu
Page 11: How to Teach “Programming” Kenneth.Church@jhu

Social Computing– Emphasis: Community & Sharing

• Man machine interface Kid2kid• Machines should be seen (but not heard)

– Scratch = LOGO/LEGO + Web Search• Keywords to try:• Circle_Circus, Fold Symmetry, Rubik’s Cube, Guitar Hero, BigPaw, Birthday

– Instant gratification (Option to Run without downloading)– Source is always available– Lots of Mashups– Comments, tags, more projects by, recommendations, etc.– Stats/Community Feedback:

• 1116 views, 6 taggers, 64 people love it, 4 remixes by 4 people, 41 downloads, in 3 galleries

Page 12: How to Teach “Programming” Kenneth.Church@jhu

Is this Computer Science,Or is this just fun?

• Social Computing– Emphasis on Community

• GUI (Graphical User Interface)– Drag-and-drop – Lego Mindstorms on Steroids

• Manuals/Documentation– Available (but not recommended)

• Small Language– 8 menus Circumscribes “reserved” words

• There are smaller languages– Lambda Calculus– But smaller is not necessarily simpler– Or more accessible

• Evaluation? – What is Success? For a language? Community?

Page 13: How to Teach “Programming” Kenneth.Church@jhu

Homework

• Suppose you have a 12-year-old kid sister.• Design a scratch project for her. • Ok to start with some other student’s project and

ask her to modify it in some interesting way. • The project should be fun (and educational), and

make her want to learn more.• What are the computer science principles?– Learning Moments (or just plain fun)