Python или PascalABC.NET как первый язык программирования

Автор: Губанова О.А., Бордюгова Т.Н.

Журнал: Грани познания @grani-vspu

Рубрика: Педагогические науки

Статья в выпуске: 6 (89), 2023 года.

Бесплатный доступ

Рассматривается проблема выбора первого языка программирования для школьников. Проанализированы учебники школьного курса информатики. Приведены примеры решения межпредметной задачи на разных языках программирования.

Информатика, язык программирования, межпредметные связи, образование

Короткий адрес: https://sciup.org/148327470

IDR: 148327470

Текст научной статьи Python или PascalABC.NET как первый язык программирования

С 1985 г. учебный предмет «Информатика» стал обязательным во всех образовательных учреждениях среднего образования СССР. Предмет изучался по единому учебнику А.П. Ершова «Основы информатики и вычислительной техники» [3]. В нем отсутствовала привязка к какому-либо реальному языку программирования, изучался только алгоритмический языка. Со временем для записи алгоритмов использовалась упрощенная и адаптированная к школе русскоязычная система программирования КуМир (Комплект Учебных МИРов), которая применяется и в настоящее время. Через несколько лет в школах появился Basic, а позже Pascal и фактически стал стандартом в школьной информатике. Так продолжалось около 15 лет. И лишь в начале 2000-х годов начали осторожно появляться и другие языки. Cейчас перед школьным учителем стоит важный вопрос о выборе языка программирования, с которого стоит начать обучение.

Рассматривая данный вопрос, обратимся к современным учебникам, которые входят в Федеральный перечень учебников [8], к таким относятся учебные пособия авторских коллективов Л.Л. Босова, А.Ю. Босова для 7–11 классов [2] и К.Ю. Поляков, Е.А. Еремин для 10–11 классов [6]. Оба авторских коллектива включили к содержание несколько языков программирования, а именно Pascal и Python. Разница только в том, что Л.Л. Босова, А.Ю. Босова язык Pascal выделяет как основным, а авторский коллектив в лице К.Ю. Полякова, Е.А. Еремина – Python. Рассмотрим эти два языка более подробно.

Python – язык программирования, который был создан голландским программистом Гвидо ван Россумом в 1991 г. Язык назван в честь любимого телешоу Гвидо ван Россума «Летающий цирк Монти Пайтона» (Monty Python’s Flying Circus) [4].

Python является мультипарадигменным языком программирования, т. е. его программные возможности созданы на основе нескольких, зачастую не родственных с ним языков, за счет этого поддерживает процедурное, структурное, объектно-ориентированное и функциональное программирование. Также Python является языком общего назначения и имеет строгую динамическую типизацию, т. е. не требуется указывать типы данных, т. к. определяются автоматически, к тому же могут переопределяться в процессе выполнения программы. В то же время использование данных корректного типа контролируется в процессе выполнения программы. Понятно, что в полной мере это можно реа- лизовать только в интерпретаторах, поэтому существующие компиляторы языка Python имеют ограниченное применение [7].

Ядро у языка небольшое, но вся его функциональность выстроена в библиотеки, которые нужно подключать к программному коду, что значительно может усложнить процесс изучения языка для новичков.

В настоящее время Python является популярным языком программирования, который выбирают школьные учителя. Одной из причин является минимализм синтаксиса данного языка, т. е. код, написанный на нем, явно будет проще в понимании и короче в отличие других языков программирования.

Также хотелось бы отметить современность языка, а именно присутствие в нем «высокоуровневых структур данных, таких как списки, длинная арифметика, множества, ассоциативные массивы. Кроме этого, Python включает в себя обширную библиотеку, с помощью которой легко можно разрабатывать различные графические приложения и веб-сайты» [1].

Однако, «использование Python в качестве первого языка программирования может быть неудачным решением, т. к. те, кто учился программировать на Python, не хотят переходить на другие языки. А это может привести к появлению программистов, которые работают только на Python. Связано это с тем, что они не готовы к преодолению дополнительных ограничений ради повышения эффективности программы. Однако это не исключает полезность изучения Python в качестве второго языка программирования в классах с углубленным уровнем изучения информатики» [9].

Еще одним популярным языком программирования является Pascal, который был создан швейцарским ученым Никлаусом Виртом в 1971 г., изначально ориентированный на обучение. Его конструкции просты, логичны и понятны, компиляция быстрая, а полученная программа имеет высокую скорость исполнения. На его изучении выросло целое поколение людей. Еще одним положительным моментом является простой переход c КуМир на Pascal, для этого как правило достаточно лишь русскоязычные конструкции заменить англоязычными. Это обеспечивает высокую преемственность языков при изучении информатики.

Pascal массово изучался на протяжении многих лет и не спешил сдавать свои позиции, оставаясь самым массовым языком примерно до 2018 г. Конечно, спустя столько времени Pascal перестал соответствовать современным идеям и технологиям программирования. Причина все та же: стремясь к простоте и минимализму, Вирт Н. не заложил в свой язык способности к развитию. Это понимал и сам Вирт. Не случайно уже в 1980 г. на базе Pascal появляется язык Modula, а позднее - Oberon. Однако эти языки не достигли и доли популярности Pascal.

За полвека Pascal пережил множество воплощений – в частности, Turbo Pascal, Borland Pascal, Object Pascal, Free Pascal, Borland Delphi, Pascal ABC и PascalАВС.NЕТ.

В настоящее время в большинстве школ России установлены различные версии среды PascalАВС. NЕТ, а язык часто называют PascalABC, внося путаницу из-за проекта Pascal ABC – интерпретатора Turbo Pascal, написанного под Windows на Delphi и закрытого авторами в 2007 г.

Все возможности классического Pascal, Object Pascal среды Delphi и многочисленные собственные расширения делают PascalABC.NET мощным современным языком со строгой статической типизацией. На базе данного языка на платформе Microsoft.NET Framework создана среда разработки и отладки программ, и что немаловажно способная поддерживать технологию Intellisense. Чтобы запустить консольные компилятор в операционных системах, таких как Linux и MacOS, требуется среда проекта Mono.

PascalABC.NET является мультипарадигменным языком, так же, как и вышеупомянутый язык программирования Python. Однако в отличие от Python в PascalАВС.NЕТ есть возможность одну и ту же задачу решить несколькими различными способами, тем самым подобрать самый оптимальный вариант. Хотелось бы отметить, что язык программирования PascalABC.NET впитал в себя неко- торые особенности языков C#, Python и Haskell, благодаря этому для имеющих опыт в создании программ и для начинающих программирование является простым и комфортным. Также его стандартный комплект содержит несколько дополнительных библиотек, но при обычном использовании нет необходимости в их подключении, т. к. практически все возможности языка PascalАВС.NЕТ содержатся в его ядре [5].

Задача. Составить программу определения наибольшего общего делителя (НОД) двух натуральных чисел.

Для решения данной задачи необходимо вспомнить материал 5-6 класса по математике, а именно Алгоритм Евклида. Заключается он в следующем, наибольший общий делитель двух натуральных чисел равен наибольшему общему делителю их положительной разности (модуля их разности) и меньшего числа.

Запишем алгоритм Евклида в виде математической модели: если А>В, то НОД(А, В) = НОД(А - В, В). Также при решении стоит учесть, что НОД(А, А) = А.

Получаем следующие шаги алгоритма:

  • 1    шаг. В случае если числа равны, то в качестве ответа берется любое из них, в противном случае выполнение алгоритма продолжается;

  • 2    шаг. Большее число заменить результатом разности данных чисел;

  • 3    шаг. Вернуться к выполнению 1 шага.

Для наглядности опишем алгоритм Евклида в виде блок-схемы (см. рис.):

Рис. Алгоритм Евклида в виде блок-схемы

По данной блок-схеме можно заметить, что алгоритм представляет собой цикл-пока с вложенным ветвлением. В ветвлении большее из двух чисел заменяется результатом их разности, а сам цикл повторяется до тех пор, пока не получатся равные значения А и В.

Рассмотрим применение этого алгоритма для чисел А=48, В=18 и составим трассировочную табл. 1.

Таблица 1

Трассировочная таблица

Шаг

Операция

А

В

Условие

1

ввод А

48

2

ввод В

18

3

А≠В

48≠18, да

4

А>В

48>18, да

5

А:А-В

30

6

А≠В

30≠18, да

7

А>В

30>18, да

8

А:А-В

12

9

А≠В

12≠18, да

10

А>В

12>18, нет

11

В:В-А

6

12

А≠В

12≠6, да

13

А>В

12>6, да

14

А:А-В

6

15

А≠В

6≠6, нет

16

вывод А

6

17

конец

Значит, НОД(48, 18) = НОД(6, 6)=6.

Таблица 2

Python

def get_nod(A, B):

while A != B:

if A > B:

A = A - B

else:

B = B - A

return A

A, B = map(int, input().split())

A = get_nod(A, B) print(A)

PascalABC.NET

begin

var (A, B):=readinteger2();

while A<>B do

if A>B then A:=A-B else B:=B-A;

A.Print

end.

Итак, мы наглядно убедились, что с помощью обоих языков программирования можно реализовывать межпредметные связи на уроках информатики в школе.

Таким образом, Python - это интерпретируемый язык программирования с акцентом на читаемость кода и простоту использования. Он имеет богатый выбор библиотек и фреймворков, что делает его мощным инструментом для разработки веб-приложений, анализа данных, искусственного интеллекта и других областей. Python имеет динамическую типизацию, что означает, что вам не нужно объявлять типы переменных явно. У него простой и понятный синтаксис, который делает его привлекательным для разработчиков всех уровней.

PascalABC.NET - это современный диалект языка Pascal, который создан специально для обучения программированию. Он имеет простой и понятный синтаксис, что делает его отличным выбором для начинающих программистов. Также PascalABC.NET обладает сильной типизацией, что означает необходимость явно указывать типы данных для переменных.

Выбор между PascalABC.NET и Python зависит от ваших потребностей и целей. Если вы только начинаете изучать программирование, PascalABC.NET может быть хорошим выбором, поскольку он специально создан для обучения. Однако, если вам интересны широкие возможности исследования и разработки, а также применение в различных областях, Python обычно предпочтительнее.

Список литературы Python или PascalABC.NET как первый язык программирования

  • Босова Л.Л. Как учат программированию в XXI веке: отечественный и зарубежный опыт обучения программированию в школе // Информатика в школе. 2018. № 6(139). С. 3-11. EDN: XZOOJV
  • Босова Л.Л., Босова А.Ю. Информатика и ИКТ. Учебно-методический комплекс для 7-11 классов. 6-е изд. М.: Бином. Лаборатория знаний, 2016.
  • Ершов А.П. [и др.]. Основы информатики и вычислительной техники: пробное учебное пособие для ср. уч. заведений: в 2-х ч. М.: Просвещение, 1985. EDN: UERGRZ
  • Лутц М. Изучаем Python. 3-е изд. СПб.: Символ Плюс, 2009.
  • Осипов А.В. PascalABC.NET: выбор школьника. Ч. 1. 2-е изд., испр. и доп. Ростов н/Д.; Таганрог: Изд-во Южного федерального университета, 2020.
  • Поляков К.Ю., Еремин Е.А. Информатика. 10-11 классы. УМК для старшей школы. М.: Бином, 2014.
  • Самыкбаева Л., Беляев А., Палитаев А. [и др.] Программирование на языке Python для школьников. Бишкек: Изд-во фонда "Сорос-Кыргызстан", 2019.
  • Федеральный перечень учебников. Приказ № 858 от 21.09.2022. [Электронный ресурс]. URL: https://fpu.edu.ru/uploads/files/873b41e86b55044f2c596d64a47a1fd9.pdf (дата обращения: 25.10.2023).
  • Шитова Т.Ф., Гончарова В.А. Новые информационные технологии в образовании // Новые информационные технологии в образовании: применение технологий 1С в условиях модернизации экономики и образования: сб. науч. тр. 16-й Междунар. науч.-практич. конф. (г. Москва, 2-3 фев. 2016 г.). М.: ООО "1С-Паблишинг", 2016. С. 290-293. EDN: XDPSYL
Еще
Статья научная