Почему школьники не любят уроки программирования
vk f t

Почему школьники не любят уроки программирования

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

Когда речь заходит о школьном программировании, ученики смотрят на всех как на безумных: о чём вы вообще говорите? Чтобы вы поняли всю глубину проблемы, скажем, что больше половины российских выпускников не знают, что такое алгоритмы и логические операции. Написать программу хоть на каком-нибудь языке могут только ученики профильных классов в школах с углублённым изучением физико-математических дисциплин.

Мы специально не рассматриваем в этом материале квалификацию преподавателя и его педагогические способности. Будем исходить из того, что у нас есть обычный учитель информатики, который знает свой предмет, но действует в условиях, которые часто от него не зависят.

Вот в чём проблема и как тут быть.

Старые компьютеры

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

На устройствах, которыми обычно располагают школы, сложно преподавать что-то современное, потому что оно банально не запустится. В итоге практическая работа превращается в мучение и проверку терпения учеников. Можно, конечно, поставить какой-нибудь лёгкий Linux и настроить его для необходимых задач, но чаще всего такой квалификации у учителя нет.

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

Древние языки программирования

Если спросить детей, какой язык они проходят на информатике, рейтинг ответов будет таким:

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

С точки зрения кадров это, наверное, правильно, потому что не нужно переучивать учителей и переписывать учебники. Но ни Паскаль, ни Бейсик, ни блок-схемы сейчас не нужны в профессиональном программировании — разработческая мысль давно шагнула вперёд.

Ещё это тесно связано с возрастом школьных компьютеров, о которых мы говорили. Современная среда разработки для какого-нибудь модного Go или даже классического языка C# на них просто не запустится. Вот и приходится использовать Паскаль, который работает на чём угодно, но который полностью устарел для практического применения.

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

Что делать: предлагать ребёнку самостоятельно изучать более современные языки — C, JavaScript, Swift, Go, Python и другие.

Нет единой методической базы

Каждый учитель сам решает, как рассказывать о своём предмете. Один подойдёт к вопросу творчески и заинтересует детей, другой отнесётся формально и прочитает материал по учебнику. Но и здесь есть подвох: учебников по информатике много, все они одобрены Минобром, и все дают разные представления о программировании. Книга авторства Семашко для 10 класса рассказывает про блок-схемы и абстрактный язык, Угринович предлагает изучать Visual Basic, а Босова и Поляков вообще ничего не говорят про программирование в 10 классе.

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

Это примерно как если бы детей в школе учили вождению: где-то на «тойотах»-автоматах, где-то на убитых «запорожцах», где-то на тетрадях в клетку, а где-то ещё их бы учили собирать и разбирать танк. И ребёнок, к примеру, перевёлся с уроков в тетрадке на разбор танка.

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

Непонятно, как применять знания в жизни

Когда выпускник начинает изучать программирование глубже, чем в школе, то понимает, что между его знаниями и современными языками — пропасть. Проще начать всё заново или вообще не заниматься этим, чем опираться на старые сведения.

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

В современных языках программирования точно так же многое уже встроено в язык и не требует сложных действий. Возьмём простую задачу: отсортировать элементы массива по порядку, расставить их от большего к меньшему. На Паскале код выглядит так:

    
language: Pascal
Program SortMas;

var

i, j, k: integer;

 mas: array[1..20] of integer;

Begin

 randomize;

 for i := 1 to 20 do mas[i] := random(100);

 writeln;

 writeln('массив до сортировки');

 for i := 1 to 20 do write(mas[ i], ' ');

 for i := 1 to 19 do

   for j := i + 1 to 20 do

     if mas[i] < mas[j] then

     begin

       k := mas[i];

       mas[i] := mas[j];

       mas[j] := k;

     end;

 writeln('массив после сортировки');

 for i := 1 to 20 do write(mas[ i], ' ');

End.


Скопировать код

Код скопирован

А теперь посмотрим на код JavaScript, который делает то же самое:

    
language: JavaScript
var arr = [];

for (var i = 0; i < 20; i++ ) {

  arr.push( Math.round( Math.random() * 100 ));

}

for (i = 0; i < arr.length; i++) {

  console.log(arr[i]);

}

arr.sort((a, b) => a - b);

console.log('Массив после сортировки');

for (i = 0; i < arr.length; i++) {

  console.log(arr[i]);

}


Скопировать код

Код скопирован

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

Что делать: стимулировать в детях самостоятельное изучение программирования. На десятке примеров со Stack Overflow можно иной раз узнать больше, чем в целом предлагает школа.

Как разжечь в ребёнке интерес к программированию

Лучший способ привлечь детей к любому занятию, в том числе программированию, — личный пример. Когда в семье мама и папа увлекаются кодом, пусть даже и непрофессионально, ребёнку тоже будет интересно попробовать. Робототехника, программируемые контроллеры, Arduino и Raspberry Pi, программы на Scratch и робоконструкторы — всё это помогает разжечь интерес.

Если просто заставлять ребёнка заниматься, в то время как в семье никто не интересуется кодом, эта затея скорее провальная. Личный пример — лучший путь.

Ещё по теме