You should already be at the Introduction to Programming.
If in doubt, you must be able to pass this test in a programming language of your choice, before attempting this course.
Whether you are new to programming or a professional developer, this book is designed to bring you up to
speed on the Python language in ways that more limited approaches cannot.
After this course you should be able to
Start programming in Python and tackle real world solutions in Python as taught on our Advanced Python course
Consider doing our Advanced Python course
We give you an original copy of the book: Learning Python (by Mark Lutz) as we use this mainly,
but we also give additional examples where it falls short.
The contents could be adjusted slightly to best suit the group’s skill level and / or requirements.
- Why Do People Use Python?
- Is Python a “Scripting Language”?
- OK, but What’s the Downside?
- Who Uses Python Today?
- What Can I Do with Python?
- How Is Python Developed and Supported?
- What Are Python’s Technical Strengths?
- How Does Python Stack Up to Language X?
How Python Runs Programs
- Introducing the Python Interpreter
- Program Execution
- Execution Model Variations
How You Run Programs
- The Interactive Prompt
- System Command Lines and Files
- Unix-Style Executable Scripts: #!
- Clicking File Icons
- Module Imports and Reloads
- Using exec to Run Module Files
- The IDLE User Interface
- Other IDEs
- Other Launch Options
- Which Option Should I Use?
Types and Operations
- Why Use Built-in Types?
- Python’s Core Data Types
- Other Core Types
- Numeric Type Basics
- Numbers in Action
- Other Numeric Types
- Numeric Extensions
The Dynamic Typing Interlude
- The Case of the Missing Declaration Statements
- Shared References
- Dynamic Typing Is Everywhere
- This Chapter’s Scope
- String Basics
- String Literals
- Strings in Action
- String Methods
- String Formatting Expressions
- String Formatting Method Calls
- General Type Categories
Lists and Dictionaries
- Lists in Action
- Dictionaries in Action
Tuples, Files, and Everything Else
- Core Types Review and Summary
- Built-in Type Gotchas
Statements and Syntax
- The Python Conceptual Hierarchy Revisited
- Python’s Statements
- A Tale of Two ifs
- A Quick Example: Interactive Loops
Assignments, Expressions, and Prints
- Assignment Statements
- Expression Statements
- Print Operations
if Tests and Syntax Rules
- if Statements
- Python Syntax Revisited
- Truth Values and Boolean Tests
- The if/else Ternary Expression
while and for Loops
- while Loops
- break, continue, pass, and the Loop else
- for Loops
- Loop Coding Techniques
Iterations and Comprehensions
- Iterations: A First Look
- List Comprehensions: A First Detailed Look
- Other Iteration Contexts
- New Iterables in Python 3.X
- Other Iteration Topics
The Documentation Interlude
- Python Documentation Sources
- Common Coding Gotchas
- Why Use Functions?
- Coding Functions
- A First Example: Definitions and Calls
- A Second Example: Intersecting Sequences
- Python Scope Basics
- The global Statement
- Scopes and Nested Functions
- The nonlocal Statement in 3.X
- Why nonlocal? State Retention Options
- Why Use Modules?
- Python Program Architecture
- How Imports Work
- Byte Code Files: __pycache__ in Python 3.2+
- The Module Search Path
- Module Creation
- Module Usage
- Module Namespaces
- Reloading Modules
Classes and OOP
- Classes Generate Multiple Instance Objects
- Classes Are Customized by Inheritance
- Classes Can Intercept Python Operators
- The World’s Simplest Python Class
- The class Statement
- Namespaces: The Conclusion
- Documentation Strings Revisited
- Classes Versus Modules
Classes and OOP
- OOP and Inheritance: “Is-a” Relationships
- OOP and Composition: “Has-a” Relationships
- OOP and Delegation: “Wrapper” Proxy Objects
- Pseudoprivate Class Attributes
- Methods Are Objects: Bound or Unbound
- Classes Are Objects: Generic Object Factories
- Multiple Inheritance: “Mix-in” Classes
- Other Design-Related Topics
Advanced Class Topics
- Extending Built-in Types
- The “New Style” Class Model
- New-Style Class Changes
- New-Style Class Extensions
- Static and Class Methods
- Decorators and Metaclasses: Part 1
- The super Built-in Function: For Better or Worse?
- Class Gotchas
Exceptions and Tools
- Why Use Exceptions?
- Exceptions: The Short Story
- The try/except/else Statement
- The try/finally Statement
- Unified try/except/finally
- The raise Statement
- The assert Statement
- with/as Context Managers
Duration and pricing
- Full-time over 5 days (R8995 excl VAT)
- Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
- Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
- Distance-learning over up to 3 months (R7995 excl Vat)
1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
2. You have the option to get the competency / academic certificate if you :
hand in a project (pre-approved) covering most of the topics in the book
The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.
On the calender on this page below. This course is repeated approximately once every 6 weeks, unless a customised specific booking is requested via email.
If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.
You can download the course registration form on our home page or by clicking here
To download a brochure of this page in pdf format, please click on the pdf icon at the top of this page
Please email us