algorithms - introduction to computer programming
Upload: baabtracom-mentoring-partner-first-programming-school-in-india
Post on 21-Dec-2014
556 views
DESCRIPTION
TRANSCRIPT
Computer ProgrammingDay 1
- Ijasali Manalody
Relevance of computer Programming
• To automate tasks done by Humans
Hard Work
Difficult to generate reports
Delay in handling bulk
data
Easy to Maintain
Single click for reports
Can handle any amount
of data
What is programming?
• Series of instructions to a computer to accomplish a task;– Same like instructions given to human to
perform a task• Eg : Go straight , Take right etc
• Group of instructions will make a program to perform that particular taskGroup of instructions to make Tea is,
Instruction 1 : Boil WaterInstruction 2 : Put Tea powder
Instruction 3 : Put Sugar
Group of instructions make a program
How to give instructions to computer?
• Instructions must be written in a way the computer can understand
漢鼎 31 繁 81 印篆
?????
Add 31 and 81
????
Language of Computer
• Computer only understands Machine language which is of 0 and 1
• So any instructions to computer must be of Machine Language
Mother Board
How does a Computer program get executed?
Instruction Address11011110 00110000
00010010 00110001
10000000 00001010
01001000 10000001
00001100 10000100
11000001 00101011
01011011 01011001
11101011 11111000
Ram
Loads instruction for execution
Some instruction (eg: ADD 2 + 3)
CPU
Ram
Example
Machine Instruction Machine Operation
0000 0000 Stop
0000 0001 Rotate bristles left
0000 0010 Rotate bristles right
0000 0100 Go back to start of program
• Let us say that an electric toothbrush has a processor and main memory. • The processor can rotate the bristles left and right, and can check the on/off switch
Address
Machine Instructions
0 0000 0001
1 0000 0010
2 0000 0100
3
4
Types of Languages
• Machine level Languages• Machine language programs were made
up of instructions written in binary code. • This is the “native” language of the
computer.
• Assembly Level Languages• Assembly language programs are made
up of instructions written in mnemonics.(Uses convenient alphabetic abbreviations to represent instructions)
• High Level Languages• Use statements that resemble English
phrases combined with mathematical terms needed to express the problem or task being programmed.
“All programs must be translated to Machine language before their instructions can be executed ”
Assembler
• Assembled languages: – Assembler: a program used to
translate Assembly language programs.– Produces one line of binary code per
original program statement.– The entire program is assembled before
the program is sent to the computer for execution.
......clc
add ax,bx mov di,
offset result.....
Assembler
......0101010101010101
......
Compiler– Compiler is a program used to
translate high-level programs into Machine level program.
– It translates the entire program into binary code before anything is sent to the CPU for execution.
......c=a+b ;Print a;
......
Compiler
......0101010101010101
......
Interpreter• Interpreted Languages:– Interpreter: A program used to
translate high-level programs.– Translates one line of the program into
binary code at a time:• An instruction is fetched from the original
source code.• The Interpreter checks the single instruction
for errors. (If an error is found, translation and execution ceases. Otherwise…)• The instruction is translated into binary
code.• The binary coded instruction is executed.• The fetch and execute process repeats for
the entire program.
......c=a+b ;Print a;
......
Interpretor
......0101010101010101
......
Compiler Vs Interpreter• Takes Entire Program as input
• Intermediate object code is generated
• Program need not be compiled every time we run the program
• Errors are displayed after entire program is checked
• Example : C compiler
• Takes Single instruction as input
• No intermediate object code is generated
• Every time we run the program it will be converted to low level program(interpreted)
• Errors are displayed after every instruction interpreted
• Example : BASIC, PHP interpreter
Programming languages Vs Scripting Languages
• Some programming languages (like Java or C++) require the code to be compiled (translated to binary) before it can be started.
• Others (like JavaScript,PHP) are interpreted, meaning that each command is translated separately when the program is started.
How to write a program?
Step 1: Decide what steps are needed to complete the task !
Step 2: Write the steps as Algorithms(written in English) or as a flowchart (graphic symbols)
Step 3: Translate into the programming language
Step 4: Try out the program and “debug” it (fix if necessary)
What is Algorithms?
• List of steps written in English• Like the instructions for a recipe• Must be in the right sequence– Imagine saying “put the tea powder”
and then “take water and boil”
Sample Algorithm
• Task: add two numbers• Algorithm:– Start – Get two numbers– Add them– Print the answer– End
What does a flowchart look like?
• The algorithm from the previous slide would look like this as a flowchart:Start
Get 2 numbers
Add them
Print answer
End
What are those symbols?
• START/END
• INPUT/OUTPUT
• PROCESS
• DECISION
What are those symbols?
• START/END• Used at the beginning and end of
each flowchart.
What are those symbols?
• INPUT/OUTPUT• Shows when information/data
comes into a program or is printed out.
What are those symbols?
• PROCESS• Used to show calculations, storing of
data in variables, and other “processes” that take place within a program.
What are those symbols?
• DECISION• Used to show that the program must
decide whether something (usually a comparison between numbers) is true or false. YES and NO (or T/F) branches are usually shown.
Y
N
X>7?
Another Sample: Calculating Age
• Algorithm:– Start – Get year born– Calculate age– Print age– If age > 50 print OLD– End
Another Sample: Calculating Age
Get yr
Calc age
Print age
Age>50?OLD Y
N
Start
End
Questions?“A good question deserve a
good grade…”
Self Check !!
Self-Check
• A computer program is…
– A series of instructions to accomplish something
–Written in High level language–Written in machine language– All of the above
Self-Check
• A computer program is…
– A series of instructions to accomplish something
–Written in High level language–Written in machine language– All of the above
Self-Check
• To “compile” a program means to…
– Translate it into mnemonics– Translate it into binary code– Executes the program– Run the program instruction
• To “compile” a program means to…
– Translate it into mnemonics– Translate it into binary code– Executes the program– Run the program instruction
Self-Check
Self-Check
• Algorithm is…
– The program as it is written in a programming language
– The results of a program that makes secret codes
– The logic of a program written in English– The logic of a program shown in a chart
• Algorithm is…
– The program as it is written in a programming language
– The results of a program that makes secret codes
– The logic of a program written in English– The logic of a program shown in a chart
Self-Check
Self-Check
• The flowchart symbol to perform a calculation is…
Self-Check
• The flowchart symbol to perform a calculation is…
Self-Check
• The flowchart symbol to perform a Decision is…
• The flowchart symbol to perform a Decision is…
Self-Check
Self-Check
• Look at the flowchart section below. If the variable X is 5, what will print (K or 1st)?
X > 5?YN
Print “1st”Print “K”
Self-Check
• Look at the flowchart section below. If the variable X is 5, what will print (K or 1st)?
X > 5?YN
Print “1st”Print “K”
K will be printed. The answer to the question “Is X greater than 5?” is NO, since X is equal to (not greater than) 5.
Self-Check
• Choose the correct flowchart symbol for each of these statements.
• AGE>65?
• Calc. Tax
• START
• Print NAME
Self-Check
• Choose the correct flowchart symbol for each of these statements.
• AGE>65?
• Calc. Tax
• START
• Print NAME
“End of Day 1”
Check list Day1
• Relevance of Computer programming
• Instructions are loaded into ____• Instructions are executed by
____• Assembly level Language Vs
Machine level language Vs High level language
• Assembler Vs compiler Vs interpreter
Elements of a ProgramDay 2
How does human perform simple task; for Eg: add 456 and 44
Add 456 and 44 500
How does human perform simple task; Eg: add 456 and 44
1 We Hear it through our input senses
2 We store the numbers 456 and 44 in our memory
456
44
456+44 3 We calculate the result in our brain and store it in memory
5003 We say the answer through our output senses
1 Computer use keyboard to receive inputs
2 Computer store the numbers 456 and 44 in Ram
456
44
456+44
3Computer calculate the result in CPU (ALU within CPU) and stores result back in ram
5004 Computer use monitor to display outputs
How does computer perform simple task; Eg: add 456 and 44
Elements of a Program
• During programming we may need to do the following
– Stores Data temporarily
– Control the normal flow of instruction execution
– Repeat one or more instructions several time
– Repeat group of instructions at several parts of program
Elements of a Program
• During programming we may need come across following situations
– Stores Data temporarily - Variables
– Control the normal flow of instruction execution - Decisions
– Repeat one or more instructions several time - Loops
– Repeat particular instructions at several parts of program - Functions
Variables
N Y
Start
i=1
If i<100
Print iStop
Print all the numbers up to 100
i=i+1
N Y
Start
i=1
If i<100
Print iStop
Print all the numbers upto 100
i=i+1
1i
Ram
• Variables are part of almost every program.
• A variable is a “place to put data” and is usually represented by a letter or a word. (Think of a variable as a Tupperware container with a label on it.)
• Variable names cannot contain spaces.
RAM
Variables
A B c
Variables
• The most common way to put information into a variable is to use the equal sign (=). • Eg a=10;
• C = A + 7 means take the value of A, add 7, and put it into C.
• COUNT=COUNT + 2 means take the current value of COUNT, add 2 to it, and make it the new value of COUNT.
Variables
• Sometimes you must specify the type of data that will be placed in a variable.
• Here are some examples of data types:– String (text, “strings of letters”)– Integer (whole numbers)– Float(decimal numbers)– Boolean (true/false)
Variables
• Variables may be classified as global or local.
• A global variable is one that can be shared by all parts of a program, including any functions or sub-programs.
• A local variable is one that is used only within a certain part of the program, for example, only in one function or sub-program.
Decisions
N Y
Start
i=1
If i<100
Print iStop
Print all the numbers up to 100
i=i+1
Decisions
• A program often needs to decide whether something is true or false in order to see which way to continue.
• Programs often use IF (or IF or IF ELSE) statements to show a decision.
Decisions
• An IF statement always has a condition to check, often a comparison between a variable and a number.
• The IF statement also must specify what to do if the condition/comparison is true.
Decisions
• In an IF statement, when the condition is false, the program simply ignores the commands within IF and continues to the next line.
• In an IF ELSE statement, commands are given for both the true and false conditions.
Loops
N Y
Start
i=1
If i<100
Print iStop
Print all the numbers up to 100
i=i+1
Loops
• A loop is a repetition of all or part of the commands in a program.
• A loop often has a counter (a variable) and continues to repeat a specified number of times.
• A loop may also continue until a certain condition is met (e.g., until the end of a file or until a number reaches a set limit)
Functions
Print all the numbers up to 100
N Y
Start
i=1If i<100
Print iStop
i=i+1
Start
STOP
Functions
• In most programming languages, small sub-programs are used to perform some of the tasks.
• These may be called functions, subroutines, handlers, or other such terms.
• Functions often have names (e.g., getName or CALCTAX).
Functions
• A function generally gets information from the main program, performs some task, and returns information back to the program.
• Functions follow the same rules of syntax, etc. as the main program.
Hints for Writing Code
• “Code” means writing the program in the appropriate language
• Be sure the code is exact (spelling, capitals/lower case, punctuation, etc).
• Write part of the code, try it, then write more.
Debugging
• To “debug” means to try a program, then fix any mistakes.
• Virtually no program works the first time you run it. There are just too many places to make errors.
• When you are debugging a program, look for spelling and punctuation errors.
• Fix one error at a time, then try the program again.
Questions?“A good question deserve a
good grade…”
Self Check !!
Self-Check
• A function in a program is…
– Something from trigonometry, like COSINE
– A sub-program, usually performing one task
– A way to check the accuracy of a program (a “function check”)
• A function in a program is…
– Something that stores a value– A sub-program, usually performing one
task– A way to check the accuracy of a
program (a “function check”)
Self-Check
Self-Check
• A variable in a program is…
– A letter or word that represents a place to store data
– A decision made within a program– A small sub-program used to find errors
Self-Check
• A variable in a program is…
– A letter or word that represents a place to store data
– A decision made within a program– A small sub-program used to find errors
• A global variable in a program is…
– Store data Permanently– Store Data that can not be accessed
from functions– Store data than can be accessed from
anywhere in the program
Self-Check
• A global variable in a program is…
– Store data Permanently– Store Data that can not be accessed
from functions– Store data than can be accessed from
anywhere in the program
Self-Check
• A loop is used in a program when…
– One or more instructions repeats at several part of the program
– You want to skip particular instructions– You want to repeat particular
instructions until a condition to satisfy– All of the above
Self-Check
• A loop is used in a program when…
– One or more instructions repeats at several part of the program
– You want to skip particular instructions– You want to repeat particular
instructions until a condition to satisfy– All of the above
Self-Check
“End of Day 2”