Python Programming Fundamentals
Understanding the How and Why behind Python's core language mechanisms
Python became the de facto standard language for DevOps automation and Data Science data exploration tools, not to mention its pervasive presence in the Web and in server side programming.
It is known as the Swiss-army knife of programming languages, been applied everywhere from micro-controllers to program robots, to large parallel data crunching pipelines. Python’s versatility has placed it amongst the top 5 most popular programming languages according to GitHub and Tiobe Index.
This training course will introduce you to the core language mechanisms that make Python such a powerful and versatile language. We will provide a deep understanding of the programming mechanisms available and its modern idioms. This course is highly interactive and students will be engaging because they are active all the time, and testing their knowledge at every line.
What you'll learn-and how you can apply it
By the end of this live, online course, you’ll learn:
- The essentials of programming in Python using the interactive interpreter (REPL);
- Core language concepts, syntax, and native data types;
- Python's multi-modality (structured, object-oriented and functional programming models).
And you’ll be able to:
- Understand the most modern abstractions such as decorators, list comprehensions, generators expressions, and descriptors; knowing when to use them and why.
This training course is for you because...
- You're a programmer
- You're a tech manager
- You're a data scientist
- You have never been exposed to the Python programming language, or have had little exposure and wish to obtain a deeper understanding of the core language
- Working knowledge of a general purpose programming language, including principles such as object orientation and functional programming.
- We will explore the foundations and nuances of the Python language through live-coding at the Python interactive REPL during the whole course, providing insight to practical applications and common idioms.
- Students are advised to follow the course by replicating the material during the course and exploring on their own in parallel to explanations, so any doubts raised can be addressed on the fly by the instructor.
- In order to do that, we recommend that students should install the Python interpreter version 3.6.x or higher from https://www.python.org/downloads/ (all major platforms are supported: Windows, Mac OSX and Linux ).
- Students are advised to install Jupyter Notebook. Installation steps are described here: https://jupyter.readthedocs.io/en/latest/install.html.
- Another option is to install the Anaconda Community Python Distro (https://www.anaconda.com/download), that is free and comes with Jupyter Notebooks pre-installed.
About your instructor
Rodrigo Senra holds a Ph.D and M.Sc. degrees in Computer Science and a bachelor degree in Computer Engineering, all from UNICAMP-Brazil. He has been working with Python since 1997, and was a pioneer in adopting Python as a first language to be taught in Academicals Courses back in 2004.
Senra is one of the founders of the Brazilian Python Association in 2007 and the first to organize a national Python Conference in Brazil in 2005.
Senra is currently Technology Director at Work & Co in New York, and prior to that was Senior Principal Data Scientist for EMC Research Centre.
The timeframes are only estimates and may vary according to how the class is progressing
This course is presented as an on-going lab, wherein students are going to have Python REPL opened. Meanwhile giving some explanations on the screen, instructor will invite all the students to replicate it in their own REPLs and come up with questions through the chat channel. This course is highly interactive and students will be engaging because they are active all the time, and testing their knowledge at every line.
Part 1 - Fundamentals (30 mins)
- In this first section, we will spend most of our time exploring the REPL and the basic introspection mechanisms, before we start visiting the scalar and collection types available, including a brief overview of Python syntax for the basic statements.
Part 2 - Namespaces: Functions, Modules and Packages (30 mins)
- In the second section we will learn in depth about namespaces, used to build modules, packages, functions, methods and classes. In this section we will also explore the flexible parameter passing mechanism available in Python.
Break (10 mins)
Part 3 - Object Orientation (30 mins)
- In section three we will visit the Python Object Model that pervades the whole language, including the mysterious descriptors that lie at the core of Python's object oriented internal implementation. We will also briefly explore modern mechanisms that were recently added to the language such as Named Tuples and Data Classes.
Part 4 - Functional Programming (30 mins)
- In the last section we will visit how Python conciliate object orientation with functional programming. We will learn how to create and apply Lambdas and also use functions as first-class values (higher order functions). Last but not least, we will explore the standard library Itertools module and some other interesting functional extensions in external libraries. Final Q&A and Wrap up