Qtrac Ltd.
Software
Courses
Books
Game
All Writing & Software
Privacy
Copyright © 2006 Qtrac Ltd.
All Rights Reserved.
Python Programming
A training course for programmers of other
languages
Prerequisites: This course is aimed at people with at least a six
months programming experience in any mainstream language
such as C, C++, or Java.
"Better than anything at University. I will actually use what I learned!.",
—Attendee Feedback
The course is divided into topic-specific modules, each of which is
divided into sessions. This course has a fixed core curriculum of
sessions 1-39 and 41-45. All the other sessions are optional (but
recommended), and since for any given course there is normally only time
to do a proportion of them, the participants choose which ones to skip.
When done on-site the course can be done in just four days, if
necessary, by doing fewer sessions.
The course can be taught based on Python 2 (2.5-2.7) or
Python 3 (3.1 or later).
Each session takes about 30-90 minutes each. Most sessions have four
parts:
- Introduction/Overview/Key Concepts
- Code Review (i.e., how to do the thing/use the feature in
practice)
- Exercise(s)
- Review of Solution(s)
There are also some brief “Interludes”; these are short 5-10 minute talks.
It is usual to do 6-10 sessions each day.
Course outline:
- Python Interpreters and the Python Edit/Run Cycle
- Python Interpreters and the Python Edit/Run Cycle
- Python Preview
- A quick preview so we can have decent examples and exercises
from the start
- Procedural Programming
- Keywords, Identifiers, and Object References
- Single Valued Data Types
- Collection Types (Multi-valued Data Types)
- Control Structures
- Exception Handling
- Custom Functions
- Interlude Procedural vs. Object-Oriented Programming
- Object-Oriented Programming
- Concepts and Terminology
- “Old”-style (classic) vs. “new”-style classes
- Constructors and initializers
- Special methods to make custom types fully pythonic
- Creating Custom Single Value Classes
- Creating Custom Collection Classes
- Interlude Refactoring
- Functional-Style Programming I
- What is Functional Programming and why functional-style?
- The Functional Classics
- Closures and Partial Function Application
- Unicode
- Unicode
- File Handling
- Writing and Reading Binary Files with pickles
- Writing and Parsing Text Files with JSON
- Writing and Parsing Text Files
- Writing and Parsing XML Files with etree
- Writing and Reading Binary Files
- User Interfaces
- Command line programs using argparse
- Introduction to GUI programming with Tkinter
- Modules and Packages
- Packages, Importing, and Modules
- Interlude Test Driven Development/Test Driven Design
- Debugging, Testing, and Profiling
- Handling Syntax Errors
- Handling Runtime Errors
- Scientific Debugging
- Unit Testing
- Profiling
- Overview of Generic Parts of Python's Standard Library
- String Handling
- Mathematics and Numbers
- Times and Dates
- Collection Data Types
- Functools and Itertools
- File formats, encodings, and data persistence
- File and directory handling
- Subprocesses
- Intermediate/Advanced Techniques I
- Advanced Attributes
- Function and Method Decorators
- Context Managers
- Generator Expressions and Generator Functions
- Iterators
- Factory Functions
- Dynamic Code Execution
- Interlude Writing More Efficient Code
- Regular Expressions
- Introduction to Regular Expressions
- Regular Expressions in Practice
- File Globbing
- The “new” regex module
- Databases
- DBM Databases
- SQL Databases
- Object-Relational Mappers
- Networking
- Uploading and Downloading Files
- High-level networking with XML-RPC
- Concurrency
- Introduction
- Using the Multiprocessing Module
- Using the Threading Module
- Intermediate/Advanced Techniques II
- Class Decorators
- Moving from Python 2 to Python 3
- A Brief Introduction to Design Patterns
- Creational Design Patterns
- Structural Design Patterns
- Behavioral Design Patterns
- Parsing
- Writing Hand-Crafted Parsers
- Extending Python
- A very brief introduction to accessing C libraries with ctypes
- Programming Project
Top