DEFINITIONS

Algorithms - A set of instructions for performing a simple task.  A simple example would be a recipe or a the directions to a friend's house.  It might be helpful to think of this in terms of "good algorithms" - those that provide clear and concise directions, and "bad algorithms" - those that are not clear, avoid simple solutions, or don't work.


Arduino - "Arduino is an open-source platform used for building electronics projects. Arduino consists of both a physical programmable circuit board (often referred to as a microcontroller) and a piece of software, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board."  https://learn.sparkfun.com/tutorials/what-is-an-arduino/all  Arduino's are pretty amazing.  They are inexpensive, easy to use, and there are tons of helpful tutorials, docs, examples, and videos to help you learn how to work with the board.  They are excellent for physical computing (see below) allowing you to connect a wide array of input devices/sensors to an equally wide array of output devices - motors, lights, speakers, etc.  They can be programmed using both text-based and block-based programming languages.  You can even buy a special kit (Snapino) that links an Arduino to Snap Circuits.


Block Based Programming - Block-based programming (BBP) "separates executable actions into modular portions called blocks. These blocks are generally represented with icons that can be clicked and dragged to reorder them. Editable fields, like drop-down menus, allow users to provide further input. This graphical representation of the code can demonstrate the process to new users who may be unfamiliar with programming." - https://www.computerhope.com/jargon/b/block-based-programming.htm  I think the best example of a BBP would be Scratch.  Take a look at the sample Scratch code below:

This program is composed of three blocks (each a separate color in this case.)  In a Text-based programming language (TBB), each of the blocks would be represented by several lines of computer code.  Something you might program using a TBB (Javascript) would look something similar to this:
basic.showString("Hello, world!")
basic.forever(function () {
})
Notice the editable fields in the Scratch program.  In this case, you can type in whatever you wish in the white box in the purple say box.  Now, it's  Hello, world!  I can easily edit it to say something like Hi, how are you?

Computational Artifacts - From Quora.com: "A computational artifact is anything created by a human using a computer. An artifact can be, but is not limited to, a program, image, audio, video, presentation, or web page file. Using this definition then anything you make using a computer is an artifact."

Computational Thinking - As stated in the 2017 Virginia Computer Science Standards: "Computational thinking is an approach to solving problems in a way that can be implemented with a computer. It involves the use of concepts, such as abstraction, recursion, and iteration, to process and analyze data, and to create real and virtual artifacts."

Conditionals - A conditional allows a computer program to evaluate a hypotheses and then based on that evaluation take (or not take) a certain action.  The most common is the If-then statement.  If a certain condition is met, then take a particular action.  In Scratch, this might look like:

In this case, once the Green Flag is clicked (an event) the program waits until the spacebar is pressed, when that has happened, then, the sprite moves 10 steps.  In Scratch, the if-then-else statement provides a secondary path of execution when an "if" clause evaluates to false.

An If-then statement in a text-based language (Python in this case) would look like:

Notice that there is no then statement, just an action to perform if the If statement is seen to be true.

Control Structures - A part of a program that directs the flow of a program, based on certain input/information.  It can be thought of as a branch point in a program - based on input, the program will go in one direction and perform a certain task, a different input might send it in another direction to perform a different task.

Data Types - A simple definition would be to say that a data type is the kind of information that might be stored in a variable.  Some examples of data types would be integers, floating point numbers, characters, strings, and arrays. They may also be more specific types, such as dates, timestamps, boolean values, and varchar (variable character) formats.  By assigning a data type, you are helping the computer to understand how to deal with that bit of information.

Events - An Event is an action that results in a computer program taking another action.  Events might be mouse clicks, key presses, sensor inputs or outputs.  A good example of an Event is a Scratch program starting when the Green Flag icon is pressed.

Iterations - "Iteration, in the context of computer programming, is a process wherein a set of instructions or structures are repeated in a sequence a specified number of times or until a condition is met. When the first set of instructions is executed again, it is called an iteration."  https://www.techopedia.com/definition/3821/iteration

Iterative Design Process - "Iterative design is a design methodology based on a cyclic process of prototyping, testing, analyzing, and refining a product or process. Based on the results of testing the most recent iteration of a design, changes and refinements are made."  https://en.wikipedia.org/wiki/Iterative_design

A diagram comparing different Design Processes from a personal blog: https://www.tes.com/blog/a-process-design


Loops - A loop is the process having a software program repeat the same instruction over and over until receiving the order to stop or until a specific condition is met.  Scratch commands that you might use in creating loops would be:
And a Scratch loop might look like this:


A Python (Text-based language) might look like this:


Microbit - A Microbit is a small, inexpensive ($16.00 at Amazon.com) microcontroller, or programmable circuit board.  It can be programmed in a block-based computer language similar to Scratch (Makecode) or in Python.  It is a good starter platform for physical computing, allowing for both input and output.  An online electronics vendor, Sparkfun.com, has developed a number of kits around the Microbit, including a weather station: https://www.sparkfun.com/products/16274
You'll see a great introduction here: https://support.microbit.org/support/solutions/articles/19000013983-what-is-a-micro-bit-
One great feature of the Microbit is that the home website, www.microbit.org, provides a programming environment that includes a virtual, interactive Microbit display so that you can test your programs before downloading them to the bit.  You can also use a tab to switch between programming languages (Makecode and Python) so that what you've developed using one is easily translated to the other.  See the Data and Analyses page on this site for a more detailed discussion.

Models/Modeling - Computer models attempt to replicate and/or predict the behaviour of or the outcome of a real-world or physical system.  Probably the most familiar example of a computer model would be the models predicting the behaviour of certain weather phenomena - storm tracks, rainfall amounts, temperatures.  Models are based on mathematics, using past data to predict future behavior.  Modelers study these data to identify what rules might control a situation.  A good discussion of computer modeling can be found at https://www.sciencenewsforstudents.org/article/explainer-what-computer-model

Physical Computing - Physical computing involves systems (hardware and software) that interact with the surrounding environment. A physical computer senses its environment, processes that information, and then performs some action.  A typical physical computing system might have a light sensor and an led linked to an Arduino board and software that collects information (input) from the sensor and then sends a command (on/off) to the led based on that information.  So, if it's dark the light comes on, if it's bright the light goes off.  Physical computing systems provide an excellent setting for CS Standards-linked Performance Tasks.

Pseudocode - A simple, informal representation of a computer program in everyday terms.  It can be helpful in the initial stages of planning a program.  For example, this is pseudocode for a program for calculating a class average:
Set total to zero
Set grade counter to one
While grade counter is less than or equal to ten
      Input the next grade
     Add the grade into the total
Set the class average to the total divided by ten
Print the class average.

Scratch and Scratch Jr - Visual, block-based programming languages.  See the Scratch and Scratch Jr pages on this site for more detailed discussions.

Sequencing - Arranging objects or numbers according to a set rule. Sequencing is the specific order in which instructions are performed in an algorithm.

Simulations - Simulations and Models are closely linked.  One explanation of the relationship is that "A computer model is the algorithms and equations used to capture the behavior of the system being modeled. By contrast, computer simulation is the actual running of the program that contains these equations or algorithms. Simulation, therefore, is the process of running a model. Thus one would not "build a simulation"; instead, one would "build a model", and then either "run the model" or equivalently "run a simulation"."  https://en.wikipedia.org/wiki/Computer_simulation

Snapino - The Snapino kit (available at Amazon.com for about $50.00) allows students to link the Arduino board and its programs to Snap Circuits electronic components.  A great platform for physical computing.  See the Data and Analyses page on this site for a more detailed discussion.

Text Based Programming - In a text-based programming language, coding is done through typing various characters from a syntax, or list of codes readable by a particular language. Some text-based languages include:
C++
Java
ActionScript (Flash)
JavaScript
Python
Scheme
https://en.scratch-wiki.info/wiki/Programming

Variables -  Variables are used to store information in a computer program. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.  Here's an example in Python from the website https://cscircles.cemc.uwaterloo.ca/1-variables/:
The line myLuckyNumber = 13 stores the value 13 in the variable myLuckyNumber. Then, anywhere you write the variable name myLuckyNumber again, Python retrieves the stored value. Below, there is a short example of using variables. It has more than one line of instructions: Python executes the first line, then the second line, and so forth until it reaches the last line.
myLuckyNumber = 13
print(myLuckyNumber + 1)
print(myLuckyNumber)
myLuckyNumber = 5 + 2
print(myLuckyNumber)
Running the program will produce the following output:
14
13
7
Look at the 5 lines of the program in order, and how they correspond to the output. As you can see, myLuckyNumber keeps its value of 13 for the first two print statements, then its value is changed to 7. We also introduced the plus operator (+) above, which adds two numbers together. Similarly, there are operators for subtraction (-), multiplication (*), and division (/).







Comments

Popular posts from this blog

PURPOSE

MICROBIT EXAMPLE

COMPUTATIONAL THINKING FICTION BOOKS