Python Programming: Advanced
Python® continues to be a popular programming language, because of its ability to get a lot of work done in few lines of code. Python is useful for developing custom software tools, applications, web services, and cloud applications. In this course, you’ll build upon your basic Python skills, learning more advanced topics such as object-oriented programming patterns, development of graphical user interfaces, data management, threading, unit testing, and creating and installing packages and executable applications.
This course is designed for existing Python programmers who have at least one year of Python experience and who want to grow their Python proficiency.
To ensure your success in this course, you should have experience with object-oriented programming and Python 2.x or 3.x. You can obtain this level of skill and knowledge by taking the following Logical Operations course:
- Python® Programming: Introduction
Course-Specific Technical Requirements
For this course, you will need one computer for each student and one for the instructor. Each computer will need the following minimum hardware configurations:
- 1 GHz or faster 32-bit (x86) or 64-bit (x64) processor
- 2 gigabytes (GB) RAM (32-bit or 64-bit)
- 20 GB available hard disk space (32-bit or 64-bit)
- Keyboard and mouse (or another pointing device)
- 1,024 x 768 resolution monitor recommended
- Projection system to display the instructor’s computer screen
- Local area network and Internet connection recommended
- Windows® 10/8.1/8/7/Vista (64-bit).
NOTE: This course was successfully keyed on Windows 10. Some activity steps may not key exactly as written if students key on a different version of Windows.
- Python version 3.4.2 (python-3.4.2.amd64.msi, provided with the course data files).
- PyCharm Community Edition version 3.4.1 ( pycharm-community-3.4.1.exe, provided with the course data files).
NOTE: Python is distributed under the Python Software Foundation License (PSFL). PyCharm Community Edition is distributed under the Apache® License 2.0.
Learning Outcomes / Objectives
In this course, you will expand your Python proficiency.
- Create object-oriented Python applications.
- Design and create a GUI.
- Store data in a database from Python applications.
- Communicate using client/server network protocols.
- Manage multiple processes with threading.
- Implement unit testing.
- Package an application for distribution.
Lesson 1: Using Object-Oriented Python
Topic A: Create and Use Classes in an Application
Topic B: Use Magic Methods
Topic C: Incorporate Class Factories
Lesson 2: Creating a GUI
Topic A: Design a GUI
Topic B: Create and Arrange a GUI Layout
Topic C: Interact with User Events
Lesson 3: Using Databases
Topic A: Basics of Data Management
Topic B: Use SQLite Databases
Topic C: Manipulate SQL Data
Lesson 4: Network Programming
Topic A: Basics of Network Programming
Topic B: Create a Client/Server Program
Lesson 5: Managing Multiple Processes with Threading
Topic A: Create a Threaded Application
Topic B: Manage Thread Resources
Lesson 6: Implementing Unit Testing
Topic A: Test-Driven Development
Topic B: Write and Run a Unit Test Case
Topic C: Create a Test Suite
Lesson 7: Packaging an Application for Distribution
Topic A: Create a Package Structure
Topic B: Generate the Package Distribution Files
Topic C: Generate a Windows Executable