PYTHON PROGRAMMING: I. INTRODUCTION Engr. Ranel O. Padon
ABOUT ME My Programming Love Story BS Geodetic Engineering (Undergraduate Course): C UP ITDC (Special Training Courses): PHP & MySQL, Java MS Computer Science (Graduate Course): C, Perl, Java DGE Projects: MAPD (Java), GeoValuation (Python) Freelance Project: Lead Web Developer q  LGIS -> http://www.iesmanila.com/lgis (Drupal) Corporate Work: Senior Software Engineer at Kite Systems, Ltd. q  CNN Travel -> http://travel.cnn.com (formerly in Drupal) q  CNN Arabic -> http://arabic.cnn.com (Drupal)
PYTHON PROGRAMMING TOPICS I •  Introduction to Python Programming II •  Python Basics III •  Controlling the Program Flow IV •  Program Components: Functions, Classes, Modules, and Packages V •  Sequences (List and Tuples), and Dictionaries VI •  Object-Based Programming: Classes and Objects VII •  Customizing Classes and Operator Overloading VIII •  Object-Oriented Programming: Inheritance and Polymorphism IX •  Randomization Algorithms X •  Exception Handling and Assertions XI •  String Manipulation and Regular Expressions XII •  File Handling and Processing XIII •  GUI Programming Using Tkinter
WHAT IS A COMPUTER?
COMPUTER | EVOLUTION
COMPUTER | HARDWARE
COMPUTER | LOGICAL STRUCTURE
COMPUTER | TRANSISTORS q  transistor is the basic computing unit of a computer
COMPUTER | TRANSISTORS q  a transistor has 2 (binary) states: on and off q  1 bit is represented by 1 transistor q  8 bits (1 byte) are represented by 8 transistors
COMPUTER | TRANSISTORS q  thousands/millions of tiny transistors are then embedded in microchips/integrated circuits (along with resistors and capacitors)
COMPUTER | NATIVE TONGUE because of transistors, computer uses the binary system/language
LANGUAGE TRANSLATION Low-Level Language: Assembly Language
LANGUAGE TRANSLATION Computer Languages’ Levels/Hierarchy
LANGUAGE TRANSLATION High-Level Languages: Compilation vs Interpretation Structure and Speed
LANGUAGE TRANSLATION Compilation vs Interpretation Structure and Speed
LANGUAGE TRANSLATION
LANGUAGE TRANSLATION
LANGUAGE TRANSLATION Modern/Hybrid Languages
LANGUAGE TRANSLATION
COMPUTER PROGRAMMING The process of designing, writing, testing, debugging, and maintaining the source code of computer programs. 
 
 This source code is written in one or more programming languages (such as Java, C++, C#, Python, etc.)
COMPUTER PROGRAMMING The purpose is to create a set of instructions that computers use to perform specific operations or to exhibit desired behaviors. 
 
 Requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms and formal logic.
COMPUTER PROGRAMMING Application programmers write programs to handle a specific job, such as a program to track inventory within an organization. 
 
 They also may revise existing packaged software or customize generic applications which are frequently purchased from independent software vendors.
COMPUTER PROGRAMMING Systems programmers write programs to maintain and control computer systems software, such as operating systems and database management systems. 
 
 These workers make changes in the instructions that determine how the network, workstations, and CPU of the system handle the various jobs they have been given and how they communicate with peripheral equipment such as printers and disk drives.
Systems programmers write programs to maintain and control computer systems software, such as operating systems and database management systems. 
 
 These workers make changes in the instructions that determine how the network, workstations, and CPU of the system handle the various jobs they have been given and how they communicate with peripheral equipment such as printers and disk drives. PROGRAMMING LANGUAGES
PROGRAMMING LANGUAGES Systems programmers write programs to maintain and control computer systems software, such as operating systems and database management systems. 
 
 These workers make changes in the instructions that determine how the network, workstations, and CPU of the system handle the various jobs they have been given and how they communicate with peripheral equipment such as printers and disk drives.
PROGRAMMING LANGUAGES
Programming languages used in most famous websites PROGRAMMING LANGUAGES
Systems programmers write programs to maintain and control computer systems software, such as operating systems and database management systems. 
 
 These workers make changes in the instructions that determine how the network, workstations, and CPU of the system handle the various jobs they have been given and how they communicate with peripheral equipment such as printers and disk drives. PROGRAMMING LANGUAGES: INFLUENCE
q  Basic Programmers q  Computer Software Engineers q  Web designers and Developers q  Computer System Analyst q  Freelancing Consultant q  . . . JOB OPPORTUNITIES
PYTHON
PYTHON
Guido Van Rossum (The Creator) PYTHON: THE MAN
PYTHON | GENEALOGY
PYTHON | TIMELINE
PYTHON http://trends.builtwith.com/framework/Python
PYTHON http://trends.builtwith.com/framework/Python
PYTHON http://trends.builtwith.com/framework/Python
https://www.ohloh.net/p/python/estimated_cost PYTHON
PYTHON
PYTHON
PYTHON
PYTHON
PYTHON
PYTHON
PYTHON
PYTHON Top 10 Popular Languages
PYTHON Python is simple & accessible. q Good compromise language q Easy to learn q Widely-used q Flexible
PYTHON easy to learn
PYTHON widely-used in the Industry (Dropbox uses Python!)
PYTHON used by the Government
PYTHON works with C/C++
PYTHON works with Java and C#
PYTHON ... is Flexible
 q  Scripting q  Procedural Programming q  Object-Oriented Programming q  Functional Programming
PYTHON Common Python Application Domains
PYTHON Python: Handy, Powerful & Versatile
PYTHON Read & Practice. To be an expert at something, you need 10,000 hours!
PYTHON But study smarter, not harder. And in order to be productive at something, you just need the right 20% of the total information.
PYTHON Find the essentials/most important building blocks
PYTHON Be an efficient and effective learner.
PYTHON | END NOTES q  Python is readable, maintainable, beautiful, and elegant. q  There are many reusable Python libraries out there. q  Not all things are important: q  you don’t have to study all the intricacies of a programming language to be productive.
 q  EQ is very important in programming in general: q  patience/persistence (never say die attitude) q  attention to details (spotting anomalies to the lowest level) q  belief/positive thinking (having confidence and an upbeat attitude) q  resourcefulness/creativity (combining basic language constructs) q  determination (especially when debugging)
REFERENCES q  Deitel, Deitel, Liperi, & Wiedermann - Python: How to Program (2001). q  Disclaimer: Most of the images/information used here have no proper source citation, and I do not claim ownership of these either. I don’t want to reinvent the wheel, and I just want to reuse and reintegrate materials that I think are useful or cool, then present them in another light, form, or perspective. Moreover, the images/information here are mainly used for illustration/educational purposes only, in the spirit of openness of data, spreading light, and empowering people with knowledge. J

Python Programming - I. Introduction