Mastering Programming in Python Lesson 1 www.teachingcomputing.com COMING SOON Series Overview • • • • • • • • • • • • • • • Lesson 1: Introduction to the language, SEQUENCE variables, create a Chat bot Lesson 2: Introduction SELECTION (if else statements) Lesson 3: Introducing ITERATION (loops) Lesson 4: Use of Functions/Modular Programming Lesson 5: Introducing Lists /Operations/List comprehension Information/Theory/Discuss Lesson 6: Use of Dictionaries Lesson 7: String Manipulation Lesson 8: File Handling – Reading and writing to CSV Files Task (Code provided) Lesson 9: Importing and Exporting Files Lesson 10: Transversing, Enumeration, Zip Merging Lesson 11: Recursion Challenge (DIY!) Lesson 12: Project 1 Lesson 13 Project 2 Suggested Project/HW Lesson 14: Project 3 Lesson 15: Consolidation of all your skills – useful resources *Please note that each lesson is not bound to a specific time (so it can be taken at your own pace) In this lesson you will … create your very own chat bot in Python! learn about variables, sequence, programs, Alan Turing and Artificial Intelligence Challenge yourself to see if you can extend your code! *For this series we assume students know how to open, save and run a python module. Version: Python 3 Did you know? Guido van Rossum, the creator of Python Guido van Rossum, the guy on the right, created python! He is a Dutch computer programmer and completed his degree in the university of Amsterdam He 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. An 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 Getting started for the absolute beginner Skip this if you have already installed python https://www.python.org/downloads/ We have downloaded Python 3.4.3 You can read more about the difference between Python 2 and 3 on the site. Getting started for the absolute beginner Skip this if you have already installed python Visit the following site to download python. The version we use in these tutorials is: Python 3.4.3 Once you’ve 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“.py” What is a program anyway? The very simplest definition is that: a program is just a sequence of instructions. 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 that’s a more philosophical discussion. DEFINITION: Algorithm = sequence of instructions which performs a meaningful task Each of your cells contains what we call the DNA CODE. Interesting facts about DNA Code 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? The 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 anatomy of a typical program Think about your very own brain: We don’t 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?! You can think of any program or system as being comprised of these three parts: INPUT – PROCESSING - OUTPUT Inputs need to be stored, and that’s what we are looking at in this first lesson. In Computing, we need VARIABLES to store inputs Consider the following example: By simply looking at the screen, your brain has now STORED these two values. 15 47 Number 1 Number 2 But how do we get a programming language to ‘remember’ values? The key word you need to remember is VARIABLE (or identifier) A useful analogy … Variables are like storage boxes that can hold or store values in them. 47 Variable Name: NumberToStore Joe FirstName In programming, we need to DECLARE Variables, also called Identifiers Numbertostore = 47 Firstname = “Joe” Task 1: Creating a Chat Bot using variables 1. Open a Python Module 2. Copy and paste the code on the right into the module 3. Run the program to see what it does 4. See if you can add additional variables to make #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 33 computerfavnumber=33 #We now declare a variable but set the variable to hold whatever the *user* inputs into the program favnumber=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) 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? Artificial Intelligence and the Turing Test The 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. 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? A picture of the young Alan Turing Recent Developments in AI You may find Wikipedia’s timeline of AI interesting reading (see link below) Google’s artificial intelligence (AI) software has been developed to the point that it is ready to go head to head with the world’s highest ranked GO player. https://en.wikipedia.org/wiki/Timeline_of_artificial_intelligence This is seen as a pivotal moment for AI, similar to IBM’s DEEP BLUE beating Gary Kasparov at chess! Challenge: Extend the code and get someone to try out your program! Here are some suggestions, but get creative and implement your own ideas! 1. Get the computer to ask the user what his/her favourite movie is and then respond 2. Declare a few other integer variables and carry out an addition! 3. Ask the user for their height in feet and inches and convert it into metres. 4. 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 33 computerfavnumber=33 #We now declare a variable but set the variable to hold whatever the *user* inputs into the program favnumber=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) More on data types/variables in Python Python has five standard data types (that can be declared) Python has four standard data types (that can be declared) NUMBERS STRING LIST TUPLE DICTIONARY INT (signed integers) LONG (long integers also represented in hex or octal) FLOAT (floating point real numbers) COMPLEX (complex numbers) In this lesson you can primarily focus on declaring numbers and strings. Counter = 100 ‘An integer assignment Pounds = 124.5 ‘A floating point Name = “Joe Bloggs” ‘ A string Here are some examples of numbers Int 10 long 51924361 float 0.0 complex 3.14 Useful Videos to watch on covered topics Exploring Artificial Intelligence today https://youtu.be/poLZqn2_dv4 Recommended video on Python Variables https://youtu.be/667ZeuZ0Q8M Suggested Project / HW / Research Create a research information point on Alan Turing. Basic facts about him Achievements Turing Test His 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 Numbers Text Images Sound/Video Useful links and additional reading http://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