Contact Us
We would love to hear from you. Please complete this form to pre-book or request further information about our delivery options.

3 Days

(Online and onsite)

Price Upon Request
This course aims to provide the delegate with the knowledge to be able to interpret, write, and troubleshoot complex Python applications exploiting inheritance and polymorphism, mixins, composition and aggregation, iterators, generators, decorators, comprehension, concurrency, functional programming, and RESTful web services.
The delegate will learn and acquire skills as follows:
- Encapsulating classes
- Exploiting polymorphism using inheritance and mixins
- Associating objects via composition and aggregation
- Working with static members
- Using iterators as an alternative to for
- Constructing custom iterators
- Constructing functions that yield generators
- Manipulating lists, sets, and dictionaries using comprehension
- Exploiting aspect oriented programming using decorators
- Writing multithreaded code
- Sharing data between threads
- Processing collections using lambdas
- Building RESTful clients
- Building RESTful APIs
- Testing units of code
Day 1
Course Introduction
- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions
Session 1: ADVANCED OBJECT ORIENTATION
- The self Keyword
- Constructors and Destructors
- Encapsulation
- Inheritance
- Polymorphism
- Abstract Classes
- Multiple Inheritance and Mixins
- Composition and Aggregation
- Static Members
Session 2: ITERATORS & GENERATORS
- Iterables
- Iterators
- Custom Iterators
- Generators
- Yield vs. Return
Session 3: COMPREHENSIONS
- List Comprehension
- Set Comprehension
- The zip Function
- Dictionary Comprehension
Day 2
Session 4: FUNCTIONAL PROGRAMMING
- Functional Programming
- Lambdas
- Immutability
- Mapping
- Filtering
- Reducing
Session 5: DECORATORS
- Decorators
- Decorator Functions
- Decorator Annotations
- Decorator Use Cases
- Labs
Session 6: MULTITHREADING
- Threads
- Multithreading
- Thread Construction
- Thread Execution
- Thread Sleep
- Joins
- Data Sharing
- Synchronisation
- Multithreading vs. Multiprocessing
Day 3
Session 7: WEB SERVICES
- RESTful Web Services
- JSON Data
- CRUD and HTTP
- RESTful Clients
- RESTful APIs
Session 8: UNIT TESTING
- Unit Testing Terminology
- Test Classes
- Test Fixtures
- Test Cases
- Assertions
- Test Runners
The Python Programming 2 course is designed for existing Python developers who have a good grounding in the basics and want to exploit some of the advanced features of the language.
For the delegate for whom Python is their first programming language, we recommend taking the Python Programming 1 (PYP1) course first, then taking some time to practice the skills gained, before returning to take the Python Programming 2 course.
Students should be able to build Python applications that exploit all fundamental elements of the language including variables and expressions, conditions and loops, functions, objects, and lists.
This knowledge can be gained by attendance on the pre-requisite Python Programming 1 (PYP1) course.
This course aims to provide the delegate with the knowledge to be able to interpret, write, and troubleshoot complex Python applications exploiting inheritance and polymorphism, mixins, composition and aggregation, iterators, generators, decorators, comprehension, concurrency, functional programming, and RESTful web services.
The delegate will learn and acquire skills as follows:
- Encapsulating classes
- Exploiting polymorphism using inheritance and mixins
- Associating objects via composition and aggregation
- Working with static members
- Using iterators as an alternative to for
- Constructing custom iterators
- Constructing functions that yield generators
- Manipulating lists, sets, and dictionaries using comprehension
- Exploiting aspect oriented programming using decorators
- Writing multithreaded code
- Sharing data between threads
- Processing collections using lambdas
- Building RESTful clients
- Building RESTful APIs
- Testing units of code
Day 1
Course Introduction
- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions
Session 1: ADVANCED OBJECT ORIENTATION
- The self Keyword
- Constructors and Destructors
- Encapsulation
- Inheritance
- Polymorphism
- Abstract Classes
- Multiple Inheritance and Mixins
- Composition and Aggregation
- Static Members
Session 2: ITERATORS & GENERATORS
- Iterables
- Iterators
- Custom Iterators
- Generators
- Yield vs. Return
Session 3: COMPREHENSIONS
- List Comprehension
- Set Comprehension
- The zip Function
- Dictionary Comprehension
Day 2
Session 4: FUNCTIONAL PROGRAMMING
- Functional Programming
- Lambdas
- Immutability
- Mapping
- Filtering
- Reducing
Session 5: DECORATORS
- Decorators
- Decorator Functions
- Decorator Annotations
- Decorator Use Cases
- Labs
Session 6: MULTITHREADING
- Threads
- Multithreading
- Thread Construction
- Thread Execution
- Thread Sleep
- Joins
- Data Sharing
- Synchronisation
- Multithreading vs. Multiprocessing
Day 3
Session 7: WEB SERVICES
- RESTful Web Services
- JSON Data
- CRUD and HTTP
- RESTful Clients
- RESTful APIs
Session 8: UNIT TESTING
- Unit Testing Terminology
- Test Classes
- Test Fixtures
- Test Cases
- Assertions
- Test Runners
The Python Programming 2 course is designed for existing Python developers who have a good grounding in the basics and want to exploit some of the advanced features of the language.
For the delegate for whom Python is their first programming language, we recommend taking the Python Programming 1 (PYP1) course first, then taking some time to practice the skills gained, before returning to take the Python Programming 2 course.
Students should be able to build Python applications that exploit all fundamental elements of the language including variables and expressions, conditions and loops, functions, objects, and lists.
This knowledge can be gained by attendance on the pre-requisite Python Programming 1 (PYP1) course.