Языки и среды для обучения программированию

14
Языки и среды для обучения программированию Фарид Гулиев, студент 1 курса кафедры КИТ Оглавление Введение ...................................................................................................................................................... 2 Что такое программирование? .............................................................................................................. 2 Каждому своё! ......................................................................................................................................... 2 Дети .............................................................................................................................................................. 3 Зачем детям язык программирования? ................................................................................................ 3 Инструменты для обучения .................................................................................................................... 3 Scratch ....................................................................................................................................................... 3 Основными компонентами Скретч являются спрайт-объекты на сцене, которые выполняют скрипт, написанный с помощью цветовых блоков. ............................................................................. 3 Блоки группированы по цветам, что добавляют еще больше визуальности. ................................... 4 Bloсkly ....................................................................................................................................................... 5 Заключение: ............................................................................................................................................. 6 Подростки .................................................................................................................................................... 7 Различия между детьми и подростками ............................................................................................... 7 KTurtle ....................................................................................................................................................... 7 Small Basic ................................................................................................................................................. 8 Pascal......................................................................................................................................................... 9 Студенты.....................................................................................................................................................11 Python .....................................................................................................................................................11 С-подобные языки .................................................................................................................................12 Сравнение C++ и C#. Какой больше подойдет для обучения? ..........................................................12 Заключение ................................................................................................................................................13 Список источников ....................................................................................................................................14

Upload: others

Post on 20-Feb-2022

29 views

Category:

Documents


0 download

TRANSCRIPT

Языки и среды для обучения программированию

Фарид Гулиев, студент 1 курса кафедры КИТ

Оглавление

Введение ...................................................................................................................................................... 2

Что такое программирование? .............................................................................................................. 2

Каждому своё! ......................................................................................................................................... 2

Дети .............................................................................................................................................................. 3

Зачем детям язык программирования? ................................................................................................ 3

Инструменты для обучения .................................................................................................................... 3

Scratch ....................................................................................................................................................... 3

Основными компонентами Скретч являются спрайт-объекты на сцене, которые выполняют

скрипт, написанный с помощью цветовых блоков. ............................................................................. 3

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

Bloсkly ....................................................................................................................................................... 5

Заключение: ............................................................................................................................................. 6

Подростки .................................................................................................................................................... 7

Различия между детьми и подростками ............................................................................................... 7

KTurtle ....................................................................................................................................................... 7

Small Basic ................................................................................................................................................. 8

Pascal ......................................................................................................................................................... 9

Студенты ..................................................................................................................................................... 11

Python ..................................................................................................................................................... 11

С-подобные языки ................................................................................................................................. 12

Сравнение C++ и C#. Какой больше подойдет для обучения? .......................................................... 12

Заключение ................................................................................................................................................ 13

Список источников .................................................................................................................................... 14

2

Введение

Каждый в нашей стране должен научиться

программировать, потому что это учит думать.

©Стив Джобс.

Что такое программирование?

Еще недавно программирование считалось очень трудным и

кропотливым ремеслом. Мысли о том, что оно может быть увлекательным

занятием для каждого, не было. Но за несколько лет все резко изменилось. Уже

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

Языки программирования (яп) ассоциируются у меня с обычными языками, но

они позволяют нам общаться не с какими-то иностранцами, а с компьютером.

Каждому своё!

Многие начинающие программисты задаются вопросом: “А с какого

языка лучше всего начинать?”. У всех на этот счет есть свое мнение, но не все

учитывают столь важный фактор – возраст. Чем старше человек, тем больше

у него возможностей. Сравнивать первоклассника и студента – глупо, у

каждого свой уровень развития и восприятия информации, именно поэтому в

ходе своей работы я разделил обучающихся на 3 группы: дети (от 6 до 10 лет),

подростки (от 11 до 15) и студенты (16+).

3

Дети

Зачем детям язык программирования?

Начинать учиться никогда не поздно, но чем раньше, тем лучше. Если

начинать обучаться программировать с раннего возраста, то можно добиться

немалых успехов. Яп учат нас алгоритмизировать все действия и находить

более оптимальное решение. Этот навык несомненно пригодится в жизни.

Увы, не все языки подходят для детей, поэтому я провел свой собственный

анализ, чтобы определить, что лучше всего подойдет маленьким ученым.

Стоит акцентировать внимание на визуальных яп, так как они легче

воспринимаются у детей.

Инструменты для обучения

Черепашья графика (чг.) – наиболее распространенный инструмент

обучения, в нем используется воображаемое роботоподобное устройство,

которое перемещается по экрану, оставляя за собой след, по заданным

направлениям.

Лабиринты – принцип довольно прост, чем-то напоминает черепашью

графику. Нужно написать код, чтобы некий объект прошел лабиринт.

В этих двух инструментах обучения используются простые команды, к

примеру, Шаг вперед, повернуть налево и т.п.

Scratch

Основными компонентами Скретч являются спрайт-объекты1 на сцене,

которые выполняют скрипт, написанный с помощью цветовых блоков.

1 Спрайт-объект – это объект, выполняющий какие-либо действия в проекте. Кроме выполнения

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

4

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

Группа Цвет

Управление движениями спрайта Синий

Управление внешностью спрайта Сиреневый

Управление звуком спрайта Фиолетовый

Перо (для черепашьей графики) Зеленый

События Оранжевый

Сенсоры Голубой

Операторы Салатовый

Переменные Желтый

Управление

(циклы, задержки, условия) Золотой

Чтобы создавать

скрипт для спрайт-

объектов, нужно

перетаскивать блоки и

соединять их друг с

другом. Это очень

просто, удобно и

увлекательно для детей.

Плюсы:

Использование хорошей системы визуализации с помощью

цветных блоков.

Ничего скачивать не нужно, можно экспериментировать прямо

через браузер.

Свои программы можно выкладывать на сайт или смотреть чужие

разработки.

Рисунок 1.

5

Единственный минус – официальный справочник на английском, но,

порывшись в интернете, я нашел хорошую книгу на русском языке “Книга

юных программистов на Scratch.” Голиков Денис и Голиков Артём. Есть

описание почти каждого блока и все иллюстрировано наглядно. Также можно

посмотреть видеоуроки на сайте (http://4create.ru/training/92-video-uroki-

scratch.html), правда не все преподаватели одобряют обучение по

видеоурокам.

Bloсkly

Мое мнение о том, что учиться программировать нужно с раннего

детства, разделяет и крупная iT-компания Google, которая для этого

разработала свою собственную визуальную среду для обучения – Blockly. В

данной среде тоже используются разноцветные блоки, которые нужно

соединять друг с другом как пазлы. Любой сконструированный код можно

посмотреть на таких языках, как JavaScript, Python, PHP, Dart и XML. Это

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

Для обучения существует огромное количество разных

инструментов.

6

Такое разнообразие игр для обучения может только порадовать детей.

Справочник на русском присутствует везде, где надо и полностью переведен

на русский язык.

Заключение:

На самом деле сред разработки для детей очень много, но я отсортировал

и выбрал два лучших среди всех остальных. Главный плюс визуальных сред в

том, что вы в любом случае сможете запустить программу и посмотреть на

результат, даже если там есть ошибки, поэтому языки с синтаксисом были

осознано проигнорированы, так как детям будет достаточно трудно писать код

без ошибок.

7

Подростки

Аналогично тому, как написание картины является

искусством для души, так и написание программы

является искусством для разума.

©Volnik

Различия между детьми и подростками

Детям нужно все подробно объяснять, а подростки уже способны сами

додумывать, поэтому мельчайшие детали можно опустить. Яп. для подростков

очень много, они схожи и имеют почти одинаковые операторы. Все примеры,

приведенные в данном разделе, будут сортированы по мере сложности.

KTurtle

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

TurtleScript, основанный на языке Logo, имеет ключевые слова на русском, это

так важно, потому что, не зная ничего о языке, вы все равно сможете понять

его, справочник вам не пригодится, но разработчики все равно позаботились

об этом, поэтому существует контекстная справка (F2).

Рисунок 2

8

Small Basic

Это среда разрабатывалась компанией Microsoft специально для

обучения.

Очень дружелюбный

интерфейс, нет ничего

лишнего, удобный редактор с

многофункциональной

системой подсказок. Язык

настолько прост, что имеет

всего 20 ключевых слов. Есть

функция переноса в Visual

Basic, что очень полезно.

Можно изучить Small Basic, потом свои программы быстро перенести в Visual

Basic.

Всего за пару секунду я смог написать свою первую программу и

получить результаты, не использую никаких справочник. На официальном

сайте есть справочник все написано

коротко и ясно, без лишней

информации. Нет иллюстрация, но

зато есть примеры программ, на

которые можно посмотреть. Также

можно скачать отличное полное

официальное пособие по языку и

полностью разобраться во всем,

альтернатива - Н. Культин, Л. Цой

“Small Basic для начинающих”. Книга написана для людей с минимальными

знаниями по программированию, поэтому там все очень подробно расписано

и используются скриншоты.

9

Книга делится на главы, которые начинаются от установки и первого

запуска до чтения файлов, записи данных.

Pascal

Наверное, самый знаменитый яп. для обучения, так как его используют

почти во всех школах России. У Pascal достаточно много сред

программирования, но все ошибочно начинают с Turbo Pascal или с Free

Pascal. Почему ошибочно? Потому что они имеют неприятный интерфейс, а

языки, используемые в них, крайне непрактичны. Другое дело PascalABC.Net,

который был специально разработан для обучения. Вот сравнение:

PascalABC.Net имеет такие удобные функции, как инициализация

переменной при описании, модифицированные операторы присвоения (+=,

*=), объявление переменной внутри программы, оператор выбора (как Switch

C#) и т. д.

10

Официальный сайт среды подойдет абсолютно для всех. Есть

справочная система, есть примеры программ, есть форум, есть онлайн

компилятор (ничего даже скачивать не придется). На главной странице

справочника написаны все преимущества и различия PascalABC.Net от

стандартного Pascal. Радует наличие бокового меню для навигации по

справочнику и описание каждого служебного слова по отдельности.

11

Студенты

Термин «студент» в переводе с латинского языка означает усердно

работающий, занимающийся, т.е. овладевающий знаниями. Это такой вид

людей, который привык к саморазвитию, а в программировании это играет

немалую роль, ведь если не “набивать руку”, отрабатывая свой подчерк

программиста, у вас ничего не получится.

Python

Питон отличается от остальных тем, что его действительно используют

для написания серьезных программ или игр (Blender, Gimp, Battlefield 2, World

of Tanks), также его используют в таких областях, как Web-разработка и

системное администрирование. Все было бы прекрасно, если не одно но:

питон работает очень медленно и совершенно не предназначен для

вычислительных задач. Еще проблема заключается в том, что Питон 2 не

совместим с третьим, перенести скрипт довольно проблематично, поэтому

многие программисты остались на старой версии.

На официальном сайте

справочник по языку на

английском языке, но зато есть

замечательная книга “Hello World!

Занимательное программирование”

Уоррен Сэнд, Картер Сэнд.

Классная форма подачи

информации, примеров кода. Все

написано на доступном языке, хотя

книга предназначена для детей, но

она подойдет и взрослым, которые

решили освоить язык Питон.

12

С-подобные языки

Си — это универсальный язык программирования с компактным

способом записи выражений, современными механизмами управления

структурами данных и богатым набором операторов. Синтаксис Си стал

основой для многих современных языков, о которых мы сейчас и поговорим.

Сравнение C++ и C#. Какой больше подойдет для обучения?

Если порыться в интернете, можно найти много мнений на этот счет,

которые абсолютно противоречат друг другу. С первого взгляда код С++ и

С# очень похож внешне. Синтаксис C# постоянно расширяется, код, как

правило, выглядит проще и лаконичнее, чем код С++. Языковые конструкции

С++ и С# очень схожи, однако существенные различия можно найти в

деталях. Сборка C++ проектов заметно сложнее, компилятор не особо

контролирует программиста. Это дает больше возможностей, но и

ответственность программиста значительно выше. Могут возникнуть такие

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

больше склонен к C#. Он действительно удобен и прост, код программ

получается симпатичным, без страшных ключевых слов. По опыту могу

сказать, что после обучения C#, вы с легкостью сможете читать код и на C++.

Многие будут возражать и говорить, что лучше не начинать с Си-

подобных языков, но я с этим не согласен. На кафедру КИТ попало много

студентов, которые ранее не сталкивались с языками программирования, а

свою жизнь программиста начали с языка C#, как показала практика, через

пару дней они научились писать простенькие консольные программы.

Думаю, не стоит говорить о величии компании Microsoft, и как она относится

к своим продуктам. На официальном сайте есть огромный справочник по

языку, где есть полное описание всего. Еще советую прочитать книгу

Герберт Шилдт “Полное руководство С#”, по которой обучался я сам.

13

Заключение

Приведены примеры далеко не всех яп. (по сути это невозможно), но я

постарался рассказать про некоторые из них. Текст был написан без сложных

терминов программирования, так как он рассчитан на аудиторию, которая

только начинает осваиваться в этой сфере. В ходе работы все языки были

протестированы лично мной, из-за чего у меня ушло много времени на

написание курсовой (детские игры способны затянуть даже взрослых).

Выбор яп. полностью зависит от возраста, начинать надо всегда с чего-то

простого, улучшая свои навыки, для дальнейшего перехода на языки более

сложного уровня.

14

Список источников

1. Рисунок 1. - https://scratch.mit.edu/projects/1328287999/ (дата

обращения: 17.12.16)

2. Рисунок 2. - https://ru.wikipedia.org/wiki/KTurtle/ (дата обращения:

17.12.16)

3. Г. Денис, Г. Артем “Книга юных программистов на Scratch”, изд.

Smashwords, 2013.

4. https://scratch.mit.edu/ (дата обращения: 17.12.16)

5. http://blockly.ru/ (дата обращения: 17.12.16)

6. Н. Культин, Л. Цой. — СПб.: БХВ-Петербург, 2011. — 256 с.: ил.

+ Дистрибутив (на DVD) “Small Basic для начинающих”.

7. http://smallbasic.com/ (дата обращения: 17.12.16)

8. http://pascalabc.net/ (дата обращения: 17.12.16)

9. http://pascalabc.net/downloads/Presentations/PABC.NET_vs_Pascal_

2016.pdf (дата обращения: 17.12.16)

10. Уоррен Сэнд, Картер Сэнд “Hello World! Занимательное

программирование”: пер. с англ./ И. Рузмайкина, изд. Питер, 2016.