Software Development

Advanced Python

Overview

This course teaches many advanced concepts and capabilities of the Python programming language. Some of the topics include the Python object model, packaging and distributing projects, asynchronous I/O, distributed computing, message passing and idiomatic data handling. Upon completion of the course students will be able to write Python programs that utilize many of the advanced features of the language.

Who Should Take This Course

Prerequisites

Completion of our basic Python Programming course or equivalent programming experience in Python.

Why You Should Take This Course

Upon completion of this course, the student will be able to:

  • Write Python code that adheres to fundamental Python guidelines and principles.
  • Write programs that utilize the benefits of custom classes when developing using an Object-Oriented model such as Python.
  • Implement Python programs in a functional style.
  • Create Python distributions to share and collaborate effectively.
  • Use Asynchronous I/O to write single-threaded concurrent code
  • Use distributed computing to split up computations across multiple resources
  • Use idiomatic data handling for the that uses the obvious way to solve the task at hand.
  • Write Python programs that run tasks in parallel or across distributed systems.

Course Outline

Advanced Python

Lesson 1: Review of Python

Topic 1A: Keywords
Topic 1B: Variables
Topic 1C: Strings
Topic 1D: Basic Containers
Topic 1E: Functions

Lesson 2: Functional Programming

Topic 2A: Anonymous Functions/lambdas
Topic 2B: Recursion
Topic 2C: Pure Functions
Topic 2D: First-Class Functions
Topic 2E: Closures
Topic 2F: Python Scope

Lesson 3: Classes & Objects
Lesson 4: Idiomatic Data Handling
Lesson 5: Metaprogramming
Lesson 6: Packaging and Distributing Python
Lesson 7: Advanced I/O
Lesson 8: File I/O
Lesson 9: Python Parallelism

Topic 9A: Concurrency vs. Parallelism
Topic 9B: Threads in Python
Topic 9C: Python GIL
Topic 9D: Simple fork/exec Model
Topic 9E: Multiprocessing in Python
Topic 9F: Worker Pools
Topic 9G: Queues and Pipes
Topic 9H: Distributed Computing
Topic 9I: Message Passing Interface

Search UMBC Training Centers