Python Training Course

Course Summary

Python Fundamentals is a 4-day training course in the Python language and its many applications. The course covers the language itself, explains object-oriented as well as functional programming techniques, error handling, packaging, system and network programming, many of the Python extensions (libraries), as well as best practices. All concepts are explained through hands-on examples and exercises, so students learn by coding in Python.



 

Duration [top]

4 days.

Objectives [top]

This is a fast-paced lab course, designed to bring seasoned programmers up-to-speed in Python, as quickly as possible. While attending this course, you will experience:

  • Pythonic thinking.
  • Python's input and output details: stdio and file io.
  • Python's interesting and extra-useful flow-of-control devices.
  • Python's simple and robust error handling.
  • Python's flexible function protocols.
  • Python's memory model.
  • Python's straight-forward object-oriented features.
  • Python's built-in data types: using them, and inheriting from them in classes you design.
  • Python's list comprehensions, decorators, iterators, generators, context managers.
  • Python's scheme for creating and using libraries and packages.
  • Python's handy libraries for many developer/administrator tasks: shutil, tempfile, subprocess, glob, profile, shelve, os, sys, optparse, unittest.
  • Python's architecture, which allows you to get working very quickly with any Python library (there are thousands).

Audience [top]

This course is designed for developers, system administrators, and QA engineers, who wish to be able to develop, automate, and test applications and systems using one of the most powerful programming languages available today.

Prerequisites [top]

Students should have prior programming experience and be familiar with basic concepts such as variables/scopes, flow-control, and functions. Prior exposure to object-oriented programming concepts is not required, but definitely beneficial.

Instructors [top]

Photo

Brian is an independent consultant with 30 years' experience as a software developer and worked for a stock exchange, the U.S. Navy, a large software company, and several startups and small companies, before striking out on his own. Brian is fluent in many languages, including Scala, Java, Python, Ruby and C#, and C. In addition, he is highly familiar with current web application technologies, including frameworks like Play!, Ruby on Rails, Django, and front-end technologies like Knockout.js and Angular.js.

Brian founded the Philly Area Scala Enthusiasts in 2010 and, since 2011, has been a co-organizer of the Northeast Scala Symposium; he was also co-organizer of Scalathon, in 2011 and 2012. Brian is also involved in Technically Philly Groups, as non-profit dedicated to supporting the many technology user groups in the Philadelphia metropolitan area. He maintains a substantial GitHub repository of open source projects and is fond of saying that even after many years as a software developer, "programming is still one of my favorite activities."

More about Brian Clapper...
Photo

Greg Sadetsky has spent the last 10 years as an entrepreneur, software engineer and scientist. Besides starting a coworking space and an online TV broadcasting outlet, he co-founded and led a successful web mapping consultancy, whose clients included major US technology companies.

His development experience includes building web-based hurricane and forest fire tracking maps, interfacing with physical access control systems and doing real-time processing of biological images in the context of medical research. His weapons of choice have been Python and JavaScript.

Greg is completing his Master's degree in Biophotonics at University Laval and lives in Quebec City.

More about Greg Sadetsky...
Photo

Jeremy never expected nor planned on becoming a hardcore programmer, much less a computer language polyglot, but that is where his varied career has taken him. Much more interested in the technical side of things, he's worked on projects from MUDs to mapping APIs to a browser front end for corporate file sharing. Jeremy likes to learn new technology by diving in, writing a lot of bugs, and then debugging everything to get a thorough understanding of how things work. There's nothing better than finding out just what a platform is capable of, and where the boundaries still exist. Jeremy's current favorite languages are JavaScript, Python, and Lua.

When he's not teaching, he's probably rock climbing with his son, writing code for that game that maybe-someday will be published, or reading yet another classic novel that he should have read in school but didn't.

More about Jeremy Osborne...
Photo
Kenneth Love is a full-stack, freelance web developer who focuses mostly on Python and Django.

Kenneth created the Getting Started with Django tutorial series for getting people new to Django up to speed with best practices and techniques. He also created the django-braces package which brings several handy mixins to the generic class-based views in Django. More about Kenneth Love...

Outline [top]

Output

  • Executing a Python program
  • Syntax: code blocks, colons
  • if, elif and else
  • while and another else
  • Writing to stdout
  • Relational and logical operators

Input

  • Input from stdin
  • Factory functions
  • Catching an exception:
    • yet another else
  • Formatted strings
  • Integer division issue

for range

  • range operator
  • for loop
  • tuples

Functions

  • Function protocols
  • import and reload
  • Module: random
  • Introspection

Scope

  • Indentifier scope
  • Default arguments
  • Keyword arguments

Sequences

  • Sequence types: str, tuple, list
  • Sequence slicing and other manipulations

Important Trick

  • Module: sys
  • Important trick:
    • _name_and_'_main_'
  • Valid identifiers

Comprehensions

  • Scope issues
  • List comprehensions

Dictionaries

  • Importing with from
  • Dictionaries

File IO

  • File I/O
  • Module: os
  • Walking A Directory

Packages

  • Modules: shutil, tempfile
  • Python Packages
  • Debugging 

Dynamic Code

  • Dynamic Code Generation
  • Modules:
    • subprocess
    • glob
    • profile 

Function Fancies

  • Function protocols: variable length argument lists
  • Formatted printing using a dictionary for replacement
  • Unpacking sequences and dictionaries
  • Generators (Optional)
  • Decorators (Optional)

OOP

  • Module: shelve
  • Classes
  • Inheritance
  • Class variable

Overriding

  • Overriding
  • Has-A vs Is-A relationships

New Style Classes

  • Useful attributes
  • Iterators
  • New style classes
  • Attribute control (Optional)
  • property (Optional)
  • Static methods (Optional)
  • Class methods (Optional)
  • Diamond inheritance (Optional)

Developer Modules

  • Context Manager class
  • Module: unittest
  • Module: optparse

Wrap Up

  • Exceptions
  • Namespaces
  • Nests
  • Pitfalls
  • Finding Modules and Help

re Module

  • re - Regular Expressions
  • Search and replace
  • Named groups

re Syntax

  • Regular expression syntax
  • Testing regular expressions

Additional Notes [top]

About the Platform

This course can be taught on most major operating systems, which support Python, such as Windows, Linux, Mac OS X, etc.

Trademarks

"Python" is a registered trademark of the Python Software Foundation. All other marks are the properties of their respective owners.


Student Testimonials [top]

I think everything was perfect and, as I said, I enjoyed the class a lot, and would definitely recommend the training to friends should they ask me for recommendations.

Julia - Symantec Corporation

Labs = great! I wanted more of them, and more time to do them, at every step of the way. It makes it easier to learn that way. Simeon is SUPER knowledgeable with Python AND many other languages, which is great because he can compare and contrast them. He now only knows teaches the syntax and language, but how to use it efficiently. I was a bit under the learning level, not having programmed before like most everyone else in the class, so I felt like I was constantly having to catch up, but I still learned a LOT and highly recommend this class for programmers fluent in Java or C or such that want to learn Python as well. Take this and you will be off and running!

Chris - Bank of the west

Charles had expert level understanding of the Python language. He had done a lot of hands-on implementation, especially in numerically intensive applications. This experience was very valuable.

A - Financial Engines

Simeon was great.

Danny - Schwab

Simeon is a great instructor, he really knows Python, and can explain complex topics so even those new to Python can grasp them.

Tim - Morphodetection.com

Simeon is a great instructor.

Jaskirat - Mulesoft

Instructor was awesome. Her presentation style was super-clear and very precise.

Torsten - Nuance Mobile Care

Excellent class. I definitely learned a lot. Instructor was extremely knowledgable material. He presented the material very well. I feel like I understood about 99% of things that were presented. Simeon was very enthusiastic about helping the students with labs and explaining things that they did not completely understand.

Brian - Morpho Detection Inc.

Simeon is very knowledgeable and instrumental. With my limited in high-level programming, I can easily follow the teaching and be able to do what I was expecting. Hope a more advanced class can be made available as the follow-up to this. This class is good for the beginners with mostly hardware design experience. I recommend it to all the hardware engineers who would like to automate their work with some sort of easy-to-use programming language.

Yim - N/A

Excellent coverage of the techniques and pitfalls of Python Programming using extensive examples and code walk-through's.

Kari - Ujanen Inc.

Robert customized the course to our needs really well. He is an excellent instructor and exhibited sound knowledge of Python and a lot of patience when dealing with us. He was super flexible in every aspect and I am very pleased with the overall experience.

Siva - Facebook

This was an excellent course, well-designed for the audience, with appropriate pacing. Incredible instructor - it was clear that she's been doing this for a long time. I enjoyed her humor and her depth of knowledge.

Jason - Nuance Communications, Inc.

The training is very well organized and delivered. Rob Zuber did the excellent job. Many thanks!

David - Symantec Corporation