Язык программирования в школе
Языки программирования в школе
Специфика обучения программированию в отечественных школах
Обучение программированию на уроках информатики в отечественных школах трудно назвать эффективным. Чаще всего дети заканчивают средние общеобразовательные учреждения с навыками, непригодными для практического применения. Причины этого следовало бы искать в образовательной реформе, проводившейся в середине 1980-х гг., когда в стране внедрялась программа преподавания информатики. Связаны они, как и многие изъяны отечественного образования, с чрезмерной зарегулированностью и инертностью составления учебных программ для обучения в школах: спущенные «сверху» концепции, пусть и прогрессивные для своего времени, надолго остаются руководством к действию, тогда как технологии, особенно информационные, меняются стремительно.
Рисунок 1. Урок программирования в 1980-х гг. Автор24 — интернет-биржа студенческих работ
Несмотря на то, что преподаватель информатики может «по своему вкусу» в широких пределах выбирать используемый на уроках материал (в том числе и для уроков программирования), на ЕГЭ перечень языков, по которым выпускники могут продемонстрировать свои знания, жестко регламентирован. В него входят:
Попробуй обратиться за помощью к преподавателям
- алгоритмический учебный язык;
- Паскаль (и его производные);
- Бейсик;
- Си.
Языки программирования применительно к учебному процессу
Паскаль
К достоинствам Паскаль можно отнести следующие:
- он действительно был создан Никлаусом Виртом для учебных целей (правда, было это в 1970 г. и с тех пор многое изменилось);
- существуют версии этого языка (TurboPascal, FreePascal), которые легко установить на персональный компьютер, причем эти программы находятся в свободном доступе, что немаловажно в условиях школы, где использование пиратского ПО недопустимо не только по юридическим, но и по этическим причинам.
Удобство оболочек TurboPascal, FreePascal заключается в также в том, что все действия по написанию, отладке, компиляции и запуску программы можно выполонять не выходя из единой программы. С другой стороны, следует учитывать, что консольный интерфейс (среда DOS), в котором работают эти версии Паскаля, устарел и мало похож на современные инструменты разработки. Альтернативой с полноценным графическим интерфейсом является пакет Lazarus, позволяющий программировать в среде, похожей на промышленную систему Delphi (правда, и ее трудно назвать соответствующей современным реалиям).
Задай вопрос специалистам и получи
ответ уже через 15 минут!
Язык Си
Си — универсальный язык, всегда востребованный на рынке. Однако преподаватели информатики чаще всего не владеют им. Они весьма консервативны и предпочитают давать материал, который, во-первых, сами изучили достаточно хорошо в педагогических вузах, где последствия засилья Паскаля также ощущаются, и который, во-вторых, не противоречит спускаемым сверху рекомендациям.
Программирование на Си в рамках школьного курса информатики сдерживает, помимо отсутствия специалистов, и то, что трудно подобрать подходящие для школьников инструменты. Несмотря на то, что существуют пригодные для написания программ на Си инструменты разработки (Eclipse, IntelliJ, Net Beans, Visual Studio), они сами по себе являются довольно сложными для освоения.
Следует учитывать, что редактор Sublime и среда разработки Visual Studio являются коммерческими продуктами, хотя и могут предоставляться бесплатно для персонального использования и в образовательных целях.
Выходом может стать сочетание простых редакторов кода (Notepad++, Sublime, Visual Code, Atom) и свободных компиляторов. Для Windows, например, существует свободно распространяемый пакет CygWin, включающий простые консольные инструменты для Си (компилятор, библиотеки и т.п.).
Рисунок 2. Редактор Notepad++. Автор24 — интернет-биржа студенческих работ
Бейсик
Несмотря на то, что время сверхпопулярности Бейсика давно прошло, он вполне может использоваться в качестве учебного языка программирования. Существует пакет FreeBasic, содержащий много примеров, и поддерживаемый в актуальном состоянии сообществом энтузиастов даже в наши дни (конец 2010-х гг.).
Язык КуМир
В некоторых школах на уроках программирования используется язык КуМир, ведущий свое происхождение от алгоритмического языка, разработанного еще в 1980-х гг. по методике основоположника отечественной школьной информатики академика А.П. Ершова. Этот язык переживает сейчас второе рождение. Пример программы:
Рисунок 3. Оболочка для разработки на языке КуМир. Автор24 — интернет-биржа студенческих работ
В 2019 г. НИИ системных исследований РАН запланировал развитие КуМир в качестве учебного языка.
Перспективы преподавания программирования в школе
Паскаль и Бейсик давно перестали быть языками, на которых пишут программы в сфере реального производства.
В будущем государственным органам для успешного воспитания передовых навыков программирования у школьников, следовало бы обратить внимание на следующие моменты:
- высокая динамика развития информационных технологий; пересматривать учебные программы по информатике следует, как минимум, ежегодно, в том числе особенно тщательно — в части, касающейся преподаваемых языков программирования;
- отказ от устаревших языков программирования;
- внедрение преподавания современных популярных языков (Python, JavaScript) для всех учащихся и более сложных (Swift, Go, C#, Java) для тех, кто планирует связать будущую профессиональную деятельность с информационными технологиями;
- обучение не только программированию, но и смежным технологиям: подключению необходимых библиотек, работе с системами управления версиями, устройству современных IDE и т.п.
Так и не нашли ответ
на свой вопрос?
Просто напиши с чем тебе
нужна помощь
Какие языки программирования изучают в школе?
презентация к уроку по информатике и икт на тему
Презентация о том, какие языки программирования изучать в школе
Скачать:
Предварительный просмотр:
Подписи к слайдам:
Какие языки программирования изучать в школе? Цель : сравнить основные языки программирования, изучаемые в школе. Преимущество нового языка Python . Курилов Игорь Анатольевич
Содержание Что сейчас изучают в школе! С равним Pascal, Python , C++ Python . Некоторые примеры . 4. Интересные особенности Python на примерах. 5. Что лучше изучать сначала, а что изучать потом! 6. Применение языков программирования на практике (в жизни)
Что сейчас изучают в школе! Basic (устарел уже лет 10-15 назад, даже на любой олимпиаде уже не используется) Pascal (самый распространенный 10-15 лет) C++ (имеет больше возможностей, но сложнее чем Pascal ) Python ( появился в списке языков Демо 2015 года ) – Что он представляет?
Очевидно нужно сравнить Pascal, C++, Python Рассмотрим реализацию 3-х алгоритмов (линейного, с ветвлением, циклического)
Задача1 .0 :Найдем сумму 2-х целых чисел. Pascal C++ Python Program pr1 _0 ; var a,b,c : integer; begin writeln (‘ ввести 2 числа ’); readln ( a,b ); c:=a+b; writeln (c); end. #include using namespace std ; main() < int a, b, c; cout >a >> b; c = a + b; cout b then max:=a else max:=b; if c>max then max:=c; writeln (max); end. #include using namespace std ; main() < int a, b, c, max; cout >a >> b >> c; if ( a > b ) max = a; else max = b; if (c>max) max =c; cout b else b If c>m: m=c print ( m )
Задача 3.0: Найти все двухзначные четные числа, которые делятся на 3 Pascal C++ Python program pr 3_0 ; var i:integer; begin for i:=10 to 99 do if ( i mod 2=0) and ( i mod3=0) then writeln ( i ); end. #include using namespace std ; main() < int k; for ( k = 10; k b do If a>b then a:=a-b else b:=b-a; writeln (‘ НОД = ‘,a); readln ; End. print(« ввести 2 числа «) a = int (input()) b = int (input()) while a != b: if a > b: a = a — b else: b = b — a print (» нод = «, a)
Интересные особенности Python на примерах .
№1 # Описание переменных сразу при вводе переменных Pascal Python var a,b,c : integer; a = int ( input() ) b = int ( input() )
№2 # сумма двух действительных чисел (ввод через пробелы) Pascal Python read ( a, b ); c := a + b; writeln ( c ); a, b = map ( float, input().split()) print ( » Ответ: «, a,b ) print ( » Ответ: «, a+b )
№3 # максимум из 2-х чисел Pascal Python If a>b then max:=a else max :=b; Write(max) m = a if a > b else b print ( » Ответ: «, M )
Система скидок №4 # Каскадное ветвление Pascal Puthon if a > b then writeln ( ‘ Андрей старше’ ) else if a = b then writeln ( ‘ Одного возраста’) else writeln ( ‘ Борис старше’ ); if a > b: print ( » Андрей старше » ) elif a == b: print ( » Одного возраста » ) else : print ( » Борис старше » )
№5 # принадлежность точки 2-м отрезкам Pascal Puthon readln (x); if (( -5 0) then inc(k); writeln (k); k = 0 for i in range(0, n – 1): if ((a[ i ]+a[i+1])%3 == 0 and (a[ i ]+a[i+1])%9 <> 0): k += 1 print(k)
Что лучше изучать сначала, а что изучать потом! Программисты и специалисты считают: -что программировать надо начинать с простых языков (например, Pascal ) . -изучение с языка C (C++) , часто отбивает желание программировать у начинающих программистов. Что же можно сказать про Python – это новый язык программирования, включающий в себя лучшее из несколько совершенно разных языков, имеющий достаточно простой код.
Применение языков в % Сайт TIOBE ( Index for February 2016 )
Применение языков на практике (в жизни) 2. Язык С++ Google Chrome , Mozilla Firefox и линейка продуктов Adobe были разработаны с помощью С++. Кроме того, некоторые современные игры и операционные системы были разработаны на С++. 7. JavaScript Серверные языки сценариев идеально подходят для разработки сложных веб приложений, но каждая такая задача сильно нагружает сервер. Поэтому разработчики делегировали часть функций на сторону клиента и использовали JavaScript . JavaScript — это язык программирования, выполняемый в клиентском браузере и обрабатывает команды на компьютере конечного пользователя, а не сервера, что приводит к снижению нагрузки на сервер и увеличению скорости работы приложения. JavaScript был разработан компанией Netscape и вряд ли есть сайты, которые не используют его. 8.Python – это высокоуровневый язык программирования и часто считается самым легким языком, благодаря своей простоте, читаемости и синтаксису. Python был разработан Гвидо Ван Россумом в 1991 году. Python не использовался так широко в прошлом, однако стал особенно популярным за последние годы благодаря инвестициям Google . В настоящее время некоторые весьма известные и надежные сайты работают на P ython , особенно pinterest.com, instagram.com и rdio.com. Как и PHP, Python можно использовать для разработки веб — приложений . 10. Ruby Похожий на Python , Ruby — простой и читаемый язык программирования, ориентированный на разработку веб приложений. Разработанный Юкихиро Мацумто в 1995 году, фреймворк Ruby использовался для разработки Github , Scribd , Yammer , Shopify и Groupon . Ruby сочетает в себе некоторые возможности Lisp , Pearl и Eiffel .
Python Python (в честь шоу Monty Python ) отличается черта использованием отступов для выделения блоков кода и управляющих структур. Язык крайне простой и скромный на выразительные средства сравнительно c Ruby или Perl . Испольуется для создания различных как обычный программ, так и Веб-приложений (управление пользователями, профилями, базами данных, создание серверов), анимации, компьютерной 4 D графики и т. д.
Вывод В наше время в курсе информатики можно изучать не только Pascal , но ещё один из вышесказанных языков. Данные языки применяются для разработки современных проектов. Python – хороший язык для изучения программирования, так как он является наиболее простым и в тоже время связан с большим количеством соседних языков. Он используется для создания Веб-приложений.
Обучение основам программирования в школе
В школе изучал BASIC, в институте — Pascal, а на работе требовался Java. Знакомая ситуация? В курсе информатики, как правило, существует раздел, в рамках которого учащиеся пытаются изучить основы программирования с использованием учебного языка программирования. При этом возникает немало вопросов, включая и выбор наиболее подходящего для этого языка программирования.
К учебным языкам программирования предъявляется ряд требований, которые красиво выглядят на бумаге, но на практике зачастую противоречат друг другу. Понятно, что такой язык программирования должен быть синтаксически простым, распространённым и востребованным на практике без необходимости переучивания. Но можно ли это реализовать в рамках школьного курса информатики?
Существуют разные методики оценки популярности и востребованности языков программирования — по количеству запросов в поисковых системах, количеству вакансий, проектов в репозиториях, результатам опросов и др. Для объективной оценки необходимо учитывать много критериев и факторов, но определённую взаимосвязь можно уловить и в результатах пары международных опросов.
Популярные языки программирования в реальных проектах в 2018 году.
Популярность языков программирования среди профессиональных разработчиков в 2018 году
- JavaScript — 71,5%
- HTML — 69,4%
- CSS — 66,2%
- SQL — 58,5%
- Java — 45,4%
- Bash/Shell — 40,4%
- Python — 37,9%
- C# — 35,3%
- PHP — 31,4%
- C++ — 24,6%
А почему пропущен Basic и Pascal? Потому что их нет! Можно, конечно, взглянуть на результаты TIOBE Index for August 2018, где Visual Basic .NET занимает аж пятое место, но он имеет достаточно узкую область использования и по факту выходит так, что в школе «проходят» основы языков программирования, которые не востребованы на практике и после «изучения» этих языков придётся учить что-то другое, если в планах стоит выбор пути IT-специалиста. За один год в IT происходит немало всего, а BASIC и Pascal как считались наиболее подходящими языками для обучения в конце прошлого века, так и считаются по сей день. Уже и web-технологии давно вошли в нашу жизнь, и мобильные приложения отвоевали рынок у настольных приложений, а «сладкая парочка» прекрасно себя чувствует в современном учебном процессе. Есть ли альтернативы?
Java и семейство языков C имеет неплохие позиции, но назвать их учебными языками программирования затруднительно. Python является относительно несложным языком программирования, но выбрать его может только тот, кто смотрит на показанную выше статистику с закрытымы глазами. Если же глаза открыть, то сразу станет виден лидер — JavaScript. Если вы не согласны с этим, то попробуйте при помощи языка, который вы считаете наиболее подходящим для изучения в школе, написать код вывода диалога с приветствием в следующих операционных системах — Windows, Mac OS, Linux, Android, iOS. Засекаем время. У меня на это ушло 10 секунд:
К существенным недостаткам данного языка программирования можно отнести излишнюю вседозволенность и возможность создания различных «программистских трюков». А где их нет, в Python, C#, Java? Да, JavaScript не так строг, как компилируемые языки и даже Python, но у него есть огромное преимущество — простота, доступность и просто огромная область применения, которая даёт возможность школьникам познакомиться и с web, и с мобильной, и с настольной разработкой в самых разных областях. Многие ли захотят заниматься в школьной музыкальной студии, в которой учащихся заставляют играть только классику, только рок-н-ролл или только блюз? JavaScript даёт свободу выбора. Робототехника, графика, музыка, игры, статистика — это лишь небольшой перечень областей, где JavaScript используется совместно с другими технологиями. А как быть с начальной школой? В начальной школе предпочтение отдаётся визуальному программированию, в основе которого также нередко лежит JavaScript, что позволяет создать последовательное изучение этого простого и востребованного языка программирования.
Когда на экране происходит движение картинки в соответствии с запрограммированными визуальными блоками, то это более понятно и наглядно по сравнению с текстовым программированием, где сначала нужно разобраться с синтаксисом языка, затем написать код и отправить его на выполнение для просмотра результатов его работы. Однако, движение картинки по экрану осуществляется в рамках виртуального мира. Ребенок может установить связь между блоком желтого цвета и движением картинки, но сможет ли он подобные связи обнаружить в других программах или реальном мире?
Информатика (и введение в программирование) в рамках школьного курса является тереотизированным предметом с акцентом в сторону математики. Информатика действительно тесно связана с математикой, но это не позволяет увидеть практическое применение знаний. Найдите наибольшее число из заданных, вычислите выражение, посчитайте матрицу — эти задачи подходят для общего развития, но как они связаны с реальным миром мобильных технологий и Интернета? Кружки робототехники позволяют увидеть связь программирования и физики, но этого недостаточно. Тогда что, в рамках информатики учить детей создавать сайты и мобильные приложения? Нет, в рамках информатики это сделать затруднительно, но показать её связь с реальным миром возможно. Цветной блок условного оператора или цикла большинству будет так же непонятен, как и его запись в текстовом виде, потому что это теория, показанная разными способами. А теорию сложно увидеть и ощутить. Внутренние процессы работы выключателя света или секундомера также непонятны, но пользователи понимают результат их работы. Так почему бы это не связать с условным оператором и циклом для наглядной демонстрации того, что программирование позволяет решать практические задачи, а не только учебно-теоретические?
Программирование интересно не всем, но у школьников должна быть возможность познакомиться с практическими основами программирования, что можно было бы осуществить в рамках дополнительного образования. Какой язык программирования для этого выбрать? Это некорректный вопрос! К сожалению, у нас принято рассматривать IT и процесс обучения в общем виде, с конца и в абсолютных категориях. Java и C++ — это круто, а Basic и Pascal — пустая трата времени. Перед выбором языка нужно понять цели обучения и задачи, а не наоборот. Для решения многих задач вполне подойдёт и визуальное программирование, которое имеет такое же право на существование как и текстовое. Предположим, поставлена задача создать дизайн упаковки. Если пользователь умеет рисовать на компьютере, то он может всё нарисовать. Если пользователь не умеет рисовать, то он может выбрать несколько клипартов и составить из них композицию, что подобно соединению блоков для получения требуемого алгоритма.
Визуальное программирование и текстовое имеет тесную связь, но важно обеспечить неразрывность этого процесса. Кто-то может сказать, что учащимся для общего развития желательно изучать разные языки. Но согласитесь, что КуМир + Pascal + Lazarus выглядит менее предпочтительным и перспективным по сравнению с Blockly + JavaScript + стек технологий. В чистом виде область применения JavaScript уступает целому ряду других языков, но его мощь как раз и заключается в совместном использовании. JavaScript позволяет получить эффект быстрого старта или кто-то готов упереться в сложный язык, а через несколько месяцев забыть программирование как страшный сон, как это нередко происходит с занятиями музыкой?
Я не настаиваю исключительно на изучении JavaScript, потому что задача дополнительного образования состоит не в изучении того или иного языка программирования, а предоставление возможности изучать основы программирования под руководством наставника.
Почему школьники не любят уроки программирования
Когда речь заходит о школьном программировании, ученики смотрят на всех как на безумных: о чём вы вообще говорите? Чтобы вы поняли всю глубину проблемы, скажем, что больше половины российских выпускников не знают, что такое алгоритмы и логические операции. Написать программу хоть на каком-нибудь языке могут только ученики профильных классов в школах с углублённым изучением физико-математических дисциплин.
Мы специально не рассматриваем в этом материале квалификацию преподавателя и его педагогические способности. Будем исходить из того, что у нас есть обычный учитель информатики, который знает свой предмет, но действует в условиях, которые часто от него не зависят.
Вот в чём проблема и как тут быть.
Старые компьютеры
В большинстве школ нет современного железа. И речь не о самых новых и навороченных компьютерах, а хотя бы о тех, которые могут запустить браузер Chrome и не зависнуть на пару минут.
На устройствах, которыми обычно располагают школы, сложно преподавать что-то современное, потому что оно банально не запустится. В итоге практическая работа превращается в мучение и проверку терпения учеников. Можно, конечно, поставить какой-нибудь лёгкий Linux и настроить его для необходимых задач, но чаще всего такой квалификации у учителя нет.
Древние языки программирования
Если спросить детей, какой язык они проходят на информатике, рейтинг ответов будет таким:
- Паскаль.
- Бейсик.
- Алгоритмический язык.
- Вы имеете в виду английский?
Проблема в том, что во многих школах даются знания по языкам, которые не используются сейчас в профессиональной разработке.
С точки зрения кадров это, наверное, правильно, потому что не нужно переучивать учителей и переписывать учебники. Но ни Паскаль, ни Бейсик, ни блок-схемы сейчас не нужны в профессиональном программировании — разработческая мысль давно шагнула вперёд.
Ещё это тесно связано с возрастом школьных компьютеров, о которых мы говорили. Современная среда разработки для какого-нибудь модного Go или даже классического языка C# на них просто не запустится. Вот и приходится использовать Паскаль, который работает на чём угодно, но который полностью устарел для практического применения.
Паскаль прекрасно помогает преподавать алгоритмику, но писать современные программы на нём крайне сложно, и вот почему:
- нет инструмента для быстрого создания интерфейса программы;
- слабая графическая часть, которая может рисовать только простейшие объекты;
- ограничения по размеру используемой памяти в переменных и циклах;
- нет встроенной поддержки web-сервисов и страниц;
- Паскаль не знает, как работать с современными базами данных, протоколами обмена, облачными хранилищами и сервисами.
Нет единой методической базы
Каждый учитель сам решает, как рассказывать о своём предмете. Один подойдёт к вопросу творчески и заинтересует детей, другой отнесётся формально и прочитает материал по учебнику. Но и здесь есть подвох: учебников по информатике много, все они одобрены Минобром, и все дают разные представления о программировании. Книга авторства Семашко для 10 класса рассказывает про блок-схемы и абстрактный язык, Угринович предлагает изучать Visual Basic, а Босова и Поляков вообще ничего не говорят про программирование в 10 классе.
А теперь добавьте сюда уроки по замене, когда в параллельных группах дети занимаются по разным программам, возможный перевод в другую школу с другими стандартами, а также экспериментальные методики от самих учителей. В итоге в голове получается каша из знаний, а ребёнок вырастает уверенным в том, что программирование — очень сложная штука, про которую он что-то слышал.
Это примерно как если бы детей в школе учили вождению: где-то на «тойотах»-автоматах, где-то на убитых «запорожцах», где-то на тетрадях в клетку, а где-то ещё их бы учили собирать и разбирать танк. И ребёнок, к примеру, перевёлся с уроков в тетрадке на разбор танка.
Непонятно, как применять знания в жизни
Когда выпускник начинает изучать программирование глубже, чем в школе, то понимает, что между его знаниями и современными языками — пропасть. Проще начать всё заново или вообще не заниматься этим, чем опираться на старые сведения.
Даже если он умеет хорошо писать код на алгоритмическом языке или даже на Visual Basic, то в мире современной разработки он будет чувствовать себя как автолюбитель из середины прошлого века. Перед тем как покинуть гараж, он каждый раз обязательно вручную проверит давление в каждой шине, линейкой измерит люфт рулевого колеса и будет искать карбюраторную заслонку. Сейчас же можно просто сесть и поехать, машина многое умеет сама, и к ней уже совершенно другие требования.
В современных языках программирования точно так же многое уже встроено в язык и не требует сложных действий. Возьмём простую задачу: отсортировать элементы массива по порядку, расставить их от большего к меньшему. На Паскале код выглядит так:
А теперь посмотрим на код JavaScript, который делает то же самое:
Как видите, код стал компактнее и проще. Это благодаря тому, что современные языки уже умеют сами сортировать массивы, работать с переменными, размер которых заранее неизвестен, и объявлять их в том месте, где они понадобились.
Как разжечь в ребёнке интерес к программированию
Лучший способ привлечь детей к любому занятию, в том числе программированию, — личный пример. Когда в семье мама и папа увлекаются кодом, пусть даже и непрофессионально, ребёнку тоже будет интересно попробовать. Робототехника, программируемые контроллеры, Arduino и Raspberry Pi, программы на Scratch и робоконструкторы — всё это помогает разжечь интерес.
Если просто заставлять ребёнка заниматься, в то время как в семье никто не интересуется кодом, эта затея скорее провальная. Личный пример — лучший путь.
Методические рекомендации обучения программированию в школе Текст научной статьи по специальности «Науки об образовании»
Аннотация научной статьи по наукам об образовании, автор научной работы — Родыгин Евгений Федорович
В статье описана необходимость обучения программированию в школе, рассмотрены методические рекомендации организации обучения программированию на базовом уровне, также представлены основные компоненты изучения языка программирования в школе.
Похожие темы научных работ по наукам об образовании , автор научной работы — Родыгин Евгений Федорович
Текст научной работы на тему «Методические рекомендации обучения программированию в школе»
Методические рекомендации обучения программированию в школе
Родыгин Евгений Федорович (rodygin_evgeny@mail.ru)
МОУ «Лицей № 28 г. Йошкар-Олы», г. Йошкар-Ола
В статье описана необходимость обучения программированию в школе, рассмотрены методические рекомендации организации обучения программированию на базовом уровне, также представлены основные компоненты изучения языка программирования в школе.
Вопросы повышения уровня обучения программированию в школе продолжают оставаться актуальными. Профессия специалиста в области информатики и информационных технологий, довольно востребованная в настоящее время, требует прочных знаний, умений и навыков, которые необходимо получать и развивать со школы. Перед учителем поставлена задача не просто предоставить выпускнику набор знаний, а подготовить учащегося, умеющего самостоятельно решать возникающие перед ним проблемы, способного отвечать за собственное благополучие и общества в целом. Для этого требуется создать необходимые условия для подготовки ответственной, самостоятельной и активной личности, владеющей основными компетентностями. Одна из этих основных компетентностей — это умение составлять и осуществлять программу своей деятельности. Такие умения у учащихся формируются на уроках информатики при выполнении различных заданий и, прежде всего, при изучении темы «Алгоритмизация и программирование». Таким образом, особое внимание в обучении информатике необходимо уделять вопросу системы обучения программированию.
Тема «Алгоритмизация и программирование» является одной из самых сложных тем при изучении курса информатики. В настоящее время существует большое количество проблем в данном направлении. В целом есть два пути: либо преподавать на уроках информатики лишь офисные средства и различные прикладные программы, исключив программирование, либо изучать программирование. На сегодняшний день выпускник должен иметь необходимый набор знаний по информатике, позволяющий сдать ЕГЭ на достаточном уровне, для этого необходимо изучать программирование на уроках информатики, то есть первый путь отметается сразу. Проводящиеся соревнования (олимпиады, конкурсы, конференции) по программированию в нашей республике также являются подтверждением необходимости изучения темы «Алгоритмизация и программирование» в школьном курсе информатики.
Весь процесс обучения программированию в школе разбивается на несколько этапов. Перед началом обучения учитель сталкивается с проблемой выбора языка программирования для изучения. Одна группа учителей обучают теме «Алгоритмизация и программирование» на основе формальных алгоритмов, построив обучение учащихся на языке блок-схем. Другая группа учителей информатики обучают учащихся тому языку программирования, с помощью которого умеют решать задачи, знают основы соответствующего языка и используют методически правильное изучение выбранного ими языка программирования. Тем самым потеряно единое образовательное информационное пространство не только страны, но и отдельных регионов. Таким образом, в начале обучения теме «Алгоритмизация и программирование» учителю необходимо выбрать язык программирования с учетом компетентности учителя, интересов учащихся, их направленности и структуры обучения информатике в школе. Большинство учителей в самом начале XXI века преподавали язык Basic, который стал известен множеству школьников. Сегодня во многих школах проводится изучение языка Pascal, который является более подходящим с методической точки зрения для изучения основных принципов программирования. Язык Pascal является учебным структурным языком программирования, который предполагает не только изучение алгоритмических конструкций, формирование логического и алгоритмического мышления у учащихся, но и решение сложных технологических и производственных задач. И только учащиеся небольшого числа школ изучают языки программирования Visual Basic, C, C++, Visual C++, Delphi, Java и другие.
Следующим важным этапом при построении системы изучения темы «Алгоритмизация и программирование» является организация самого процесса обучения. В качестве основных видов организации процесса обучения программированию можно выделить традиционные виды занятий: лекционные, лабораторные и практические занятия. Для проведения занятий необходимо выбрать соответствующее учебнометодическое, техническое и программное обеспечение.
Основным этапом построения обучения является технология обучения программированию. Учитель не должен забывать, что цель обучения — не изучение языка программирования и не подготовка высококвалифицированных программистов, а изучение способов, алгоритмов и методов программирования при решении задач, то есть привитие навыков алгоритмического мышления учащимся.
В настоящее время изучение темы «Алгоритмизация программирования» в школе проводится для разных категорий учащихся, главным образом это связано с появлением профильного обучения. Одна категория учащихся изучает программирование в соответствии с содержанием образования по информатике, обязательного для всех учащихся общеобразовательных школ. Для основной школы цель обучения определяется изучением основных алгоритмических конструкций с использованием простых типов данных и массивов. Другая категория учащихся изучает программирование на углубленном уровне, что соответствует обучению в таких профильных классах, как информационно-коммуникационное и физико-математическое направления. Кроме базовых знаний в области программирования, описанных выше, учащиеся данных направлений должны владеть одним из современных языков программирования, обладая умением проводить вычислительные процессы и оперировать всеми основными типами данных.
Изучение темы «Алгоритмизация и программирование» на базовом уровне предлагаем начинать с 8-го класса, если существует возможность построения такого процесса обучения информатике в школе. Сначала необходимо изучать алгоритмы на формальных языках и использовать их на формальных исполнителях. В 9-м классе учащимся необходимо освоить понятие языка программирования, рассмотреть классификацию языков программирования, их необходимость и направленность. Затем рассматриваются основы структурного программирования на одном алгоритмическом языке программирования совместно с основными алгоритмическими конструкциями, для этого лучше всего выбрать язык Turbo Pascal. Начинается изучение языка программирования со знакомства с основными компонентами данного языка (константы, идентификаторы, переменные, типы данных, принципы записи математических выражений, составной оператор, пустой оператор, комментарии), основными стандартными процедурами и функциями, структурой программы на языке Pascal, описывается каждый раздел описания языка. Далее последовательно изучаются основные алгоритмические конструкции: линейная конструкция, разветвляющая конструкция (условный алгоритм), оператор множественного выбора, циклическая конструкция (циклы с параметром, с предусловием и с постусловием). Сначала учащимся дается конструкция на языке блок-схем, а затем реализация в виде программ на выбранном языке программирования. Каждая конструкция закрепляется самостоятельным решением учащимися как общих, так и индивидуальных задач на практических занятиях. В 10 классе необходимо повторить основные конструкции языка и перейти к изучению темы «Процедуры и функции». Далее рекомендуется рассмотреть понятие локальных и глобальных переменных, их отличия, способы реализации и использования на основе процедур и функций. При изучении процедур и функций на практических
занятиях учащиеся могут вспомнить основные алгоритмические конструкции. Затем осуществляется переход на изучение темы «Массивы», во время практических занятий учащиеся должны овладеть умением формирования и работой с массивами с помощью процедур и функций. При изучении данной темы учащиеся закрепляют знания алгоритмических конструкций и их использование при решении задач различного уровня сложности. В 11 -м классе на базовом уровне учащиеся знакомятся со строковым и символьным типом данных. Изучают принципы работы с символьными и строковыми переменными, также реализуя алгоритмические конструкции. Дополнительно рассматриваются такие структуры данных, как записи и множества. Изучение языка программирования заканчивается освоением понятия файловой переменной, повторением и решением задач сложного уровня, реализуя основные методы работы с данными.
Благодаря такому построению изучения языка программирования на базовом уровне дается возможность учащимся освоить основы алгоритмического языка Pascal, способствует развитию технологического, алгоритмического и творческого мышления учащихся, формирует основные навыки программирования.
В итоге изучения учащиеся должны знать:
— что такое алгоритм, какова роль алгоритма в системах управления;
— в чем состоят основные свойства алгоритма;
— способы записи алгоритмов: блок-схемы, учебный алгоритмический язык;
— основные алгоритмические конструкции: следование, ветвление, множественный выбор, цикл, структуры алгоритмов;
— назначение вспомогательных алгоритмов, технологии построения сложных алгоритмов: метод последовательной детализации и сборочный (библиотечный) метод;
— основные свойства величин в алгоритмах обработки информации: что такое имя, тип, значение величины; смысл присваивания;
— назначение языков программирования;
— в чем различие между языками программирования высокого уровня и машинно-ориентированными языками;
— правила представления данных на одном из языков программирования высокого уровня (например, на языке Pascal);
— правила записи основных операторов: ввода, вывода, присваивания, цикла, ветвления;
— правила записи программы;
— что такое трансляция;
— назначение систем программирования;
— содержание этапов разработки программы: алгоритмизация, кодирование, отладка и тестирование.
При этом учащиеся должны уметь:
— пользоваться языком блок-схем, понимать описания алгоритмов на учебном алгоритмическом языке;
— выполнять трассировку алгоритма для известного исполнителя;
— составлять несложные линейные, ветвящиеся и циклические алгоритмы управления на одном из учебных исполнителей;
— выделять подзадачи, определять и использовать вспомогательные алгоритмы;
— составлять несложные программы решения вычислительных задач с числами;
— программировать простой диалог;
— работать в среде одной из систем программирования (например, Turbo Pascal);
— осуществлять отладку и тестирование программы и другое.
Предложенные методические рекомендации обучения программированию с успехом используются в МОУ «Лицей № 28 г. Йошкар-Олы». Выпускники 11-х классов после изучения программирования по описанной методике в полной мере овладевают навыками программирования, которые так необходимы в современном веке развивающихся информационных технологий.
1. Аркадьев А. Г., Днепров Э. Д. Сборник нормативных документов. Информатика и ИКТ. — М.: Дрофа, 2008. — 112 с.
2. Окулов С. М. Задачи по программированию. — М.: БИНОМ. Лаборатория знаний, 2006. — 824 с.
3. Малеев В. В. Общая методика преподавания информатики: учеб. пособие. — Воронеж: ВГПУ, 2005. — 271 с.
4. ЛапчикМ. П. Теория и методика обучения информатике: учеб. для пед. вузов. — М.: Издательский центр «Академия», 2008. — 592 с.