mastering python lesson1

34
www.teachingcomputing.com astering Programming in Python 100s of other resources are available from Lesson 1

Upload: ruth-marvin

Post on 05-Apr-2017

13.332 views

Category:

Education


1 download

TRANSCRIPT

Mastering Loops

www.teachingcomputing.comMastering Programming in Python 100s of other resources are available from Lesson 1

Associated Resource: Python GUI Programming: See www.teachingcomputing.com (resources overview) for more information

1

Introduction to the language, SEQUENCE variables, create a Chat botIntroduction SELECTION (if else statements)Introducing ITERATION (While loops)Introducing For LoopsUse of Functions/Modular ProgrammingIntroducing Lists /Operations/List comprehensionUse of DictionariesString ManipulationFile Handling Reading and writing to CSV FilesImporting and Exporting FilesTransversing, Enumeration, Zip MergingRecursionPractical ProgrammingConsolidation of all your skills useful resourcesIncludes Computer Science theory and Exciting themes for everylesson including: Quantum Computing, History of Computing, Future of storage, Brain Processing, and more Series Overview*Please note that each lesson is not bound to a specific time (so it can be taken at your own pace)

Information/Theory/DiscussTask (Code provided)Challenge (DIY!)

Suggested Project/HW

Associated Resource: Python GUI Programming: See www.teachingcomputing.com (resources overview) for more information2

In this lesson you will

First things first, BE INSPIRED! ..and get some perspective!Learn about the language: PythonHow to download Python 3 (and Pygame)create your very own chat bot in Python!learn about variables, sequence, programs, Alan Turing and Artificial IntelligenceBig Ideas: DNA Coding and Intelligent DesignChallenge yourself to see if you can extend your code!Random number and item generationSuggested videos: History of ComputingLearn about mathematical and comparison operatorsLearn about the importance of Indentation in Python

*For this series we assume students know how to open, save and run a python module. Version: Python 3

Image source: http://www.peardeck.com

3

First things first Be inspired!Before you start you need to be inspired by the wonderful world of Computer Science and know that learning how to program is going to be an amazing journey!You need to pay attention, persevere, and practice. Soon youll be good enough to create your own apps, games and who knows what else! The potential in this field is HUGE! Technology and software is crucial to our every day lives. You can help people, solve problems in small or big ways, and yes there is also a lot of money to be made!INFORMATION IS POWER! .and learning how to code is going to give you power.How will you use it? Be inspired and you will really enjoy TeachingYourselfPython!

A big percentage of the worlds millionaires and billionaires were computer scientists.

So much to think about! What will the future look like?

Image(s) source: itechfuture.com

4

Any ideas how these two pictures are connected?John Von Neumann was an amazing man (left). He was a child prodigy and legend has it he made his secondary school maths teacher weep at his sheer genius even at that young age! Here he is with one of the worlds first computers it was called the MANIAC.

?

Image(s) source: Wikipedia.com5

The Maniac and the Hydrogen bomb!The Maniac was the computer that was used to perform the calculations that led to the creation of the atomic bomb. The devastation that followed is something you would have read all about .So . information is POWER but how we use that power is what is really important! Quantum Computing is another emerging field that has great potential but also very great security risks. Well come to that in a later lesson.

>

Image(s) source: manhattanprojectvoices.org 6

Computer Science has also changed the world for good!In small and big ways, computer science is continually providing opportunities to do good, solve problems and change the world. Every field imaginable is now reliant on Computer Science. Lots to think about! Once youre a competent computer programmer, what will you use your skills to do?

Millions of apps are used to help people. Think of the simple bus finder app. A simple but wonderful creation!Computer Science has revolutionised the way the health service works. Advances in all areas of medicine are rapidly moving ahead thanks to clever software. Dating sites and apps have helped millions find love online! Without the internet they may have never found each other! Sophisticated Computer Software helps keep us safe. Heres a chap sitting at some air traffic control screens. Video conferencing for business or just skyping your grandma communication has been hugely advanced thanks to applications like SKYPE.

Image(s) source: manhattanprojectvoices.org, Wikipedia.com, 7

Getting started for the absolute beginnerSkip this if you have already installed pythonhttps://www.python.org/downloads/We have downloaded Python 3.4.3You can read more about the difference between Python 2 and 3 on the site.

8

Getting started for the absolute beginnerVisit the following site to download python. The version we use in these tutorials is:

Python 3.4.3

Once youve followed the instructions and have python on your computer, create a short cut on your desktop (if possible). Open the IDLE SHELL and create a new file (module) see screenshot on the right. You are ready to start programming in python,Remember to save all files with the ending.pySkip this if you have already installed python

9

Did you know?Guido van Rossum, the guy on the right, created python! He is a Dutch computer programmer and completed his degree in the university of AmsterdamHe was employed by Google from 2005 until December 2012, where much of his time was spent developing the Python language. In 2013, Van Rossum started working for Dropbox.Python is intended to be a highly readable language. It has a relatively uncluttered visual layout, frequently using English keywords where other languages use punctuation.

Guido van Rossum, the creator of PythonAn important goal of the Python developers is making Python fun to use. This is reflected in the origin of the name which comes from Monty Python

Image(s) source: Wikipedia

10

Want to create your own games?You may also want to download Pygame. Pygame is basically a library of commands that will help writing games be much easier.Run the Python installer downloaded from:ProgramArcadeGames.com/python-3.4.3.msihttp://programarcadegames.com/python-3.4.3.msi

Run the Pygame installer downloaded from:http://programarcadegames.com/pygame-1.9.2a0.win32-py3.4.msi

Well be using Pygame at a later stage. (its useful to make sure you have downloaded the correct versions. Remember we are working with Python 3)11

What is a program anyway?Many algorithms (in our brain) are inbuilt

We eat, drink, speak, respond and appear to have been pre-programmed to do so. There is Free will too, but thats a more philosophical discussion.

DEFINITION: Algorithm = sequence of instructions which performs a meaningful taskThe very simplest definition is that: a program is just a sequence of instructions.

Each of your cells contains what we call the DNA CODE.

Image(s) source: Dreamstime.com (royalty free images)

12

Interesting facts about DNA CodeThe letters of the genetic alphabet A, T, G, and C are meaningless on their own, but they are combined into useful instructions in genes. The DNA code in your cells is like a library of instructions. It is probably the most complex code we have ever come across. Is a programmer behind it?

Image(s) source: Dreamstime.com (royalty free images)

13

The anatomy of a typical programYou can think of any program or system as being comprised of these three parts:Think about your very own brain: We dont often realize it but our brains are pretty awesome. The brain is storing values and processing data (as well as producing outputs) all the time. Ever wondered how a lump of flesh (your brain) stores data?!INPUT PROCESSING - OUTPUTInputs need to be stored, and thats what we are looking at in this first lesson. In Computing, we need VARIABLES to store inputs

Image(s) source: 123rf.com14

1547Number 1Number 2Consider the following example: By simply looking at the screen, your brain has now STORED these two values. But how do we get a programming language to remember values?The key word you need to remember is VARIABLE (or identifier)

Variable Name: NumberToStoreFirstName47JoeA useful analogy Variables are like storage boxes that can hold or store values in them. In programming, we need to DECLARE Variables, also called Identifiers Numbertostore = 47Firstname = Joe

Task 1: Creating a Chat Bot using variablesOpen a Python Module

Copy and paste the code on the right into the module >>

Run the program to see what it doesSee if you can add additional variables to make it do more!

#This is a chatbot and this is a comment, not executed by the program#Extend it to make the computer ask for your favourite movie and respond accordingly!

print('Hello this is your computer...what is your favourite number?')#Declaring our first variable below called 'computerfavnumber' and storing the value 33computerfavnumber=33#We now declare a variable but set the variable to hold whatever the *user* inputs into the programfavnumber=input()print(favnumber + '...is a very nice number indeed. So...what is your name?')name=input()print('what a lovely name: ' + name + '...now, I will reveal what my favourite number is:')print (computerfavnumber)

Copy and paste the code below

17

Online chat bots you can check out!

http://www.mitsuku.com/http://chatwithigod.com/

Try chatting with these bots. Can you tell you are not talking to a real person. How do you know? How could the program be improved?

18

Artificial Intelligence and the Turing TestThe Turing test is a test, developed by Alan Turing in 1950, of a machine's ability to exhibit intelligent behaviour equivalent to, or indistinguishable from, that of a human.

A picture of the young Alan Turing

If you were chatting with a computer would you be able to tell the difference between it and a real human being?

How?

What makes us different?Will computers ever truly think?

Image(s) and information source: Wikipedia

19

Recent Developments in AIhttps://en.wikipedia.org/wiki/Timeline_of_artificial_intelligenceYou may find Wikipedias timeline of AI interesting reading (see link below)Googles artificial intelligence (AI) software has been developed to the point that it is ready to go head to head with the worlds highest ranked GO player.

This is seen as a pivotal moment for AI, similar to IBMs DEEP BLUE beating Gary Kasparov at chess!

Source: taken from BBC news article that can be read here: http://www.bbc.co.uk/news/35501537

20

Random Generation of stuff in PythonRandom numbers are used A LOT in Computer science. Especially in gaming!There is no such thing as a truly random number ...or thats what experts say any way. But Python allows you to generate random stuff by importing a code library that does this for you! The examples above generate random numbers and random items from a list.*see if you can incorporate something random into your Chabot

RANDOM OUTPUT

21

Challenge: Extend the code and get someone to try out your program!Some suggestions but get creative with your own ideas!Get the computer to ask the user what his/her favourite movie is and then respondDeclare a few other integer variables and carry out an addition!Ask the user to think of a colour in their head. Get the computer to randomly generate a colour from a list.What else will you do!?#This is a chatbot and this is a comment, not executed by the program#Extend it to make the computer ask for your favourite movie and respond accordingly!print('Hello this is your computer...what is your favourite number?')#Declaring our first variable below called 'computerfavnumber' and storing the value 33computerfavnumber=33#We now declare a variable but set the variable to hold whatever the *user* inputs into the programfavnumber=input()print(favnumber + '...is a very nice number indeed. So...what is your name?')name=input()print('what a lovely name: ' + name + '...now, I will reveal what my favourite number is:')print (computerfavnumber)Copy and paste the code below

22

More on data types/variables in PythonPython has five standard data types (that can be declared)

NUMBERSSTRINGLISTTUPLEDICTIONARY

In this lesson you can primarily focus on declaring numbers and strings.

Counter = 100 An integer assignmentPounds = 124.5 A floating pointName = Joe Bloggs A string Here are some examples of numbers

Intlong floatcomplex1051924361 0.03.14

Python has four standard data types (that can be declared)

INT (signed integers)LONG (long integers also represented in hex or octal)FLOAT (floating point real numbers)COMPLEX (complex numbers)

23

It is helpful to know some of the handy things you can do with Strings. Just google Python 3 documentation and check out the official tutorial. In a nutshell however, you can:

Print strings to new linesconcatenate strings (stick them together!)access individual characters in stringsSlicing: obtaining substrings from stringsFinding the length of a stringGo to https://docs.python.org/3.4/tutorial/introduction.html#strings to try more examples yourself!

Things you can do with strings. Watch this demo video

https://docs.python.org/3.4/tutorial/introduction.html#strings

OperatorOperationExamplesCodeList of common mathematical operators???????Can you fill in the blanks?

OperatorMeaningList of common comparison operators??????Can you fill in the blanks?

The following code which asks you how many weeks pregnant you are, and calculates how many months that translates into, doesnt work. Any idea why? Defining input correctly whats wrong?

27

We need to tell the computer that we are working with numbers. You can do that by specifying that the input is either a FLOAT float() or a plain old INTEGER int()Defining input correctly the solution!

Image Source: lifewithjustin.wordpress.com28

if password == moose: print("If password is moose, this will print.") print(This will print too") print("And this.") print(this will confuse the computer)print("This will always print because it is not indented.")In Python you can have blocks of code grouped together. You know when one block begins and ends by checking out the indentation of the lines of code. In Python, INDENTATION matters!

There are some simple rules for blocks (indentation)When the indentation increases this indicates the BEGINNING of a blockBlocks can contain other blocks!When the indentation decreases to a zero, blocks end!Note the examples below:

Block 1 = Line 4Block 2 = Line 6Block 3 = Line 8

29

Useful Videos to watch on covered topicshttps://youtu.be/poLZqn2_dv4

https://youtu.be/667ZeuZ0Q8MExploring Artificial Intelligence todayRecommended video on Python Variables

30

An entertaining history of ComputingTriumph of the Nerds Part 1/2/3Triumph of the Nerds Part 1Triumph of the Nerds Part 2Triumph of the Nerds Part 3

31

What next? Be inspired to learn!The field of Computing and Computer Science is at the forefront of everything that is happening today.Just think about it where would we be without computers and software?And whats more, things are moving FAST! The advances in technology are stunning. And the capacity to make money, innovate and most of all help people, is HUGE!And whats more, things are moving FAST! The advances in technology are stunning. And the capacity to make money, innovate and most of all help people, is HUGE!YOU can start here! By learning how to program! And reading around the subject and taking an interest in past, current and future developments

32

Suggested Project / HW / ResearchCreate a research information point on Alan Turing. Basic facts about himAchievementsTuring TestHis involvement in code breaking at Bletchley park

High level languages use variables as memory locations but how does a computer, at its very lowest level (Binary 1s and 0s) store information? Write a short essay, based on your research, to explain how computers store NumbersTextImagesSound/Video

Image(s) source: Wikipedia

33

Useful links and additional readinghttp://www.python-course.eu/variables.php

http://www.programiz.com/python-programming/variables-datatypes

http://www.tutorialspoint.com/python/python_variable_types.htm

https://en.wikibooks.org/wiki/Python_Programming/Variables_and_Strings

Image(s) source: Wikipedia

34