Practical Python Programming for Engineers

Disciplines: Data Science and Engineering Analytics

Course Description

In this course, students will take their programming skills to the next level by tackling challenging real-world case studies, in which we'll solve engineering and business problems together by designing and building useful and robust software systems. This is a course about programming as an engineering discipline. Students will learn how to translate E&P business challenges into programming tasks, and in turn solve these as engineering problems. This is not a Python language class or a theoretical computer science class, but students will learn some advanced skills in these areas along the way.

We'll cover:

  • A quick review of the semantics of the Python language, using an "abstract machine" model to build our intuitions.
  • The ongoing "software crisis," and how we might take an engineering approach to programming, using tools like type systems and automated testing.
  • How to apply the key engineering skill of functional decomposition to software design.
  • Data-driven design as an approach to simplify programs by moving repetitive logic from code into data structures.
  • How to use the NumPy library and other tools to write fast numerical code in Python.
  • Object-oriented programming as a way to separate interface from implementation and make our programs for flexible and future-proof.

Along the way, we'll also see:

  • How to use Python's various built-in data structures.
  • Why computer scientists draw trees upside down, and how to pass Google's coding interview.
  • A very little bit about how modern computers actually work, a subject Python takes great efforts to obscure.
  • Python tidbits including: error handling, input and output, lazy evaluation and stream processing, "code sandwiches" for resource management and cleanup, and how to use the Python standard library to parse CSV files and perform other common tasks without third-party add-ons.
  • A lot of complaints about, and a little praise for, Python.

To get there, we'll solve realistic case studies by building:

  • A tool for making volumetric reserves estimates.
  • A Monte Carlo simulation for economic modeling.
  • A faster version of said simulation.
  • A flexible decline-curve analysis system.

Learning Level


Course Length

2 Days

Why Attend

The 21st century petroleum engineer faces new and extraordinary challenges. They must learn to do more with less, solving ever-more-difficult problems with limited resources, in the face of a highly dynamic industry and market. The skillful use of our era's most defining invention—the general-purpose computer—is the most powerful force multiplier an individual engineer can bring to bear. This means embracing computer programming as an engineering discipline and a core competency.

Engineers and other petroleum technical professionals are uniquely well-equipped to learn programming skills, the same way as any other engineering discipline: from the fundamentals. In addition to empowering the individual engineer, programming is also the first step on the path to learning data science, machine learning, AI, and other emergent disciplines at the intersection of engineering, statistics, and computing.

Who Attends

Petroleum engineers and other technical professionals with an interest in computer programming or its applications, including data science and machine learning. (Ideally, this would be all engineers!) Some programming experience at the “intro course” level will be helpful but is not required. If you’ve wondered where to go next after the thirty-seventh free online course which got you to “hello world” but left you clueless how to apply these tools to real problems, this is the course for you.

Special Requirements

Attendees will need a laptop and should ideally set it up before the course. SAGA Wisdom has agreed to grant limited-time access to the online version of the course to attendees for a period before and after the session, so they will be able to watch video instructions for this setup. Assistance with this setup will be available on the first day, if needed.


1.6 CEUs are awarded for this 2-day course.

Cancellation Policy

All cancellations must be received no later than 14 days prior to the course start date. Cancellations made after the 14-day window will not be refunded. Refunds will not be given due to no show situations.

Training sessions attached to SPE conferences and workshops follow the cancellation policies stated on the event information page. Please check that page for specific cancellation information.

SPE reserves the right to cancel or re-schedule courses at will. Notification of changes will be made as quickly as possible; please keep this in mind when arranging travel, as SPE is not responsible for any fees charged for cancelling or changing travel arrangements.

We reserve the right to substitute course instructors as necessary.


None Derrick W. Turk is the founder and president of terminus, LLC, which provides technical consulting, training and coaching, and custom software development services to clients in E&P, finance, and other industries. His 15 years of professional experience have included work in operations, completions, reservoir engineering, reservoir modeling and simulation, and data science and machine learning in addition to software development. Mr. Turk holds a BS in Mechanical Engineering from the University of Texas and has been a member of SPE since 2010.

None Katherine Turk, co-owner and consultant at terminus, LLC, has been involved in writing custom software as a hobbyist for many years before taking her passion full time by joining terminus in 2020. Prior to that, Katherine spent over 10 years in the chemical manufacturing industry in various roles including operations management, project execution, commissioning and start up, and maintenance. She has many years of experience generating statistical models to track process changes and project improvements, training technical professionals to work with code, and automating daily work tasks. At terminus, Katherine assists clients with everything from data pipeline architecture and implementation, to workflow automation, to user interface design. Mrs. Turk holds a BS in Mechanical Engineering from the University of Texas at Austin.