730 likes | 850 Views
Computer Science 1000. Algorithms. Programs we now have some idea on how computers execute an instruction a system of gates is connected to process a series of bits in some fashion (e.g. adding binary numbers) your processor has a list of instructions that it can perform
E N D
Computer Science 1000 Algorithms
Programs • we now have some idea on how computers execute an instruction • a system of gates is connected to process a series of bits in some fashion (e.g. adding binary numbers) • your processor has a list of instructions that it can perform • arithmetic: adding, subtracting, etc … • memory operations: loading data from memory, saving data to memory • and many others
Programs • the language of the processor is binary • that is, each instruction is a sequence of binary digits • e.g. consider our example from term1.ppt
From the term1.ppt slides. • CPU – Basic Operation • read an instruction • execute that instruction • repeat for next instruction Memory CPU 1 17 2 29 3 46 4 56 5 2576 Computer Program place value "17" in memory location 1 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 place value "29" in memory location 2 add values in loc. 1 and 2, place in loc. 3 place value "56" in memory location 4 multiply values in loc. 3 and 4, place in loc. 5
Programming • programming in binary is considerably difficult • fortunately, most software development today is done using a high level programming language • C/C++, Java, Python, Visual Basic, etc. • a programming language represents a compromise between natural language (human) and binary code (computer)
#include <iostream> using namespace std; int main() { return 0; } From the term4.ppt slides. This is an example of a computer program written in C++. • Write program to compute the perimeter and area of a rectangle. The size of the rectangle will be specified by the user. int length; cout << "Please enter the rectangle's length: "; cin >> length; int width; cout << "Please enter the rectangle's width: "; cin >> width; int perimeter = 2 * (length + width); int area = length * width; cout << "The perimeter of the rectangle is " << perimeter << endl; cout << "The area of the rectangle is " << area << endl;
Algorithms • how does a program written in a programming language become binary code that a processor can understand? • Answer: a compiler • a compiler is a program that creates other programs from high-level code int length; cout << "Please enter the rectangle's length: "; cin >> length; int width; cout << "Please enter the rectangle's width: "; cin >> width; int perimeter = 2 * (length + width); int area = length * width; cout << "The perimeter of the rectangle is " << perimeter << endl; cout << "The area of the rectangle is " << area << endl; Compiler 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000
Programming • programs written in a programming language are typically made up of a set of statements • roughly speaking, each statement defines an operation that you would like the computer to perform • output something to screen • perform a mathematical operation • save information to a file • send a request for a webpage to a server • etc …
Programming Language • in many respects, programming languages are similar to a natural language • only accepts certain keywords • for example, the word while in C++ creates a loop, the word kev has no meaning to C++ • statements have a particular syntax that must be followed • blocks of code must be enclosed in { } • statements must end with a semicolon
Programming • given a problem, a programmer’s task is to: • devise an algorithm for solving that problem • translate that algorithm into source code • compile the source code into a program that the computer can understand • our topic for this week is to consider this task • in other words, a light introduction to programming • our programming language: Scratch
Scratch • a programming language and environment written by MIT Labs • originally intended to introduce children to programming, Scratch has become a popular choice for introducing programming in other settings (e.g. universities) • freely available (GPL)
Source code (source pane) Output Available operations.
Scratch “Code” • in most programming languages, code is written as text • in Scratch, operations are represented as blocks • programs are arranged as sequences of blocks arranged together
Sprites • the operations in Scratch control the behaviour of the sprite • different operations available • moving/turning sprite • output (as a text bubble) • sounds (drums, etc) • etc …
Scratch – First Example • write a program where the sprite says “Hello!” • solution: • find the following block • under the Looks category • drag this block onto the source code pane
Scratch – First Example • write a program where the sprite says “Hello World”
Scratch – First Example • to run the program, double click on the block • to reset the program (remove output), click the stop sign in the top right corner
Output • previous was an example of program output • each programming language has its own version of an output statement: • C: printf(“Hello!”); • Java: System.out.println(“Hello!”); • Python: print “Hello!”
Changing Output • we can change the output by modifying the text in the white box • for example, modify previous example so that output becomes “Hello World!”
Movement • in addition to text output, we can control the position and direction of the sprite • simple movement operations: • move in the direction that the sprite is facing • turn clockwise • turn counterclockwise • example: construct a program that moves the sprite 25 steps
Example #2: write a program that turns the sprite 15 degrees clockwise
Movement • to reset the position of the sprite • double click: • you may need to put zeroes in the boxes • to reset the direction of the sprite • double click:
Programs • our programs so far have been composed of single operations • the real power of programming comes in combining statements • in a typical programming language, we simply write more than one line of code • in Scratch, we place more than one block in our source pane, and attach them
Example: write a program in which the sprite moves 10 steps, and then says “Finished!”
Example: write a program that moves 100 steps, and then turns 45 degrees clockwise
Programs • note that the blocks execute from top to bottom, one after the other • we call this sequential execution • the sequence of our blocks can affect the final outcome of the program • for example, what if we reverse the order of our previous blocks?
Example #2: Write a program that writes “Hello …”, and then “… world!”
Timing • in previous example, when we double click on the code blocks, we only see “… world!” • why? • the code blocks execute one after the other • they execute so quickly, that we only see the results of the second
Timing • how can we address this issue? • Solution #1 (text only): • there is a block called Say Hello for 2 seconds • we can set the message that we want to display, and the amount of time that it should be displayed before executing the next block
Timing • how can we address this issue? • Solution #2 (general): • there is a block in the control group called Wait 1 sec. This block does not change the output, it simply waits the specified number of seconds before executing the next block. • note that this can be applied before any block
Example: write a program that moves the sprite around an imaginary square of size 100x100. The sprite should end up in its original position, facing the same direction • remember to include some kind of delay, otherwise, the sprite will appear not to move (because it occurs so quickly)
Entry Point • most programs (such as those you are used to) have an entry point • tells the operating system where to start executing the program • in Scratch, we can designate the entry point to a program using the When <green flag> clicked block • program begins when green flag clicked
Source vs. Executable • when a programmer creates a program, rarely do we ever see the source code • we only see, and run, the executable program • Scratch also allows us to run a program without seeing the source code • presentation mode • click the symbol in top-right corner
Arithmetic Operations • every major computer language permits at least some mathematical operations • simple: +, -, *, / • not so simple: sin, cos, log …
Operators • four basic arithmetic operators • these operators behave in the same way as they do in Excel
Arithmetic Expression • to use an arithmetic operator, use one of the following blocks (from the operators group): • in each white space, you put: • a number • another arithmetic expression • for example, use Scratch to compute the value 86 + 43