Advanced Python

Intro to computer programming

Course Description

In this 80-hour hands-on course trainees become proficient in object-oriented programming in Python, as well as in a number of advanced concepts including ternary conditional operators, variadic functions, anonymous lambda functions, iterables and iterators, generator functions and generator expressions, filters, maps, decorators, object introspection, JSON, XML, and the basics of working with big data. 


This course has Python Fundamentals as a prerequisite.

Learning Outcomes

Trainees will be able to:

  • Explain and relate basic concepts of object-oriented programming (OOP) including encapsulation, classes, instances, attributes, methods, and constructors.
  • Explain and relate advanced concepts of OOP including inheritance, polymorphism, multiple inheritance, static methods, and object introspection.
  • Implement OOP principles in a number of training classes and a simplified version of Python Turtle Graphics.
  • Upgrade the Graphics Editor from Python Fundamentals to an object-oriented design.
  • Identify problems of recursive nature and use recursion to solve them.
  • Recursively flatten lists and parse expressions in Polish (prefix) notation.
  • Use recursion to work with trees and binary trees.
  • Make Python programs interactive.
  • Work with variadic functions using *args and **kwargs.
  • Use anonymous (lambda) functions.
  • Use iterators to efficiently step through iterables.
  • Make iterators via generator functions and generator expressions.
  • Apply filters and maps to data.
  • Use names and namespaces.
  • Create modules and packages.
  • Define and use decorators.
  • Read and write JSON and XML data.
  • Store and clean data with Pandas Data frames.
  • Visualize data and the results of linear regression analysis with Seaborn.
  • Analyze data with Statsmodels, visualize the results with Matplotlib.

Equipment Requirements

Computer, laptop or tablet with Internet access, web browser, and email.

Course Structure and Length

This course is self-paced, and trainees practice each skill and concept as they go.  Automatic feedback is built into the course for both practices and quizzes.

The course is divided into four Units, and each Unit is composed of five Sections. Each Section consists of 7 instructional/practice levels, a quiz, and a master (proficiency) level. Trainees can return to any level or quiz for review.

This table illustrates the course structure as units, sections, and levels.

While learning skills in the Advanced Python course, trainees can practice writing code, work with libraries and create portfolio artifacts with NCLab’s Python app.

Advanced Python is designed to take approximately 80-120 hours. Since the course is self-paced, the amount of time required to complete the course varies from trainee to trainee. Trainees are responsible for learning both the tutorial content and the skills acquired through practice.