Certified Professional in Python Programming 1 (PCPP1)

Certified Professional in Python Programming 1 (PCPP1)

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 339 Lessons (50h 57m) | 38.27 GB

This intermediate Certified Professional in Python Programming 1 (PCPP1) training prepares software developers to use the Python programming language in accomplishing coding tasks and advanced programming objectives.

The Certified Professional in Python Programming is a two-part certification from the Python Institute. While the second part (PCPP2) focuses on implementing Python into advanced software architectures, PCPP1 simply focuses on a deep familiarity with object-oriented programming (OOP) principles.

The PCPP1 is not simply a Python certification, it represents a proficiency in advanced uses of classes and OOP features. This course takes Python beginners and gives them enough hands-on training scenarios and real-world practice to make them advanced Python users. Whether you’re preparing for the PCPP1 certification or just want to write Python well, this course is your key to becoming an OOP king.

For anyone who manages IT training, this Python training can be used to onboard new software developers, curated into individual or team training plans, or as a Python reference resource.

PCPP1: What You Need to Know
This PCPP1 training has videos that cover topics such as:

  • Writing good Python code that conforms with best practices and conventions
  • Understanding OOP concepts, techniques, and categories
  • Developing graphical interfaces in Python
  • Managing and programming network operations

Who Should Take PCPP1 Training?
This Certified Professional in Python Programming 1 (PCPP1) training is considered associate-level Python training, which means it was designed for software developers. This Python skills course is designed for software developers with three to five years of experience with general-purpose programming language.

New or aspiring software developers. If you want to land a job as a programmer, Python should appeal to you for several reasons. It’s famously simple to learn and readable. It’s also a highly versatile language that you can adapt to every step of your career. If you take this course, you’ll be prepared for the Python certification that employers recognize as a marker of programming comfort and expertise.

Experienced software developers. This course is useful for experienced developers who have some familiarity with Python already but have never buckled down and mastered the language. Turn your experience and familiarity into by-the-book mastery of the versatile and in-demand Python programming language with this PCPP1 training.

Table of Contents

Understand Object-Oriented Programming Basics
1 Essential Terms & Concepts
2 Inheritance, Subclasses, and Superclasses
3 Basic Class, Instance, and Attribute Syntax
4 Basic Instance Method Syntax
5 Reflexion Basics isinstance and issubclass
6 Challenge Build a Library Management System
7 Solution Walk-Through Build a Library Management System

Understand Comparison Magic Methods
8 What are Magic Methods
9 Comparison Magic Method Basics
10 Other Comparison Magic Methods
11 Challenge and Solution Build a Fraction Class
12 Challenge and Solution Build a Fraction Class 2

Understand Numeric Magic Methods
13 Numeric Magic Methods
14 Other Numeric Magic Methods
15 Hands-On Example Numeric Methods
16 Challenge Lunar Arithmetic
17 Solution Walk-Through Lunar Arithmetic

Understand Type Conversion Magic Methods
18 Basic Type Conversion Magic Methods
19 Instance Representations and Formatting
20 Challenge and Solution Type Conversion Methods for Fractions
21 Challenge and Solution Type Conversion Methods for Fractions

Understand Attribute Access Magic Methods
22 Basic Attribute Access Magic Methods
23 Creating Computed Attributes
24 Automatic Unit Conversion
25 Challenge and Solution Person Class Enhancements
26 Challenge and Solution Person Class Enhancements 2

Understand Container Access Magic Methods
27 Container Access Method Basics
28 Using Container Access Methods
29 Indexing Options for Container Access
30 More Advanced Indexing Options
31 Challenge Build A Matrix Class
32 Challenge Build A Matrix Class 2

Understand Iterator Magic Methods
33 Iterator Magic Method Basics
34 Using Iterator Magic Methods
35 Creating Iterator Wrappers
36 What Syntaxes Trigger __iter__
37 Challenge Iterator Magic Methods
38 Challenge Iterator Magic Methods 2

Learn the Basics of Inheritance and Polymorphism
39 Class Hierarchies
40 Creating a Class Hierarchy
41 Polymorphism and Why it Matters
42 Duck-Typing
43 Challenge Resetting Passwords
44 Challenge Resetting Passwords 2

Understand Multiple Inheritance in Python
45 Basics of Multiple Inheritance
46 Multiple Inheritance with Methods
47 Multiple Inheritance with Attributes
48 Method Resolution Order (MRO)
49 Challenge and Solution Method Resolution Order
50 Challenge and Solution Method Resolution Order 2

Learn the Basics of Composition
51 Inheritance vs. Composition
52 Composition in Code
53 Interesting Benefits of Composition
54 Hands-On Example Video Game Characters

Master Arguments in Python
55 Python’s Six Argument Types
56 Use Cases for Regular Argument Types
57 Use Cases for Arbitrary and Restricted Arguments
58 Challenge Using Argument Types
59 Solution Using Argument Types

Learn About Python Function Decorators
60 What are Decorators
61 Basic Function Decorator Syntax
62 Implementing Simple Decorators
63 Decorator Arguments and Stacking
64 Challenge Improved Debugging Decorator
65 Solution Improved Debugging Decorator

Implement Common Function Decorator Patterns
66 Pattern #1 Monitoring Decorator
67 Pattern #2 Retry Decorator
68 Pattern #3 Caching Decorator
69 Closure in Python Decorators
70 Challenge Average Performance Decorator
71 Challenge Average Performance Decorator 2

Learn About Python Class Decorators
72 What are Class Decorators
73 Basic Class Decorator Syntax
74 Decorating Functions with Classes
75 Decorating Classes with Classes
76 Challenge Attribute Type Validation
77 Solution Attribute Type Validation

Implement Common Class Decorator Patterns
78 Pattern #1 Counting Instances
79 Pattern #2 Observing Attribute Changes
80 Pattern #3 Singleton Classes
81 Challenge Accessing Other Instances
82 Solution Accessing Other Instances

Work with Class and Static Methods
83 What are Class Methods
84 What are Static Methods
85 Instance Counting with Class Methods
86 Combining Class Methods and Attributes with Decorators
87 Challenge and Solution Alternative Constructors
88 Challenge and Solution Alternative Constructors 2

Implement Class Method Examples
89 Class-Level Settings
90 Flexible Defaults for Instance Attributes
91 Making Fluent, Chainable Methods
92 Challenge and Solution Flexible Defaults Decorator
93 Challenge and Solution Flexible Defaults Decorator 2

Learn About Abstract Classes and Methods
94 What are Abstract Classes and Methods
95 Basic Abstract Syntax
96 Abstract Class Inheritance
97 Abstract Class and Static Methods
98 Challenge and Solution Working with Shapes
99 Challenge and Solution Working with Shapes 2

b. Use Abstract Classes with OOP Design Patterns
100 The Observer Pattern
101 Implementing the Observer Pattern
102 A Concrete Observer Pattern Example
103 The Template Method Pattern
104 Implementing the Template Method Pattern
105 Challenge and Solution Combining Patterns
106 Challenge and Solution Combining Patterns 2

Learn Attribute Encapsulation
107 Basics of Private and Protected Attributes
108 Private and Protected Attribute Examples
109 Implementing Private Attributes with Magic Methods
110 Challenge and Solution Bank Account Management
111 Challenge and Solution Bank Account Management 2

Work with Properties
112 Basics of Properties
113 Getters, Setters, and Deleters
114 Read-Only Properties
115 Setter Validation and Wrangling
116 Property Chaining
117 Challenge and Solution Person Properties
118 Challenge and Solution Person Properties 2

Extend Built-in Types and Classes
119 The Basic Idea
120 Extending Strings
121 Extending Ints and Floats
122 Mutable vs. Immutable Types
123 Challenge and Solution No Empty Strings
124 Challenge and Solution No Empty Strings 2

Extend Lists, Dictionaries and Other Types
125 Extending Lists
126 Adding New Methods to Lists
127 Extending Dictionaries
128 Extending Tuples
129 Challenge and Solution History List
130 Challenge and Solution History List 2

Practice Built-in Type Extension
131 Example #1 Instance Counting with Ints
132 Example #2 Sanitized Strings
133 Example #3 Default-Value Dictionaries
134 Using Magic Methods with Built-in Type Extensions
135 Example #4 Percentage Floats
136 Challenge and Solution (Example #5) Representing Units
137 Challenge and Solution (Example #5) Representing Units 2

Learn the Basics of Exceptions
138 Basic Terminology
139 Python’s Built-in Exceptions
140 Raising Our Own TypeErrors and ValueErrors
141 Raising Our Own KeyErrors, AttributeErrors, etc.
142 Challenge and Solution Library Enhancements
143 Challenge and Solution Library Enhancements 2

Handle Exceptions Effectively
144 Try and Except Basics
145 The Finally and Else Blocks
146 Program Flow During Exceptions
147 Program Flow in Layered Programs
148 Challenge and Solution Creating Instances from User Input
149 Challenge and Solution Creating Instances from User Input 2

Understand Advanced Exception Handling
150 Where Should We Handle Exceptions
151 Exception Handling in Different Locations
152 Creating Custom Exceptions
153 Basics of Exception Chaining
154 Challenge and Solution Custom Exceptions and Chaining
155 Challenge and Solution Custom Exceptions and Chaining 2

Understand Copy Operations
156 The Basics of Shallow Copying
157 The Basics of Deep Copying
158 Shallow- and Deep-Copying Pros and Cons
159 Label vs. Identity vs. Value
160 Challenge & Solution What Happens to Arguments
161 Challenge & Solution What Happens to Arguments 2

Serialize and Deserialize Data
162 The Basics of Serialization and Deserialization
163 Serializing with the Pickle Library
164 What Types of Data Can I Pickle
165 Serializing with JSON
166 Challenge and Solution Serializing Instances
167 Challenge and Solution Serializing Instances 2

Learn the Basics of Metaprogramming
168 Reflection and Introspection Functions, Part I
169 Reflection and Introspection Functions, Part II
170 The __name__ Attribute
171 Other Special Attributes
172 Challenge and Solution Tell Me About…
173 Challenge and Solution Tell Me About… 2

Learn Intermediate Metaprogramming Concepts
174 Metaprogramming with Decorators
175 Dynamic Code Execution
176 Building a Code Quiz with Dynamic Code Execution
177 Modifying Code Programmatically
178 Challenge and Solution There Is (Almost Always) A Better Way
179 Challenge and Solution There Is (Almost Always) A Better Way

Understand the Basics of Metaclasses
180 What is a Metaclass
181 Some Simple Metaclass Examples
182 Modifying Classes with Metaclasses
183 Challenge and Solution Metaclass Creator Functions
184 Challenge and Solution Metaclass Creator Functions 2

Practice Working with Metaclasses
185 Example #1 Metaclass Instance Counting
186 Example #2 Preventing Multiple Inheritance
187 Example #3 Adding Metaclasses by Using Decorators
188 Example #4 Metaclasses and Inheritance
189 Challenge & Solution Combining Metaclasses
190 Challenge & Solution Combining Metaclasses 2

Follow PEP8 Formatting Guidelines
191 Function Indentation Basics
192 Other Indentation Rules
193 Breaking Up Lines
194 When to Use Blank Lines
195 Challenge & Solution PEP8 in Action
196 Challenge & Solution PEP8 in Action 2

PEP8 Naming and Whitespace Conventions
197 Basic Whitespace Guidelines
198 More Whitespace Guidelines
199 Comment Guidelines
200 Naming Convention Guidelines
201 Challenge & Solution PEP8 In Action
202 Challenge & Solution PEP8 In Action 2

Build Simple GUIs with Tkinter
203 Displaying the Main Window
204 Creating and Adding Widgets
205 Widgets for Displaying Text
206 Challenge & Solution Fibonacci GUI
207 Challenge & Solution Fibonacci GUI 2

User Input and Event Handling
208 User Input Widgets
209 Buttons and Entries
210 The Text Widget
211 Checkbuttons and Radiobuttons
212 Challenge & Solution Building a Form
213 Challenge & Solution Building a Form 2

Organize Tkinter Interfaces
214 Moving Widgets Around with Pack
215 The Place Method
216 Geometry Managers and the Grid Method
217 Challenge & Solution Container Widgets
218 Challenge & Solution Container Widgets 2

Observe Variables and Bind Events
219 Working with Observable Variables
220 Hiding Widgets with Observable Variables
221 Using the bind() Method
222 Binding Keyboard Events
223 Challenge & Solution Form Validation
224 Challenge & Solution Form Validation 2

Learn the Basics of Widget Styling
225 Basic Widget Styling Options
226 Borders and Reliefs
227 Highlighting Entries
228 Challenge & Solution Styling Playground
229 Challenge & Solution Styling Playground 2

Learn Advanced Widget Styling
230 Themed Tkinter Widgets
231 Creating Simple Shared Styles
232 Tkinter’s Built-in Themes
233 Challenge & Solution Dark Mode
234 Challenge & Solution Dark Mode 2

Work with Tkinter Canvas
235 Creating and Displaying a Canvas
236 Drawing Simple Shapes
237 Drawing Text and Images
238 Using Windows to Insert Widgets
239 Challenge A Simple Drawing Application
240 Challenge A Simple Drawing Application 2

Draw Charts and Graphs with Tkinter Canvas
241 Draw the Axes
242 Draw the Bar Widths
243 Draw the Bar Heights
244 Draw a Pie Chart
245 Challenge & Solution Line Graphs
246 Challenge & Solution Line Graphs 2

Learn the Basics of Network Requests
247 Making Basic Network Requests in Python
248 Working with API Keys
249 Creating a Simple Server
250 Challenge Go Forth and Practice

Build and Utilize REST APIs
251 What is REST Anyway
252 RESTful Basics
253 Creating a REST API
254 Building Read Endpoints
255 Challenge & Solution Create a Client
256 Challenge & Solution Create a Client 2

Learn Intermediate Network Request Concepts
257 Adding Extra Request Data
258 Handling Request Bodies on the Server-Side
259 Including Request Bodies on the Client-Side
260 Query Parameter Basics
261 Challenge & Solution Finish the Endpoints
262 Challenge & Solution Finish the Endpoints 2

Understand Socket Programming
263 Creating A Socket Server
264 Creating A Socket Client
265 Sending Socket Messages
266 Keeping Socket Connections Open
267 Handling Multiple Clients
268 Challenge & Solution Forwarding Messages
269 Challenge & Solution Forwarding Messages 2

Build Effective Socket Applications
270 Handling Common Socket Exceptions
271 Sending Different Types of Data
272 Sending Complex Data Using Pickle
273 A Harder Way to Send Data
274 Challenge & Solution Rock, Paper, Scissors
275 Challenge & Solution Rock, Paper, Scissors 2

Understand the JSON Data Format
276 JSON Syntax and Structure Basics
277 JSON Data Types
278 Loading and Dumping JSON Data with the json Module
279 Challenge & Solution A JSON Database
280 Challenge & Solution A JSON Database 2

Understand the XML Data Format
281 XML Syntax and Structure Basics
282 Representing Data with XML
283 Parsing and Working with XML Data
284 Challenge & Solution Translating JSON to XML
285 Challenge & Solution Translating JSON to XML 2

Learn the Basics of SQLite3
286 SQLite Basic Concepts
287 Creating Tables in SQLite
288 Executing SQLite Statements in Python
289 Inserting Data in SQLite
290 Selecting Data in SQLite
291 Challenge & Solution Creating Another Table
292 Challenge & Solution Creating Another Table

Learn Intermediate SQLite3
293 Deleting Data in SQLite
294 Avoiding SQL Injection
295 Updating Data in SQLite
296 Challenge & Solution Interactive Product Management System
297 Challenge & Solution Interactive Product Management System 2

Learn Advanced SQLite3
298 Narrowing Queries
299 Grouping and Manipulating Query Results
300 Narrowing Queries Practice
301 Grouping and Manipulating Queries Practice
302 Challenge & Solution More Complex Query Practice
303 Challenge & Solution More Complex Query Practice 2

Build a Simple Chat Application
304 What Will We Be Building
305 Basic Application Setup
306 Implementing the Init Methods
307 Receiving and Broadcasting Messages on the Server
308 Creating the User Interface
309 Implementing the Client-Side Logic
310 Challenge & Solution Adding User Ids
311 Challenge & Solution Adding User Ids 2

Build a Full-Stack Expense Tracker
312 What Will We Be Building
313 Setting Up the Back-end
314 Implementing the Load Endpoint with SQLite
315 Implementing the Create and Delete Endpoints with SQLite
316 Creating the Basic Interface
317 Making Requests from the Front-End
318 Challenge & Solution Deleting Expenses
319 Challenge & Solution Deleting Expenses 2

Build a Spreadsheet Program, Part I
320 What Will We Be Building
321 Basic Project Setup
322 Implementing Cell Behavior
323 Adding and Removing Cell Dependencies
324 Challenge & Solution Arithmetic Magic Methods
325 Challenge & Solution Arithmetic Magic Methods 2

Build a Spreadsheet Program, Part II
326 Implementing Spreadsheet Behavior
327 Building the Interface
328 Making the Cells Update Automatically
329 Challenge & Solution Updating Cells More Efficiently
330 Challenge & Solution Updating Cells More Efficiently 2

Build a GUI Web-Scraper Tool
332 What We’ll Be Building
333 Setting Up the Interface
334 Loading and Parsing HTML
335 Using User-Defined Selectors
336 Pulling Data Out Of HTML
337 Writing Scraped Data to a CSV
338 Challenge Adding and Removing Fields
339 Challenge Adding and Removing Fields 2

Homepage