Course Description
This Advanced Python Programming online training course picks up where Python Essentials left off. In this course you will enhance your Python knowledge by discussing complex data types, object oriented programming, GUI programs, regular expressions, threads, network programming, using SQL, and extending Python with C. This course was filmed using Python 2.x.
In order to take this course you need to have taken Python Programming Essentials or have equivalent experience in the concepts taught in that course.
Python is a general purpose language that was released in the 1990’s. It is designed to be highly readable and that makes it very easy for beginners. The learning curve is shorter than many other languages, it allows you to do scientific computing, web development and 3d rendering. Python had a major role in starting YouTube, Instagram and Reddit. Because Python is useful in many different applications there are jobs available in just about every market. Companies like Google and YouTube have requirements for Python Programmers most all the time.
In This Course You Will Learn:
- Write programs using complex data types
- Write object oriented programs
- Use Python to create GUI programs
- Use regular expressions and threads in Python programs
- Create network programs in Python
- Use Python to work with SQL databases
- Extend Python programs with C code
Prerequisites
In order to successfully complete Advanced Python Programming you need to have experience in a high-level programming language (for example: C, C++, Java, Perl, etc.), be able to perform basic operations in the operating systems and have completed Python Programming Essentials. If you do not have this experience, the following GogoTraining courses are available for you to choose from:
Outline
Module 00: Course Introduction
Module 01: Miscellaneous Tidbits
- Named Parameters
- pprint Module
- lamdas
- Generators
- Lab: Generators and lambdas
Module 02: Complex Data Types Part 1
- List of Lists
- Processing List of Lists
- List of Dictionaries
- Lab: Working with List of Dictionaries
Module 03: Complex Data Types Part 2
- Dictionary of Lists
- Working with Dictionary of Lists
- Dictionary of Dictionaries
- Lab: Working with Dictionary of Dictionaries
Module 04: Arbitrarily Nested Types
- Introduction to Nested Types
- Different Nested Types
- Nested Type Example
- Lab: Working with Nested Types
Module 05: Object Oriented Review
- Creating a Class
- Object Constructor
- The from statement
- Composition
- Lab: Creating a Class, Working with the Class
Module 06: More Object-Oriented Topics
- Static Variables and Methods
- Destructor
- Method Overloading
- Data Hiding
- Lab: Working with Static Data and Data Hiding
Module 07: Object Oriented Inheritance and Operator Overloading
- Inheritance
- Multiple Inheritance
- Abstract Base Classes
- Operator Overloading
- Object Iterators
- Lab: Implementing Inheritance
Module 08: GUI - Introduction to Tkinter
- Introduction to Tkinter
- More on Labels
- The pack() function
- Lab: Using pack()
Module 09: More on Tkinter - Frames
- Introduction to Frames
- Frame Examples
- Frames and Classes
Module 10: More Tkinter Widgets
- Buttons
- Checkbuttons
- Radiobuttons
- Entry
- More Topics
- Lab: Creating a Frame
Module 11: Regular Expressions
- Introduction to Regular Expressions
- Text Matching
- Patterns
- Patterns: Classes and Quantifiers
- Exercise: Regex
Module 12: More on Regular Expressions
- Match Object
- Memory with Parens
- Memory and group()
- Alternation and Anchoring Patterns
- Exercise: Case Insensitive Matching
Module 13: Wrapping up Regular Expressions
- The split() Method
- Lab: Matching Text and Extracting Text
Module 14: Introduction to Threads
- Introduction to Threads
- Creating a Python Thread
- Creating Multiple Threads
- Joining Threads
- Threads with Data
- Lab: Creating Threads
Module 15: Working with Threads
- Removing the Flag Variable
- The Lock and RLock Classes
- Using try/finally
- Semaphors
- Lab: Thread Synchronization
Module 16: Introduction to Network Programming with Python
- Introduction to Network Programming
- Writing a Server from Scratch
- Writing a Client from Scratch
- Handling Multiple Clients Serially
- Handling Multiple Clients in Parallel
- Lab: Write a Client/Server Program
Module 17: SocketServer
- Using SocketServer
- Forking with SocketServer
- Threading with SocketServer
Module 18: More Network Modules
- telnetlib
- ftplib
- urllib
- Lab: using ftplib and telnetlib
Module 19: Python and SQL Part 1
- Introduction to SQL
- MySQL Example
- MySQLdb Module
- Connecting to a Database
- Executing a Query
Module 20: Python and SQL Part 2
- Other Ways of Fetching a Result
- Inserting into a Table
- Lab: Working with MySQLdb
Module 21: Extending Python with C Part 1
- Introduction
- Simple Example
- Pieces of the C File
Module 22: Extending Python with C Part 2
- PyArg_Parse()
- Py_BuildValue()
- Conversion Codes
- Error Handling
- An Example
- Lab: Putting it Together
Module 23: SWIG Part 1
- Introduction to SWIG
- SWIG Example
- Lab: Using SWIG
Module 24: SWIG Part 2
- SWIG Wrapping Existing Code
- Global Variable
- SWIG and Structs
- Lab: Using Global Variables with SWIG
Module 25: Moving from Python 2 to Python 3
- Common gotchas
- Syntax changes
- String formatting
- Changes to exceptions
- Miscellaneous stuff
- Porting from Python 2.x to Python 3.x