Какой язык программирования изучать в средней школе?
Раздел «Алгоритмы и элементы программирования» в курсе информатики средней школы является одним из самых сложных для изучения. Тем не менее, в требованиях ФГОС среди планируемых предметных результатов...
Раздел «Алгоритмы и элементы программирования» в курсе информатики средней школы является одним из самых сложных для изучения. Тем не менее, в требованиях ФГОС среди планируемых предметных результатов есть следующее: «создавать на алгоритмическом языке программы для решения типовых задач». Я знаю примеры, когда в школах отказываются от изучения языка программирования и рассматривают поверхностно только алгоритмические конструкции, основываясь на нехватке времени и сложности изучаемой темы.
На мой взгляд, это глубоко ошибочная позиция. Сегодня современные дети владеют IT-технологиями зачастую лучше, чем учитель, поскольку они погружены в них, это часть их жизни. Но развитие алгоритмического и логического мышления отстает от сверстников поколением старше. Именно математика и программирование может спасти ситуацию.
Но какой язык программирования изучать в школе? Сейчас в большинстве случаев это Pascal, реже можно встретить С++ и Python. На языке Pascal выросло целое поколение программистов. Преклоняюсь перед его компиляторами, которые «терпят» самые непредсказуемые эксперименты детей, а в ответ на них просто и спокойно «отвечают», что те сделали не так.
Куда сложнее с С++ и Python. Необходимо целое искусство установить среду программирования (IDE) и компилятор на свой компьютер. Но с этим стоит помучиться! Мы будем вознаграждены практически неограниченными возможностями системы, быстродействием в случае с С++ и универсальностью работы с данными в случае с Python. А что Pascal? Pascal сегодня скорее мертв, чем жив. Сейчас он не применяется на практике, и ребята это знают. Мотивация как таковая пропадает напрочь.
Мне в своей практике приходилось использовать все три языка. Хочу поделиться некоторыми своими размышлениями по этому поводу.
Сравним некоторые функциональные возможности и удобство применения.
Ввод/вывод. В С++ используется потоковый ввод/вывод данных. Первоначально ребятам нужно объяснить, что такое поток, формат операторов ввода/вывода, не забыть про стандартную библиотеку iostream. Затем нужно рассмотреть форматный вывод данных с использованием библиотеки iomanip, управляющие последовательности и манипулятор endl.
В языке Pascal используются аналогичные конструкции, за исключением потоков ввода/вывода. С этим здесь, пожалуй, проще.
Наиболее простой вход в язык все же у Python. Пара строк – и программа готова! Но не стоит относиться к нему легковесно. Это мощнейшая система для разработки проектов. И что легко вначале, не означает, что так же будет в дальнейшем. Также важно предупредить ребят, что ввод данных осуществляется в строковом типе.
Типы данных. В С++ и Pascal есть множество различных типов данных. Наиболее используемые на начальном этапе представлены в таблице. В Python же с этим все просто: тип данных определяется системой автоматически. Следует обратить внимание на хранение переменных в Python, оно отличается ссылочным типом.
Алгоритмические конструкции в представленных языках работают без особенностей, отличия только в синтаксисе. В Python важны отступы в 4 пробела во вложенных структурах. Он относится к интерпретируемым языкам, это придает особую гибкость, программу можно выполнять построчно.
Что касается среды программирования, я не берусь в данной статье давать какие-либо рекомендации, дабы не быть обвиненной в рекламе продуктов, хотя, конечно, у меня есть свои предпочтения.
Очевидно, что разнообразие представленных сейчас в мире языков программирования (это и неупомянутый JAVA) заставляет учителей информатики быть в курсе трендов IT-индустрии, постоянно изучать новое, и это позволяет говорить с детьми на одном языке. Известно, что дети всегда стремятся к новому с большим интересом.
Конечно, решать учителю, какой язык программирования преподавать, но выбор детей на сегодняшний день явно не Pascal, и в этом я с ними соглашусь, так как он давно уже отстал от своих конкурентов.
С++ и Python – это мощнейшие современные системы программирования с множеством включенных библиотек, на основе которых ведутся разработки крупных проектов, больших данных и искусственного интеллекта. И к этим проектам можно приобщать детей, решая посильные для них задачи. В свою очередь, ребята, добившись малого, хотят достичь большего, и так дальше, к вершинам успеха.
Эти языки хороши в олимпиадном программировании, причем каждый по-своему. Если на языке С++ программируют дети, участвующие во Всероссийской олимпиаде школьников по информатике, в силу быстродействия, то Python предпочитают ребята, участвующие в проектных олимпиадах, таких как НТИ (национальная технологическая инициатива), в направлениях, где программирование – один из основополагающих навыков: (Big Data, финтех, геоинформатика и др.).
Таблица 1
На мой взгляд, это глубоко ошибочная позиция. Сегодня современные дети владеют IT-технологиями зачастую лучше, чем учитель, поскольку они погружены в них, это часть их жизни. Но развитие алгоритмического и логического мышления отстает от сверстников поколением старше. Именно математика и программирование может спасти ситуацию.
Но какой язык программирования изучать в школе? Сейчас в большинстве случаев это Pascal, реже можно встретить С++ и Python. На языке Pascal выросло целое поколение программистов. Преклоняюсь перед его компиляторами, которые «терпят» самые непредсказуемые эксперименты детей, а в ответ на них просто и спокойно «отвечают», что те сделали не так.
Куда сложнее с С++ и Python. Необходимо целое искусство установить среду программирования (IDE) и компилятор на свой компьютер. Но с этим стоит помучиться! Мы будем вознаграждены практически неограниченными возможностями системы, быстродействием в случае с С++ и универсальностью работы с данными в случае с Python. А что Pascal? Pascal сегодня скорее мертв, чем жив. Сейчас он не применяется на практике, и ребята это знают. Мотивация как таковая пропадает напрочь.
Мне в своей практике приходилось использовать все три языка. Хочу поделиться некоторыми своими размышлениями по этому поводу.
Сравним некоторые функциональные возможности и удобство применения.
Ввод/вывод. В С++ используется потоковый ввод/вывод данных. Первоначально ребятам нужно объяснить, что такое поток, формат операторов ввода/вывода, не забыть про стандартную библиотеку iostream. Затем нужно рассмотреть форматный вывод данных с использованием библиотеки iomanip, управляющие последовательности и манипулятор endl.
В языке Pascal используются аналогичные конструкции, за исключением потоков ввода/вывода. С этим здесь, пожалуй, проще.
Наиболее простой вход в язык все же у Python. Пара строк – и программа готова! Но не стоит относиться к нему легковесно. Это мощнейшая система для разработки проектов. И что легко вначале, не означает, что так же будет в дальнейшем. Также важно предупредить ребят, что ввод данных осуществляется в строковом типе.
Типы данных. В С++ и Pascal есть множество различных типов данных. Наиболее используемые на начальном этапе представлены в таблице. В Python же с этим все просто: тип данных определяется системой автоматически. Следует обратить внимание на хранение переменных в Python, оно отличается ссылочным типом.
Алгоритмические конструкции в представленных языках работают без особенностей, отличия только в синтаксисе. В Python важны отступы в 4 пробела во вложенных структурах. Он относится к интерпретируемым языкам, это придает особую гибкость, программу можно выполнять построчно.
Что касается среды программирования, я не берусь в данной статье давать какие-либо рекомендации, дабы не быть обвиненной в рекламе продуктов, хотя, конечно, у меня есть свои предпочтения.
Очевидно, что разнообразие представленных сейчас в мире языков программирования (это и неупомянутый JAVA) заставляет учителей информатики быть в курсе трендов IT-индустрии, постоянно изучать новое, и это позволяет говорить с детьми на одном языке. Известно, что дети всегда стремятся к новому с большим интересом.
Конечно, решать учителю, какой язык программирования преподавать, но выбор детей на сегодняшний день явно не Pascal, и в этом я с ними соглашусь, так как он давно уже отстал от своих конкурентов.
С++ и Python – это мощнейшие современные системы программирования с множеством включенных библиотек, на основе которых ведутся разработки крупных проектов, больших данных и искусственного интеллекта. И к этим проектам можно приобщать детей, решая посильные для них задачи. В свою очередь, ребята, добившись малого, хотят достичь большего, и так дальше, к вершинам успеха.
Эти языки хороши в олимпиадном программировании, причем каждый по-своему. Если на языке С++ программируют дети, участвующие во Всероссийской олимпиаде школьников по информатике, в силу быстродействия, то Python предпочитают ребята, участвующие в проектных олимпиадах, таких как НТИ (национальная технологическая инициатива), в направлениях, где программирование – один из основополагающих навыков: (Big Data, финтех, геоинформатика и др.).
Таблица 1
Pascal | C++ | Python | |||
Структура простейшей программы вычисления a + b | Program Primer; var a,b:integer; begin read(a,b); writeln(a+b); end. | #include using namespace std; int main() { int a,b; cin >> a >> b; cout << a + b << endl; return 0; } | a=int(input()) b=int(input()) print(a+b) | ||
Основные используемые типы данных | Integer LongInt Real Double boolean Char string | 4 байт 8 байт 6 байт 8 байт 1 байт 1 байт 1 байт на 1 символ | Int long long Float Double Bool Char string | 4 байт 8 байт 4 байт 8 байт 1 байт 1 байт 1 байт на 1 символ | Тип данных определяется автоматически (без объявления типа). Примеры: Целые – 4 С плавающей запятой — 4.7 Целые длинные – 4352345325L |
Условный оператор | if a>b then a:=a+1 else b:=b+1; | if (a>b) a++; else b++; | if (a>b): a=+1; else: b=+1; | ||
Цикл с параметром | for i:=1 to n do k:=k+1; | for (int i=0; i | for i in range(n): k++; | ||
Цикл с предусловием | i: = 0; while i < n do begin k:=k+1; i:=i+1; end; | i = 0; while ( i < n) { k++; i++; } | i = 0 while i < n: k++ i++ | ||
Комментарийлар