One of the goals of this blog is to provide free pdf files I've written that discuss and explain the mathematics and programming techniques I used in my projects uploaded to Scratch.

Along with the beginning programming features and the math-based Scratch projects I will also be highlighting science projects. Here's one science project I'm working on. The idea was stimulated by dapontes, a Scratch user that uploaded his 'Parts of the Cell project (here's the link http://scratch.mit.edu/projects/dapontes/2989999) to the Scratch web site. I had not paid much attention to the Looks menu until I saw dapontes' project, downloaded it, and looked at the code. I played around with the fisheye effect on Scratch the cat, saw how easy it was to use, and went looking for an object to try it on. There are several effects that can be accessed by clicking on the small black triangle in the [set _______ effects] block.

Years ago I had made a 'working' heart pump from a couple of plastic bottles, plastic drinking straws, and one of those plastic tubes used to connect two plastic bottles so that a tornado is formed when water flows from the top bottle to the bottom bottle. I made a one-way valve from a piece of duct tape, connected the bottom bottle to the top bottle with plastic straws so that water with a bit of red food coloring pumped around the two bottles, through the one-way 'heart valve'.

So, I found a heart image, converted it to a png file, imported the image as a sprite, and applied the fisheye effect to the sprite. It took a bit of experimentation to get the effect the way I wanted it but it sure was simple to do! Watch this YouTube video of my project.

Use this link to download a copy of the project from Scratch, look at the code, and remix it!

I found a heart beat sound effect on the web. It sounds great on my big Mac but it sounds kind of tinny on my laptop. Maybe you know where to get a better sound file. I also added a heart rate slider so that you can play with the rate at which the heart beats.

As
shown in the following diagram, the amplitude
is the maximum and minimum values for y when graphing the equation y =Asin(a). Change A, and the heights (amplitudes) change.

This project can be viewed at http://scratch.mit.edu/projects/popswilson/2971107 on the Scratch web site.

I’ve
just uploaded to Scratch the next project in the Sine series that looks at the frequency of the sine function and the
parameter that controls it. You can view and download the project at

from popswilson’s My Stuff page. Below is a screen shot of
the project.

After
the first sine curve (in blue) with an amplitude of 100 is drawn, set the frequency
to another value and press the space bar to plot the new curve in the color red.
The red curve in the screen shot is the plot of the sine curve with a frequency
of two.

The
FM after the call numbers of a radio station refers to frequency modulation. The signal (an electromagnetic wave) that
carries the radio broadcast from an AM station is modulated (changed) by
varying the amplitude of the wave. Varying
the frequency of the wave modulates an FM radio signal.

It’s no news that students
that are successful learning arithmetic often stumble and even fall, without
ever getting up, when faced with learning algebra.

As a math and science
educator, I can report that little attention is given to laying the conceptual groundwork
students need to make the transition from arithmetic to algebra.

When
classroom computers became available in the early 1980s (my first computer was
an 8K Commodore PET with tape cassette drive), I believed that finally, we had
a tool that would make learning algebra not only relevant but also easy! That
belief was—and still is— based on the fact that programming requires algebraic
thinking.

Perhaps the
most fundamental concept in algebra and programming is the concept of a variable.
In the typical algebra text, the variable concept is briefly mentioned and then
quickly followed by the never-ending song and dance between the x’s and the
y’s. The variable x becomes synonymous with unknown and for many
students, the x and algebra itself remains an unknown.

He goes on to say that computer programming makes use of all five uses of
the variable! For this and many other reasons (problem-solving and logical
thinking are just two) I hope my grand kids are willing to learn introductory
programming so that I can help them understand the importance and relevance of
algebra.

It is in this spirit that I have started this blog devoted to helping
beginners learn to program, maintaining contact with the teachers I work with,
and to having a place to share my math and science programming projects.

The Scratch programming language is free and can be
downloaded at

http://scratch.mit.edu/

and while you’re
there, check out the site as it is a very friendly place for kids of all ages
and offers the opportunity to become part of a programming community that has
1,337,805 registered members that have created and uploaded almost three million
programming projects.

I have just finished teaching a two-unit college course in programming for middle school and secondary math teachers. Over the years I have used BASIC, Logo, Pascal, and the version of BASIC Texas Instruments uses in their programmable calculators. The last two times I have taught the course I have used Scratch. No matter what the programming language, I have found that many math teachers have a difficult time learning to program. I have pondered this phenomenon for years because in my mind, programming should be easy for math teachers.
Over the last few years I have created a structure that I use in the course for every programming project. I insist on participants following the seven steps of algorithmic thinking. Doing this has helped participants in my course understand that programming is not a single skill, it's a set of skills.

The Stages of Algorithmic Thinking

Purpose:
to create machine* understandable
algorithms that solve a specific problem

First, Do
the Math with Paper & Pencil Part

•Analyze
the problem

Next, Do
the Algebraic Thinking Part

•Identify
the Variables

•Determine
the relationships between the variables

And Finally, Do
the Algorithmic Thinking Part

•Create
a Logic Flow diagram

•Translate
the relationships (math syntax) à (computer syntax)

[the
syntax of every computer language is fixed and can not be violated)

•Combine
the pieces of code (into the algorithm that solves the problem)

•Test
the algorithm (debug)

*machine = any device controlled by digital logic [computer, smart
phone, etc.]

Algorithmic Thinking Takes Place within a Problem-solving Environment

If you teach programming for nonprofessionals, what structure do you use?

In the recent post, The Sine Function, I explained the origin of the sine function as a ratio of sides in a right triangle and then described how to build the sine function script in Scratch.

In Scratch parlance, making modifications to an existing Scratch project is called a remix. Since uploaded Scratch projects can be downloaded by Scratch users, remixing is encouraged and often leads to new and interesting variations on a theme.

The remix of my Sine project has been uploaded to My Stuff at

http://scratch.mit.edu/users/popswilson

where you can download a copy.

Here's a short video that describes how the project works.

I just uploaded a new project to my Scratch folder at

http://scratch.mit.edu/users/popswilson

called The Sine Wave.

I would imagine a surfer likes big waves that arrive frequently. The Sine Wave project explains the sine ratio as derived from a right triangle, the unit circle, and then how to graph the sine function in Scratch.

The project allows the user to change the amplitude of the sine curve. Oh if it was only that easy for the surfer!
A free pdf file for this project is available on request by sending an email to grandadscience@gmail.com.
The next sine function project will allow the user to play with the frequency of the wave.

Scratch the cat appears on the graphics screen as soon as Scratch is downloaded and opened.

This video illustrates how easy it is to get Scratch to move and turn! Also, the block structure of Scratch is demonstrated. This feature of Scratch means you don't have a 'typing' editor that adds to the chances of making the typographical mistakes that keeps your scripts (programs) from running properly—or at all!

Following is a list of the other introductory Scratch videos on my YouTube channel. Go ahead and work ahead!