Python – платформа для проведения научно-технических и инженерных расчётов



Автор: Тихонов Антон Иванович, кандидат технических наук, старший научный сотрудник
Национальный исследовательский университет "МЭИ"
В докладе рассмотрен курс лекций, посвященный инженерным и научно-техническим расчетам на Python. Электронный учебно-методический комплекс по курсу содержит более 50 часов видео, и более 100 примеров решения задач. Практически все занятия построены на решении задач, в том числе и при изучении языковых конструкций.

В инженерном образовании важную роль играет умение оперативно проводить многовариантные расчёты, обрабатывать, визуализировать и интерпретировать экспериментальные данные. В докладе рассматривается электронный учебно-методический комплекс, содержащий более 50 часов видеозанятий, более 100 примеров решения задач.

Выбор Pythonв качестве платформы обусловлен следующими соображениями. Во-первых, воrруг Pythonсоздана обширная экологическая среда, включающая в себя огромное число библиотек для проведения научно-технических расчётов, обработки и визуализации данных, решения специализированных задач. Во-вторых, Pythonзавоёвывает популярность не только как язык для проведения расчётов, но и как первый язык для обучения программированию, например, в заметке http://habrahabr.ru/post/229063/ говорится, что «он вышел на первое место для обучения программированию в университетах США». Ортогональность языка существенно облегчат обучение – новые понятия и конструкции вводятся только тогда, когда они нужны для решения задач. В-третьих, наличие качественных графических пактов обеспечивает наглядность обучения – изучение языковых конструкций можно иллюстрировать графически, не говоря уже о решении научных и инженерных задач, результаты решения которых легко представить в наглядной графической форме. Например, потерю устойчивости решений уравнений математической физики при использовании явных разностных схем при можно показать в реальном времени с помощью анимации, встроенной в библиотеку matplotlib. В-четвертых, интерпретаторы Pythonимеются практически для всех широко используемых в настоящее время операционных систем, что позволяет, например, вести разработку на Windows, а проводить вычисления на серверах под управлением Linux. В-пятых, Python –высокоуровневый и лаконичный язык. Это позволяет до минимума сократить цикл разработки программ, проведение многовариантных расчётов, обработки и представления результатов. Несмотря на интерпретируемый характер языка, большинство библиотек, включая numpy, scipy, matplotlib, panda, написаны на С и позволяют производить высокопроизводительные вычисления. В тех случаях, когда вычислительных мощностей для решения задачи не хватает, ее фрагменты могут быть переписаны на специальном расширении языка Cython или непосредственно на Cи скомпилированы, т.к. Pythonобладает удобными интерфейсами для взаимодействия с С и Fortran. В-шестых, сама платформа и огромное большинство библиотек находятся в свободном доступе и бесплатны. Наконец, экосиcтема Pythonпредполагает замкнутость, то есть в отличие от других платформ средствами языка пишутся не только программные модули, но и, например, конфигурационные файлы.

Немаловажным для использования в учебным процессе является простота установки и переносимость используемой платформы. Имеются специальные дистрибутивы для проведения научных расчётов, наиболее популярными из которых  являются EthoughtCanopy (https://www.enthought.com/products/canopy/) и Anaconda (https://store.continuum.io/cshop/anaconda/). Непосредственно на занятиях удобно использовать переносимые дистрибутивы PortablePython (https://store.continuum.io/cshop/anaconda/) и WinPython (https://winpython.github.io/). Перечисленные дистрибутивы имеют примерно одинаковый набор библиотек, который может быть расширен в процессе работы за счёт встроенных менеджеров пакетов, и интегрированные системы разработки.

При проведении занятий в компьютерных классах университета автор в основном  использовал  PortablePythonв сочетании со встроенной интегрированной системой разработки PyScripter. Практически все занятия построены на решении задач, в том числе и при изучении языковых конструкций. На первом занятии студентам передаётся комплект, включающий в себя архив с дистрибутивом, записи видеозанятий  и индивидуальные наборы задач, которые должны быть решены для получения зачёта. Кроме того, студенты должны выполнить расчётное задание, связанное с магистерской работой.

Уровень образования  Высшее профессиональное
Ключевые слова  Python, инженерные расчеты, научно-технические расчеты