Course Description

This course utilizes the power and flexibility of the Python language to apply practical programming strategies such as the functional paradigm, modularity, parallelism, concurrency, metaprogramming, reactive programming, microservices, and design patterns. Students will learn when and how to apply their knowledge and understanding to achieve optimal solutions to a variety of software problems. Prior knowledge of the Python language is required for this course.

Course Outline

  • Modularity
  • Functional Programming
  • Metaprogramming
  • Unit Testing
  • Parallelism and Concurrency
  • Reactive Programming
  • Microservices
  • Design Patterns

Learner Outcomes

  • Organize code elements into logically related and lucidly defined packages, modules, and components
  • Develop metaprogramming software features
  • Assemble unit tests
  • Employ concurrency
  • Recognize opportunities for reactive programming approaches
  • Identify applications that can benefit from a microservices-oriented design
  • Select and implement design patterns within appropriate contexts


Intro to Programming Python and Python Programming Fundamentals, or demonstration of equivalency.


You will have access to your course materials on the published start date OR 1 business day after your enrollment is confirmed if you enroll on or after the published start date.

Software required: Anaconda, Visual Studio Code, Jupyter Notebook.
Hardware required: Computer with Windows or Mac OS preferred.

Applies Towards the Following Certificates

Classes are offered according to the schedule on the respective Certificate or Program Page. Please click on the Request Information below to be promptly notified when enrollment opens.