-
Notifications
You must be signed in to change notification settings - Fork 114
Programming basics
The goal of this section is to give artist fast understanding of core programming concepts to be able to follow VEX tutorials if the programming is Terra Incognita for him (or her). To explain complex things (and programming could be sophisticated for those who never have a deal with it or who consider himself an artist but not technician) we will use simplification and analogies. This is not even a first steps, we learn to crawl here.
Simplification is a focus on the main topic ignoring all surrounding exceptions and details. Analogies — explaining unknown with the notions which are intuitive (familiar without any extra knowledge to a majority of humans in the world). Both simplification and analogies yields to a faster understanding but less precision. Keep in mind that you may not pass an exam on computer science with such kind of knowledge but from the other side it would be possible to start applied developing without finishing computer science class.
At the end of the lesson, you should be comfortable with syntax, data types, variables, commands, functions, loops.
Let's define what is programming. Sure we can say that programming is a process of creating computer programs, it would be correct, but not very useful. Let's say, programming — is communication with a computer, it`s how you can "speak" with this device. The more accurate definition would be: giving precise instructions to a computer to perform specific actions. Moreover, anything you want your computer to execute should be expressed in a way that your computer will understand. And the only thing computers understand is a program written in particular programming language.
You can imagine programs as blocks. The program could be simple (like a lonely small block of code), or it could be more sophisticated and combined with numerous small blocks linked together. How we link blocks we will describe later in data types section.
A particular example: when you copy a file from one folder to another your OS execute specific program.
As you can speak different languages, computers understand different programming languages also. The written rules for each language (the alphabet, words and sentence structure, etc) is what we can call a syntax. Each programming language has its own syntax. Once you learn one of them it's more and more easy to learn another.
A particular example: you should end every sentence in VEX with a semicolon.
The concept of data type is much more easy to understand than to explain. Let's define what is data first. Data is any piece of information you are dealing with inside your program (code). It's important to understand that data is not a part of the code (program) itself. It is something that "comes inside" your program from the outer environment (everything around your program block).
You can imagine data pieces as blocks as well, but this blocks, unlike programs, do not do anything, just holds information.
Now we can clarify links between different programs we speak above in Programming section. In addition to program input (when something come inside the program), the program can produce something (data) and give it away (output data). And usually, programs modify input data and output (return) the results of the modifications. This data flow between blocks of programs can be imagined as lines between blocks and this is how we link blocks (programs) together.
For example, if we have a program which copies files from folder A to a folder B (when user selects a file in explorer and press Ctrl + C in folder A and Ctrl + V in folder B) the input data here is a name with a path of the copied file (C:/temp/myFile.py). Giving a program file path as input we let it know what file it needs to copy, so the program can do the job. Another data examples: list of students in a class, the current time in Michigan, number of wheels in a car, etc.
Obviously, if data could be any piece of information that comes into a program we need to sort out (structure) somehow all varieties of this information, otherwise, we would not be able to deal with it efficiently. The number of options in which form the information could be presented is limited. A number of wheels in a car is a digit. List of students is a stack of characters (students names). Time is also a digit. And a path to a file is also a stack of characters.
Data type — is exact form in which any piece of information in a computer program can be represented.
We will examine most used in VEX data types:
Integer — a whole numbers: 256
Float — a fractional number: 3.14159
Vector — a set of 3 floats: {1.0, 0.0, -12.56}
String — a text, set of characters: 'Hello, World!'
List — a set of values with the same data type: ['John Daw', 'Paul Anderson', 'Sarah Connor']
Variable — is a container served to store data. Imagine a variable like a box with coins (or any other volume with any other items of the same type).
The current variable can hold only one data type. You cant store integer and string for example in one variable. Each data type requires its own variable.