Card programming Programming Language design



Similar documents
GRADE SIX-CONTENT STANDARD #4 EXTENDED LESSON A Permission Granted. Making a Scale Drawing A.25

What is Penetration Testing?

Be visual all the time, and be verbal when labeling because explanations help clarify ideas.

I. Title of Lesson: Learning from Artifacts and What Artifacts Tell Us

ESP MARKETING TEACHER S NOTES

Rational Number Project

How to Avoid an Attack - Security Testing as Part of Your Software Testing Process

Using Karel with Eclipse

CODESPARK TEACHER S GUIDE Hour of Code

The Walters Art Museum. Mathematics STAINED GLASS DRAWING

Cycles in the Sky. Teacher Guide: Cycles in the Sky Page 1 of Discovery Communications, LLC

Goal To develop a classification scheme based on the structural features of organisms and then use the scheme to classify newly-discovered organisms.

Invention Techniques

Open Source Voting Systems

What s Up With The Stock Market? EPISODE # 404

2 Mathematics Curriculum

You can learn more about Stick around by visiting stickaround.info and by finding Stick Around on social media.

Lesson 12. Software Development

WESSL-2 Script Builder Reference Guide

separate the content technology display or delivery technology

FIRST GRADE Number and Number Sense

STRING TELEPHONES. Education Development Center, Inc. DESIGN IT! ENGINEERING IN AFTER SCHOOL PROGRAMS. KELVIN Stock #651817

Intro Lesson (Ages 8-14)

The University of the State of New York REGENTS HIGH SCHOOL EXAMINATION MATHEMATICS A. Tuesday, August 13, :30 to 11:30 a.m.

Computational Modeling and Simulation for Learning an Automation Concept in Programming Course

Integrating Technology in the Classroom

Colour by Numbers Image Representation

Firewall Cracking and Security By: Lukasz Majowicz Dr. Stefan Robila 12/15/08

FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. Chapter 4 Finding Network Vulnerabilities

VISUAL ALGEBRA FOR COLLEGE STUDENTS. Laurie J. Burton Western Oregon University

Moodle Implementation - Build or Buy?

Growing Up With Epilepsy

INTRODUCTION BUILD KNOWLEDGE. What Students Do in this Activity. A-ha! Objectives. Time

Plotting Ordered Pairs on a Four Quadrant Grid Grade Five


Benefits of Test Automation for Agile Testing

START TEACHER'S GUIDE

Testing Websites with Users

"Why is it important for ELL students to be active in listening, speaking, reading and writing on a daily basis?"

Volume of Right Prisms Objective To provide experiences with using a formula for the volume of right prisms.

eggplant for Cross Platform Test Automation TestPlant Nick Saunders

Systems Analysis and Design Life Cycle

Orion in 3D. STUDENT WORKSHEET Page 2. TEACHER S GUIDE... Page 5 Templates... Page 8,9

* Graph paper is a pdf file of graph paper that you can use to print onto printer appropriate acetate.

Mathematics Second Practice Test 1 Levels 4-6 Calculator not allowed

Explore architectural design and act as architects to create a floor plan of a redesigned classroom.

Comindware Tracker. Reviewer s Guide Comindware Inc.

The Weakest Link: Mitigating Web Application Vulnerabilities. webscurity White Paper. webscurity Inc. Minneapolis, Minnesota USA

Facilitating Adult Learning

Future Landscapes. Research report CONTENTS. June 2005

Area and Perimeter: The Mysterious Connection TEACHER EDITION

FORMATIVE ASSESSMENT STRATEGIES, DEFINITIONS, EXAMPLES

Create an anonymous public survey for SharePoint in Office Ted Green, SharePoint Architect

Tips for Working With ELL Students

Writing Thesis Defense Papers

Summer. at CSI. Launch Your Creativity

Event processing in Java: what happens when you click?

Computer-Based Assessment and Instruction: Technology for Teaching and Learning

Making tessellations combines the creativity of an art project with the challenge of solving a puzzle.

Countering The Faults Of Web Scanners Through Byte-code Injection

Automated Text Analytics. Testing Manual Processing against Automated Listening

Prime and Composite Numbers

Tasks to Move Students On

Feature Factory: A Crowd Sourced Approach to Variable Discovery From Linked Data

Linear, Square and Cubic Units Grade Five

Data Coding and Entry Lessons Learned

Family Law. Lesson: Family Violence. CLB 5-6 Instructional Package

PUSD High Frequency Word List

SELECTING ECOMMERCE WEB HOSTING & SUPPORT

PLANT TECHNICIAN SKILLS AND ABILITIES PRACTICE TEST

Section III Guided Oral Practice 10/ T Graph for Social Skills Chants Sentence Pattern Chart

Tutorial 1. Introduction to robot

MATHEMATICS TEST. Paper 1 calculator not allowed LEVEL 6 TESTS ANSWER BOOKLET. First name. Middle name. Last name. Date of birth Day Month Year

Content. Software Development. Examination Advice & Criteria. Format - Section A. Section A 8/25/10

HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013

Three daily lessons. Year 5

ISSH 2011 ABM Track - Hands-on Exercise

1. I have 4 sides. My opposite sides are equal. I have 4 right angles. Which shape am I?

Unit One Employability Skills

Tutor, Tool, Tutee: A Vision Revisited

National Health Education Standards and Performance Indicators. Interpersonal Communication [4.12.1; ; ] Self Management [7.12.2; 7.12.

Bag It! A Quick and Remarkably Easy Instructional Design Process.

The University of the State of New York REGENTS HIGH SCHOOL EXAMINATION MATHEMATICS B. Thursday, January 29, :15 a.m. to 12:15 p.m.

Lesson Closure with Examples or 40 Ways to Leave a Lesson

ScrumDesk Quick Start

Tips for New Teachers of ESL. Prepared by UMBC Students

Local Government and Leaders Grade Three

DANCE VOCABULARY LEARNING GAMES

Designing a poster. Big is important. Poster is seldom linear, more like a MindMap. The subjects belonging together are located close to each other.

Code Kingdoms Learning a Language

MADE to ORDER: Instant Content Area Vocabulary

RESILIENT PRODUCT LIFECYCLE MANAGEMENT STRATEGIES & SOLUTIONS FOR FUTURE-PROOFING PLM

Transcription:

Tell and Draw, Card Programming Developed by: Jun-PyO Park, Seung-Bum Kim, Dong-Hee Park and Seung-Joon Choi. Arranged by: Tim Bell. This is an engaging extension of the CSUnplugged Marching Orders activity. The extension was developed by the PINY team in Seoul, Korea. As well as introducing programming, it exposes students to the idea of open-source development, and also programming language design. Card programming Programming Language design Summary Computers are usually programmed using a language, which is a limited vocabulary of instructions that the computer can obey. The computer will only follow instructions that are part of the language, and they follow those instructions to the letter. In this activity students are challenged to think about how such a language would be designed so that it is powerful enough to do interesting things, and yet is easy to understand. Furthermore, most software systems are too big for one person to develop, and one popular model for getting contributions to a system from others is Open Source software, where a program is made publicly available, and others can try to improve it, and share their improvement with the community. The activity is intended to give the students insight into programming, open source software, and how programming languages are designed. Curriculum Links Skills Ages Materials Computing: Programming languages, software engineering, open source software English: Interpersonal Listening Giving and following instructions. Planning 7 years and up Note: this is an extended activity that could take two or three hours to complete You will need: Cards with pictures such as the ones shown on the next page. Blank index cards (allow about 20 per pair of students) Grid lined paper Each student will need: Pencil, paper and ruler

Card programming Introduction There are three phases to the activity: (1) Communicating an image by verbal description (2) Communicating an image with a written description, and (3) Designing a list of instructions and using them to communicate images. First, discuss whether it would be good if people followed instructions exactly. For example, what would happen if you pointed to a closed door and said, Go through that door? Computers work by following lists of instructions, and they do exactly what the instructions say even if they don t make sense! Verbal description Have the students get into pairs. The first student in each pair is given an image that they must communicate verbally to the second, and the communication must be one-way (the second student cannot ask any questions). The second student attempts to draw the image based on the description. The pairs are given a fixed amount of time (say, 5 minutes) to complete the task. After this, show the pairs of images (original and drawn) to the class, and have a vote or discussion on which is the best. For example, the pairs of images could be put up on the wall, and students could vote by putting a sticker on their favorites. Written description Now have the students do a similar exercise, but this time with a written description (textual only). Give the first person in each pair 5 minutes to write a description, and then the second student has a further 5 minutes to try to draw the image given only the textual description.

Before judging the quality of the outcome, take the original image, the textual description, and the image that was drawn to one person in another pair (they could be rotated around the room). The person who has the three sheets of paper is then asked to edit the textual description (use a red pen to mark it up) to try to improve it, taking into account any errors that appeared in the image that was drawn from the original written description. The new description is then given to their partner, who must attempt to draw the image. There will now be three versions of the image: the original, the first attempt, and the second attempt from the (hopefully) improved description. Put the three versions up on a notice board for voting and discussion. Did the edited description improve the outcome? Did it make it worse in some cases? Is it helpful to be able to do this i.e. have different people work on a description to improve it, and allow people to use the new description if they think it is better? Note: you may find that often the second description is better, but sometimes the editing is a step backwards and the outcome is worse! This is typical of computer programming, where you hope that most changes result in an improvement, but sometimes they can make things worse sometimes even much worse! Card programming language In this phase of the activity, students are asked to prepare generic instructions that they can later put together to describe an image. To make the descriptions easy to keep accurate, the drawings will be made on a numbered grid, so the instructions can refer to (x,y) coordinates. Typical instructions might be to move the pen to a position on the grid, and to draw a line between two given points. Each instruction should be written on one card. The challenge for the students is to try to anticipate what sort of instructions will be useful. Here are some examples from students:

The students are then given an image (drawn on a grid) that they must communicate using the instructions. Some sample images are given below. They are only allowed to use the instructions they ve created, or they can make new ones that can be expressed using only their existing instructions. This time, the image is not drawn by a partner, but by a person who is designated to be a tester (perhaps a teacher, or a student who is familiar with programming). Students queue up to present their image to a tester, who follows their instructions on the cards precisely, and draws the image. The student then takes the image away, and attempts to improve the program, bringing it back each time for testing. This simulates the write-compile-debug cycle for programming. Having a delay (queue for testing) forces students to think very carefully about their programs if they were doing it on a computer they might be tempted to make small changes to see if it fixes a problem, rather than reasoning through corrections carefully. Finally, students can be given a parameterized task, such as writing a program to draw a square which has a given size.

Follow up There are a number of on-line systems that use turtle graphics like the cardprogramming system above. One example is Design by Numbers (dbn.media.mit.edu), which can be run from the website. What s it all about? Computers operate by following a list of instructions, called a program, that has been written to carry out a particular task. Programs are written in languages that have been specially designed, with a limited set of instructions, to tell computers what to do. Some languages are more suitable for some purposes than others, and there are many researchers who work hard to design new languages to make it easier for programmers to do their job. Regardless of what language they use, programmers must become adept at specifying exactly what they want the computer to do. Unlike human beings, a computer will carry out instructions to the letter even if they are patently ridiculous. It is important that programs are well written. A small error can cause a lot of problems. Imagine the consequences of an error in the program of a computer in a space shuttle launch, a nuclear power plant, or the signals on a train track! Errors are commonly called bugs in honour (so it is said) of a moth that was once removed ( debugged ) from an electrical relay in an early 1940s electronic calculating machine. The more complex the program, the more errors there are likely to be. This became a major issue when the USA was working on the Strategic Defence Initiative ( Star Wars ) program, a computer controlled system that was

intended to form an impenetrable defense against nuclear attack. Some computer scientists claimed that it could never work because of the complexity and inherent unreliability of the software required. Software needs to be tested carefully to find as many bugs as possible, and it wouldn t be feasible to test this system since one would have to fire missiles at the United States to be sure that it worked! Most programs these days are developed by teams of programmers, in some cases by thousands of people! To coordinate such large projects, formal rules and methodologies are needed, and looking after these sorts of issues is called software engineering. One interesting approach to developing programs is open source software, where the author of a program makes their work available for other programmers to inspect, improve, and re-publish. This process can enable very large projects to be completed (for example, the widely-used Firefox web browser and OpenOffice productivity suite were developed using an open source approach).