Programming Languages. Objectives Understand how programming has evolved Be able to write simple...

download Programming Languages. Objectives Understand how programming has evolved Be able to write simple programs using a text based programming language.

If you can't read please download the document

Transcript of Programming Languages. Objectives Understand how programming has evolved Be able to write simple...

  • Slide 1
  • Programming Languages
  • Slide 2
  • Objectives Understand how programming has evolved Be able to write simple programs using a text based programming language
  • Slide 3
  • History Timeline
  • Slide 4
  • Machine languages Assembly languages Higher-level languages To build programs, people use languages that are similar to human language. The results are translated into machine code, which computers understand. Programming languages fall into three broad categories: The Evolution of Programming Languages
  • Slide 5
  • Machine languages (first-generation languages) are the most basic type of computer languages, consisting of strings of numbers the computer's hardware can use. Different types of hardware use different machine code. For example, IBM computers use different machine language than Apple computers. The Evolution of Programming Languages - Machine Languages
  • Slide 6
  • Assembly languages (second-generation languages) are only a bit easier to work with than machine languages. They use English-like phrases to represent strings of numbers. The code is then translated into object code, using a translator called an assembler. They are quite difficult for people to understand The Evolution of Programming Languages - Assembly Languages
  • Slide 7
  • Assembler Assembly code Object code
  • Slide 8
  • Third-generation languages Fourth-generation languages Fifth-generation languages Higher-level languages are more powerful than assembly language The instructions the programmer uses to write them are more like English so are easier to understand Higher-level programming languages are divided into three "generations," each more powerful than the last: The Evolution of Programming Languages - Higher-Level Languages
  • Slide 9
  • FORTANC COBOLC++ BASICJava PascalActiveX The following languages are 3GLs: Higher-Level Languages - Third-Generation Languages
  • Slide 10
  • Visual Basic (VB) VisualAge Authoring environments 4GLs may use a text-based environment (like a 3GL) or may allow the programmer to work in a visual environment, using graphical tools. The following languages are 4GLs: Higher-Level Languages - Fourth-Generation Languages
  • Slide 11
  • Using Python Learn to Program
  • Slide 12
  • Lets start to program Open the Python IDLE. What does it look like?
  • Slide 13
  • Python IDLE
  • Slide 14
  • The command prompt
  • Slide 15 >> print("Hello World") What happens?">
  • Write your first program >>> print("Hello World") What happens?
  • Slide 16
  • Did you get this?
  • Slide 17
  • What happens if you type this? >>> print(Hello World)
  • Slide 18
  • Oh dear - something is wrong
  • Slide 19
  • Syntax errors Computers follow instructions EXACTLY! Computers are not good at dealing with nearly, almost, not quite. Syntax describes the rules that must be used when commands are written.
  • Slide 20
  • Different colours are used for different elements to help you. Colours
  • Slide 21 >> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)"> >> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)"> >> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)" title="predict what will happen. >>> print "Hello World" >>> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)">
  • predict what will happen. >>> print "Hello World" >>> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)
  • Slide 22 >> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)"> >> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)"> >> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)" title="find out what happens >>> print "Hello World" >>> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)">
  • find out what happens >>> print "Hello World" >>> print ("Hello World"); >>> Print ("Hello World") >>> print ("Hel World") >>> prin (Hello World)
  • Slide 23
  • Slide 24
  • Debugging Now you know how to spot some errors. This is called DEBUGGING This is really important because you need to know how to correct your mistakes.
  • Slide 25
  • Create, save and test a program In IDLE click on File and New Window This is the Edit mode - there is no command prompt
  • Slide 26
  • Interactive mode and file editor Think of shopping If you are in the interactive mode (IDLE) if you said buy milk it would do it straight away, then buy eggs etc If you are in the editor it is like making a list of items to buy which will only work when you say run shopping list
  • Slide 27
  • Using the editor Save the program in your python folder as my_name Then press the f5 key to run the program
  • Slide 28
  • What other programs can you write? Add more questions into your my_name program by copying the first lines of code, pasting them and changing the question text.
  • Slide 29
  • Using a variable You are now going to use your name variable. Make the program print out the value that the user has saved in name. print (hello) name = input(What is your name? ) print (hello + name) When you use = it means make it become When you use + in print + it means print both these things
  • Slide 30
  • print (hello ) name = input(What is your name?) print (hello + name)
  • Slide 31
  • Errors and Debugging print (*hello* ) name = input(What is your name?) print (hello + name) Why does it say Syntax Error on line 1? python dumbchatterbox.py Syntax Error on Line 1
  • Slide 32
  • Errors and Debugging print (hello ) name = input(What is your name?) pirnt (hello + name) Why does it say Syntax Error on line 3? python dumbchatterbox.py Syntax Error on Line 3
  • Slide 33
  • Try it out! Can you remember how to save a program file? Which character is not allowed to be used in program file names? Dont forget to include the.py at the end of the filename! Can you remember how to run a program you have created? Run your program!
  • Slide 34
  • Whats wrong? answer = input (Hello would you like to hear a joke?) PRINT (you said + ANSWER) print (Here is the joke ) answer = input (Why did the chicken cross the road?) print (you said + answer) print (To get to the other side! ) python jokebox.py Error on Line 1 Error on Line 2 Error on Line 5
  • Slide 35
  • NEXT STAGE
  • Slide 36
  • Build an artificial intelligence program
  • Slide 37
  • Edit the program, save as questions
  • Slide 38
  • Can you add a summary? Can you create some script at the end of the program that might look something like this.? So James, it was lovely to meet you. I know that you live in Newport and that your favourite food is pizza
  • Slide 39
  • Research task What is the difference between a variable and a string? Can you identify these in the programs you have written?
  • Slide 40
  • Variables items that can change Variable examples: my_name = input () favourite_food = input () my_age = input () my_school = input ()
  • Slide 41
  • Strings a sequence of characters String examples: Hello world What is your name What is your favourite food It is good fun talking to chatbots
  • Slide 42
  • Using the Python interpreter as a calculator Go back to the IDLE screen What is 156 add 567? What is 132 subtract 46? What is 256 divided by 8? What is 389 multiplied by 13? Can you work out what mathematical symbols need to be used?
  • Slide 43
  • What works? Both of these work
  • Slide 44
  • The answers use brackets!
  • Slide 45
  • Integers In computing, whole numbers (without decimals) are referred to as integers, this means that while 4.0 is not considered an integer, 4 is. It is possible to store integers in variables.
  • Slide 46
  • Integers stored in variables
  • Slide 47
  • IF, Else OR
  • Slide 48
  • Who Are You? print (hello, what is your name) name = input() if name == (Mr Richards): print (you are ok) print (carry on) else : print (exterminate!!!) print (hello, what is your name) name = input() if name == (Mr Richards): print (you are ok) print (carry on) else : print (exterminate!!!) What will this computer program do? Why do we use one equals sign (name = raw_input) and two equals signs (if name == Mr Richards )? What will this computer program do? Why do we use one equals sign (name = raw_input) and two equals signs (if name == Mr Richards )?
  • Slide 49
  • Why does this program cause an error? What does the : symbol do? Why does this program cause an error? What does the : symbol do? Whats wrong? print ("hello, what is your name) name = input() if name = (Mr Richards): print ("you are ok) Else : print (" exterminate!!!) print ("hello, what is your name) name = input() if name = (Mr Richards): print ("you are ok) Else : print (" exterminate!!!) python WhoAreYou.py Error Line 3 SyntaxError: invalid syntax Error Line 5 SyntaxError: invalid syntax
  • Slide 50
  • Whats wrong? print (hello, what is your name) name = input() if name == (Mr Richards): print (you are ok) else : print (exterminate!!!) print (hello, what is your name) name = input() if name == (Mr Richards): print (you are ok) else : print (exterminate!!!) python WhoAreYou.py Error Line 4 IndentationError: expected an indented block Error Line 6 IndentationError: expected an indented block Why does this program cause an error? What does INDENTATION do? Why does this program cause an error? What does INDENTATION do?
  • Slide 51
  • Whats wrong? print (hello, what is your name) name = input() if answer == (Mr Richards) print (you are ok) print (carry on) else : print (exterminate!!!) print (hello, what is your name) name = input() if answer == (Mr Richards) print (you are ok) print (carry on) else : print (exterminate!!!) python WhoAreYou.py Error Line 3 Syntax error Why does this program cause an error? What is the difference between = and ==? Why does this program cause an error? What is the difference between = and ==?
  • Slide 52
  • Lots of decisions? meal = input("What did you eat for breakfast?") if meal == (nothing): print (That's not good, breakfast is important.) elif meal == ("energy drink): print ("That's not good. They are bad for you.) elif meal == ("cereal): print (Now that's a good breakfast!) else : print (Sorry, I don't know what that is.) print (Thank you for taking part.) meal = input("What did you eat for breakfast?") if meal == (nothing): print (That's not good, breakfast is important.) elif meal == ("energy drink): print ("That's not good. They are bad for you.) elif meal == ("cereal): print (Now that's a good breakfast!) else : print (Sorry, I don't know what that is.) print (Thank you for taking part.) Use elif (else if) Like this Use elif (else if) Like this
  • Slide 53
  • CHALLENGE Make a Smart Chatterbox chat program that uses Print () Variables raw_input () if . : elif . : else: Make a Smart Chatterbox chat program that uses Print () Variables raw_input () if . : elif . : else: The Turing test is a test of a machine's ability to exhibit intelligent behaviour, equivalent to or indistinguishable from, that of an actual human. Has any computer ever passed the Turing Test? No. The Loebner Prize awards $5,000 annually for the chatbot which is "most indistinguishable from a human." There is still $100,000 reserved from Dr. Loebner for the first chatbot to actually pass the Turing test. Has any computer ever passed the Turing Test? No. The Loebner Prize awards $5,000 annually for the chatbot which is "most indistinguishable from a human." There is still $100,000 reserved from Dr. Loebner for the first chatbot to actually pass the Turing test.
  • Slide 54
  • Comments Comments can be used to make a program easier to understand when someone reads it. A # tells the computer that what follows is a comment The computer ignores the comments
  • Slide 55
  • ################ # Now add comments to all of your lines of code
  • Slide 56
  • Maths Challenge Make a maths_questions program that uses Print () Variables raw_input () if . : else: The program should ask a maths question get and answer and print a suitable message for both the correct and wrong responses Make a maths_questions program that uses Print () Variables raw_input () if . : else: The program should ask a maths question get and answer and print a suitable message for both the correct and wrong responses
  • Slide 57
  • Here is the code: save as maths_questions
  • Slide 58
  • Add more questions to your game Can you add 5 more maths questions to your game questions?
  • Slide 59
  • 12 times table Create a test that will check the users knowledge of the 12 times multiplication table. The test should have between 4 and 12 questions. Save the file as 12_times_table It must include a header (description, your name and date) You must make use of comments (#)
  • Slide 60
  • Can you answer this question? Answer = int(answer) Thinking back to the use of integers in the last lesson, what does this do and what does int mean?
  • Slide 61
  • Answer = int(answer) This converts the text string into a number or integer. If it was not converted to an integer, it could not be compared to another integer, the answer 4.
  • Slide 62
  • Can you answer this question? if answer ==4: What this mean?
  • Slide 63
  • if answer ==4: Carry out the instruction if the answer is 4 == means equal to, as in is it equal to?
  • Slide 64
  • Can you answer this question? What does else mean
  • Slide 65
  • else Carry out the instruction if none of the previous if conditions were true
  • Slide 66
  • Can you answer this question? Why are the indents necessary after the if and else statements?
  • Slide 67
  • Indents This means follow the these instructions if the statement above is true.
  • Slide 68
  • Can you answer this question? What happens if the colons are not there after the 4 or else?
  • Slide 69
  • Colons You get a syntax error
  • Slide 70
  • Final Challenge Invent your own game
  • Slide 71
  • Start with a blank file, create your own number game using Python. Add appropriate comments to your game including a header with your name, title and instructions on how to play the game. Add line comments to explain parts of the code. You should include at least 5 questions. Decide what the actual questions are about and the level of difficulty.
  • Slide 72
  • Examples How many seconds are there in 1 hour? How many days are there in a leap year? If a triangle has 2 angles of 45 degrees, what will the remaining angle be? If a = 2b 5 and b = 6, what is a? What is the minimum legal age to vote in the UK? What is 10010001 converted to denary?
  • Slide 73
  • Success criteria Create a game that works and save it Use enough comments to explain how the game works Add a scoring feature to the game Ask the user some questions at the beginning of the game Add a function to report the score at the end of each question Include responsive feedback at the end of the game Include comments to describe what the code does Include a larger set of questions increasing with difficulty Allow the user to try again on a wrong answer, but award a reduced score for a second attempt Give the user feedback midway through the game as encouragement Add some comments explaining how they could add extra features to the game.
  • Slide 74
  • Random selection Whose game shall we look at? Lets look at it together. In pairs, swap over and mark each others work using the criteria. Improve your work based on the feedback you have been given
  • Slide 75
  • http://docs.python.org/2/tutorial/ http://sandbox.mc.edu/~bennet/python/code/index.html http://norvig.com/sudoku.html http://python.net/~goodger/projects/pycon/2007/idiomatic /handout.html http://python.net/~goodger/projects/pycon/2007/idiomatic /handout.html Want to learn more? Some useful sites