Uploaded by Александр Черный

КПК+Занятие+1.1

advertisement
Методика введения понятий
«алгоритм», «программа», «оператор», «транслятор».
Разработка инфографики «История языка Python»
История языка Python
Программирование – довольно широкая прикладная дисциплина, которая
находит приложения в огромном количестве сфер деятельности (как
профессиональной, так и любительской). Как преподавание математики
становится неполноценным без хотя бы коротких справок из истории развития
математики (что можно перенести на любой образовательный курс), так и
погружение в программирование требует такого же подхода; краткое знакомство
должно быть проведено хотя бы с историей используемого инструмента –
историей языка программирования Python.
История создания Python связана с развитием компьютерной техники в 90-е года
прошлого столетия. В то время на рынке появляются персональные компьютеры
и начинает быстро развиваться сеть Интернет. Это привело к созданию новых
языков программирования. Был разработан язык Java (1990–1996 гг.), который
взял многое из С++ и многое привнес для развития сети Интернет. Примерно в
одно время с Java, в 1991 году был предложен миру язык Python. Разработчик
языка – голландский математик Гвидо ван Россум. Он занимался долгое время
разработкой языка ABC, предназначенного для обучения программированию. В
одном из своих интервью он так ответил на вопрос о типе программистов, для
которых Python был бы интересен: «То, что он оказался полезен для обучения
началам программирования в школе или колледже, – счастливая случайность,
обусловленная многими характеристиками ABC, которые я сохранил: ABC был
специально предназначен для обучения программированию непрограммистов».
Вы можете так же рассказать ученикам несколько любопытных фактов:
1. Гвидо ван Россум начал разрабатывать Python в конце 1980-х годов в Нидерландах,
когда он работал в Centrum Wiskunde & Informatica (Центр математики и
информатики). Гвидо был вдохновлен другими языками программирования, такими
как ABC, Modula-3 и С.
2. Предшествующим влиянием на создание Python был язык программирования ABC,
разработанный в 1980-х в Центре математики и информатики. ABC был разработан
для облегчения задач программирования и упрощения синтаксиса. Однако ABC не
получил широкого распространения из-за своей ограниченной функциональности.
3. Гвидо ван Россум хотел создать язык программирования, который сочетал бы
лаконичность
и
читаемость
кода
с
высокой
производительностью
и
расширяемостью. Он ставил перед собой целью создать «читаемый» код, который
был бы легко понимаем даже людьми, не пишущими программы.
4. Первая версия Python, 0.9.0, была выпущена в феврале 1991 года. Она включала
основные концепции, которые с тех пор остались характерными для языка, такие как
четкое выделение блоков кода с помощью отступов (индентации).
5. Гвидо исключительно усердно работал над развитием Python, добавляя новые
возможности и функциональность, которые делали язык более привлекательным для
программистов. Python быстро набрал популярность в академических и научных
кругах, а также в индустрии.
6. В 2008 году была выпущена версия Python 3.0, которая включала набор значительных
изменений и улучшений. Однако в Python 3 были внесены несовместимые изменения
с предыдущей версией, что вызвало некоторые проблемы с переходом на новую
версию. В результате многие проекты продолжали использовать Python 2.7. С этого
момента Гвидо и сообщество разработчиков активно работали над поддержкой и
развитием обеих версий.
7. В июле 2018 года Гвидо ван Россум объявил, что он уходит из своей роли
«Благородного Диктатора вечностей» (Benevolent Dictator For Life, BDFL)
разработки Python. Он решил передать управление проектом другим разработчикам
из сообщества.
При проведении занятия важно отметить, что язык программирования Python не
является исключительно «учебным» языком, ведь Python занимает выдающееся
положение в современной сфере информационных технологий и имеет широкий
спектр применений:
1.
Системное программирование.
2.
Машинное обучение и обработка больших данных.
3.
Разработка программ с графическим интерфейсом.
4.
Разработка динамических веб-сайтов.
5.
Интеграция компонентов.
6.
Разработка программ для работы с базами данных.
7.
Быстрое создание прототипов.
8.
Разработка программ для научных вычислений.
9.
Разработка игр.
Вы можете привести примеры программного обеспечения, которое тем или иным образом
связаны с языком программирования Python, и иллюстрируют наличие инструментов для
решения задач из перечисленных выше областей и демонстрируют их использование на
примере конкретных приложений.
Системное программирование, интеграция компонентов, создание прототипов:
1. Ansible – это инструмент для автоматизации конфигурации и управления системами.
Он использует Python для написания модулей и плагинов, что позволяет управлять
инфраструктурой и настройками серверов.
2. SaltStack – еще один инструмент для автоматизации и управления конфигурацией.
Python используется для создания конфигурационных файлов и скриптов, которые
управляют серверами и устройствами.
3. OpenStack – это платформа для создания облачных инфраструктур. Python является
основным языком программирования для разработки и настройки компонентов
OpenStack.
4. Buildbot – это система непрерывной интеграции и развертывания. Python
используется для создания мастер-серверов, агентов и плагинов, обеспечивающих
автоматическую сборку, тестирование и развертывание приложений.
5. Nagios – это система мониторинга и управления инфраструктурой. С помощью
Python можно создавать плагины для мониторинга различных аспектов системы.
Машинное обучение и обработка больших данных:
1. Google активно использует Python в различных проектах машинного обучения и
искусственного интеллекта. TensorFlow, один из ведущих фреймворков машинного
обучения, разработан с использованием Python.
2. Facebook использует Python для разработки и исследования в области машинного
обучения. Они также поддерживают фреймворк PyTorch, который широко
используется для разработки нейронных сетей.
3. Kaggle – это платформа для соревнований по анализу данных и машинному
обучению. Python широко используется на этой платформе для разработки решений
и моделей.
4. Компания IBM предлагает множество инструментов и библиотек для обработки
данных и машинного обучения на Python, включая IBM Watson Studio.
5. Scikit-learn – это библиотека для машинного обучения на Python предоставляет
множество
алгоритмов
и
инструментов
для
классификации,
регрессии,
кластеризации и других задач.
Разработка программ с графическим интерфейсом:
1. Qt for Python (PyQt и PySide). Qt – это популярный фреймворк для разработки
графических пользовательских интерфейсов. PyQt и PySide – это две основные
библиотеки, которые позволяют использовать Qt в Python. Примером может быть
создание кросс-платформенных приложений с интерфейсом для настольных
компьютеров и мобильных устройств.
2. Kivy – это фреймворк для создания мультимедийных приложений с графическим
интерфейсом, который может работать на различных платформах, включая ПК,
мобильные устройства и даже Raspberry Pi.
3. wxPython – это библиотека, которая предоставляет интерфейс для использования
фреймворка wxWidgets с помощью Python. Она позволяет создавать кроссплатформенные приложения с графическим интерфейсом.
4. Tkinter – это стандартная библиотека Python для создания графических
пользовательских интерфейсов. Она проста в использовании и позволяет создавать
приложения с базовым интерфейсом.
Разработка динамических веб-сайтов:
1. Django – это мощный фреймворк для разработки веб-приложений на Python.
Множество компаний, таких как Instagram, Pinterest, Dropbox и Mozilla, используют
Django для создания своих веб-сайтов и веб-приложений.
2. Flask – это легковесный фреймворк для веб-разработки на Python. Он позволяет
быстро создавать динамические веб-сайты и API. Множество стартапов и малых
проектов используют Flask для разработки своих продуктов.
3. Reddit, один из самых популярных сайтов социальных новостей и обсуждений,
использует Python для своей бизнес-логики и создания динамических веб-страниц.
4. SurveyMonkey – это платформа для создания опросов и анкет. Они используют
Python для создания динамического интерфейса, который позволяет пользователям
создавать и анализировать опросы.
5. Spotify использует Python для создания динамического веб-интерфейса, который
позволяет пользователям стримить музыку, создавать плейлисты и делиться
контентом.
Разработка программ для работы с базами данных:
1. SQLAlchemy – это библиотека для работы с реляционными базами данных на Python.
Она предоставляет ORM (Object-Relational Mapping) и позволяет создавать, изменять
и взаимодействовать с базами данных с использованием объектно-ориентированного
подхода.
2. Django включает в себя собственный ORM (Django ORM), который облегчает работу
с реляционными базами данных в проектах, созданных на этом фреймворке. Django
ORM предоставляет удобные инструменты для создания моделей и выполнения
запросов к базе данных.
3. MongoDB – это нереляционная база данных, а PyMongo – это официальная
библиотека Python для взаимодействия с MongoDB. Она позволяет создавать,
изменять и извлекать данные из базы данных MongoDB.
4. SQLite – это встроенная база данных, которая не требует сервера. Python имеет
встроенную поддержку для работы с SQLite, что упрощает создание локальных баз
данных.
5. PostgreSQL – это мощная реляционная база данных с открытым исходным кодом. С
помощью библиотеки psycopg2 можно взаимодействовать с PostgreSQL на Python.
Разработка программ для научных вычислений:
1. NumPy и SciPy – это библиотеки для научных вычислений на Python. Они
предоставляют функции для работы с многомерными массивами, линейной
алгеброй, оптимизацией, статистикой и другими научными операциями.
2. Matplotlib и Seaborn – это библиотеки для визуализации данных. Они используются
для
создания
исследований.
графиков,
диаграмм
и
визуализации
результатов
научных
3. Pandas – это библиотека для анализа и манипулирования данными. Она широко
используется в научных исследованиях для обработки и анализа данных.
4. Astropy – это библиотека для астрономических вычислений. Она предоставляет
инструменты для работы с астрономическими данными, включая координаты,
времена, фотометрию и спектры.
5. BioPython – это библиотека для биоинформатики. Она предоставляет инструменты
для работы с биологическими данными, анализа последовательностей ДНК, РНК и
белков.
Создание компьютерных игр:
1. Battlefield 2, популярный шутер от первого лица, использовал Python для разработки
скриптов и модов, позволяющих создавать дополнительные контент и изменять
игровую логику.
2. World of Tanks – это многопользовательская онлайн-игра о бронетехнике. Python
используется для создания серверных компонентов, управления серверами и
разработки инструментов для анализа игровой статистики.
3. Pygame – это библиотека для создания игр на Python. Она предоставляет
инструменты для создания 2D игр и визуализации графики.
Лекционный материал и последующая дискуссия, касающиеся истории
становления языка программирования Python и иллюстрация конкретных
примеров использования данного языка в практической деятельности, должны
способствовать развитию мотивационной среды и подготовить обучающихся к
последующему усвоению уже конкретной информации.
А, почему язык назвали Python?
Ничего общего с большой и грозной змеёй это название не имеет! Гвидо ван Россум назвал
язык в честь популярного британского комедийного телешоу 1970-х «Летающий цирк
Монти Пайтона», Автор был большим поклонником этого телешоу, как и многие другие
разработчики того времени, поскольку в этом шоу прослеживалась некая параллель с миром
компьютерной техники.
Методика введения понятий «алгоритм», «программа», «оператор»,
«транслятор»
Алгоритм — это последовательность каких-либо действий для исполнителя,
записанная на формальном языке и приводящая к заданной цели за конечное
число шагов.

Начните с объяснения общего понятия алгоритма как последовательности шагов,
предназначенных для решения конкретной задачи.

Приведите примеры алгоритмов из повседневной жизни: например, алгоритм
приготовления завтрака или алгоритм поиска книги в библиотеке.

Поясните, что алгоритмы являются базовой составляющей программирования и
используются для создания программ.
Исполнитель — это человек, животное или техническое устройство,
способное выполнять определенный набор команд.
Важно, что алгоритм всегда предназначается для конкретного исполнителя.
Формальный язык — это язык, который содержит конечное количество
синтаксических конструкций и все его конструкции однозначно понимаются
исполнителем, для которого он создан.
Формальные исполнители характеризуются: кругом решаемых задач, средой
исполнения, системой команд, системой отказов от исполнения, которая
включается при невозможности выполнения алгоритма в конкретных условиях.
Объясните, что компьютер является примером исполнителя, способного выполнить
программу.
Программа – представление алгоритма на специальном формальном языке,
который нужно выполнить с исходными данными и получить как результат
выходные данные. Исполнителем программы является компьютер или гаджет.

Определите
программу
как
набор
инструкций,
написанных
на
программирования (формальном языке), чтобы решить определенную задачу.
языке

Приведите примеры программы, например программы для вычисления суммы чисел
или программы для создания графического интерфейса.
Оператор – это элемент языка, задающий полное описание действия, которое
необходимо выполнить в программе.
Каждый
оператор
представляет
собой
законченную
фразу
языка
программирования и определяет некоторый вполне законченный этап обработки
данных. В состав операторов могут входить ключевые слова, данные, выражения
и другие операторы. В английском языке данное понятие обозначается словом
statement, означающим также предложение.

Объясните, что оператор – это символ или ключевое слово, используемое для
выполнения операций над данными.

Будет не лишним создать ассоциации, например, с арифметическими операторами
или логических операторами, с которыми ученики должны быть знакомы.
Для выполнения программы компьютером или гаджетом, необходима
программа-посредник, которая называется транслятором.
На основе транслятора компьютер (гаджет) преобразует вводимые в него
программы на машинный язык нулей и единиц (объектный код), поскольку
только он является языком процессора. Трансляторы реализуются в виде
компиляторов или интерпретаторов. С точки зрения выполнения принципы
работы компилятора и интерпретатора существенно различаются.

Объясните, что транслятор – это программное обеспечение, которое переводит
исходный код на одном языке программирования в код на другом языке, который
может быть исполнен.

Укажите на то, что компиляторы и интерпретаторы являются разновидностями
трансляторов.
Компилятор (англ. compiler – составитель, собиратель) читает всю программу
целиком, делает ее перевод и создает законченный вариант программы на
машинном
языке,
который
затем
выполняется.
Результат
работы
компилятора – бинарный исполняемый файл.

Опишите, что компилятор – это программа, которая переводит исходный код на
языке программирования в машинный код целиком, перед тем как программа будет
выполнена.

Приведите примеры компилируемых языков программирования, о которых дети
могли слышать ранее (C и C++, Rust, Pascal, и т.д.).
Интерпретатор (англ. Interpreter – истолкователь, устный переводчик)
переводит и выполняет программу строка за строкой.

Расскажите, что интерпретатор – это программа, которая читает исходный код,
представленный на языке программирования, построчно и немедленно выполняет
его.

Приведите примеры интерпретируемых языков программирования, с которыми дети
могут быть знакомы (Java, JavaScript, Ruby и т.д.).
После того, как программа откомпилирована, ни исходный текст программы, ни
компилятор более не нужны для исполнения программы. В то же время
программа, обрабатываемая интерпретатором, должна заново переводиться на
машинный язык при каждом очередном запуске программы. То есть исходный
файл является непосредственно исполняемым.
Дополнительная информация об интерпретации и компиляции.
Если перед Вами подготовленная аудитория, то Вы можете дать больше информации о
сравнении этих двух подходов.
Интерпретация:
1. Интерпретируемые языки обычно обеспечивают быструю разработку благодаря
более высокому уровню абстракции и меньшим затратам на компиляцию.
2. В интерпретируемых языках типы данных определяются динамически во время
выполнения.
3. Ошибки обычно обнаруживаются исходя из выполнения, что может упростить
процесс отладки.
4. Интерпретируемые программы могут быть более гибкими, так как они могут
изменять свое поведение на ходу.
5. Не требуется времени на компиляцию, что может сократить время разработки.
Компиляция:
1. Компилированные программы обычно работают быстрее, так как машинный код
выполняется напрямую.
2. Компилируемые языки часто используют статическую типизацию, что может помочь
предотвратить ошибки типов на этапе компиляции.
3. Компиляторы
могут
проводить
оптимизации
кода,
что
может
улучшить
производительность.
4. Так как машинный код не доступен в исходной форме, это может улучшить
безопасность программы.
5. Программы, скомпилированные в машинный код, обычно требуют меньше памяти и
ресурсов во время выполнения.
Язык Python является интерпретируемым языком. Для запуска программ на
языке Python необходима программа интерпретатор (виртуальная машина)
Python. Данная программа скрывает от Python-программиста все особенности
операционной системы. Поэтому, создав программу на Python в системе
Windows, ее можно запустить, например, в GNU/Linux и получить такой же
результат.
Скачать и установить интерпретатор Python можно совершенно бесплатно с
официального
сайта:
http://python.org/.
интерпретатор Python версии 3 или выше 3.
Для
работы
нам
понадобится
Download