Обновить
14

Химик и программист.

32
Подписчики
Отправить сообщение
По алгоритмам, только одна (на русском), остальное приходится перерабатывать для Питона самостоятельно.


Вот именно. Книга хорошая, только без ООП она была бы проще для школьников. ООП, к сожалению, отвлекающий фактор для понимания сути алгоритма. И, с другой стороны, на тривиальных задачах плохо видна мощь ООП, и им не понятно, зачем оно нужно.
А в урочное время Scratch. Для 6 класса это не выглядит серьезно. А после 6 класса какой язык? Однако, повторюсь — дело ИМХО не в самом языке, а в том, что чем новей язык — тем труднее найти на нем хорошие учебники не по языку, а по основным алгоритмам.
2-3 классы м.б. рановато для сколь нибудь серьезного программирования? Конечно поймут «черепашью графику», но ИМХО приоритетнее математика, физика, химия. Конечно ПК должны уметь включать и писать домашние сочинения на нем лучше, чем на бумаге.
На мой взгляд в школе ЯП не главное. Питон сильно сложнее Паскаля. Особенно для неискушенного: особенности, которые специалист, знающий другие языки, воспримет правильно, школьнику могут стать камнем преткновения. В статье рувики подробный список недостатков, многие из которых ценители языка воспринимают как достоинства. Но ИМХО все эти тонкости лишние для школьника. Для работы Паскаль и Турбо Паскаль могут быть не всегда удобны, просто недостаточны, а для изучения алгоритмов вполне достаточны. Зачем всем школьникам изучать Ардуино я не понимаю. ИМХО это что-то факультативное: один школьник может посещать авиамодельный кружок, другой — судомодельный, третий — школу бальных танцев, а четвертый на баяне учиться.
Надеюсь, что они этим гордятся. Вспоминаю себя: хорошо тянул по химии, получил задание с товарищем поставить простой опыт перед классом — получить сернистый газ и показать, как он со щелочью реагирует, т.е. пурген обесцвечивает. Готовились после уроков 3 часа в лаборантской хим. кабинета. Демонстрация всем очень понравилась, и мне с товарищем особенно.
А у меня проблема следующая, такие дети и другие тоже иногда приходят во время занятий, если компьютеры свободные, то конечно разрешаю позаниматься. Но у меня занятия, времени им не уделишь. И краем глаза видно, как у них, что-то не получается.


Один коллега рассказывал, что из числа топовых учеников назначает дежурного, который на уроке должен во время выполнения самостоятельных заданий помогать всем (и своим и пришлым) в технических вопросах: у кого-то комп завис и т.д.
PS Забыл дать домашнее задание: транспонировать матрицу 4х4 с циклами и без.
Пожалуйста. Прежде всего, по моим наблюдениям, ситуация, когда все хотят понять — довольно редкая. Это повезло с аудиторией. Но в следующий раз может не повезти с той же аудиторией: кто-то не выспался, кто-то не в настроении и т.д. Бывают и «тугодумы» — если спросить он повторит мои объяснения дословно, но решать простейшие задачки он будут способен только завтра — ему нужно время на обдумывание. Это не недостаток — завтра он может будет решать лучше всех, это специфика данного человека. Бывают «экономные» — выслушал, но вникать не спешит, а сначала посмотрит зачем это нужно и стоит ли вникать. Бывают стеснительные — догадывается, как решить, но если решит неверно — над ним могут смеяться, а если верно — будет выглядеть выскочкой, и то и это ему нежелательно, поэтому молчит, как партизан на допросе. И т.д. — очень широкий спектр мотиваций.

Все кивают, что поняли. Даешь задачку и начинаются затыки. Решает 1 из 10


«Ok. Молодец! Отлично. Только объясните, пожалуйста, свое решение, чтобы все поняли.»

После его объяснений спрашиваю: «Все поняли? Или ничего не поняли, тогда задавайте вопросы докладчику». Если вопросов нет, то предлагаю добровольцу повторить объяснение — можно по-своему, или хотя бы сказать в чем основная идея решения — нпр., в задаче транспонирования матрицы идея поменять индексы.

В случае тотального непонимания возвращаюсь к первому примеру:

writeln('Цикл 1:');
for i:=1 to 5 do
 writeln(i);


И объясняю технику раскрытия циклов, записав эквивалентный код:

i := 1; writeln(i); 
i := 2; writeln(i);
... 


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


Давайте не будем называть алгоритмы арифметики неограниченной разрядности, поиск кратчайшего пути в графе и т.п. олимпиадными! Это классические алгоритмы, нужные и важные очень многим профессиональным спецам совсем не для олимпиад. Иначе, пожалуй, книги Кнута нужно переименовать в олимпиадные задачники ;)

Не каждый взрослый поймет их, чего уж говорить о детях


В полном объеме теория графов — одна из сложнейших областей современной математики. Но на начальном уровне понятие графа предельно наглядно. Школьная тригонометрия гораздо сложнее. (Не случайно, нпр., задача 4х красок пользуется такой популярностью у полных дилетантов — решают все: от пионеров до пенсионеров).

повышать СРЕДНИЙ уровень школьного образования не обязательно путем повышения верхней границы.


Совершенно согласен. И именно это (вслед за Окуловым) и предлагаю: изучать не новейшие технологии и сложнопродвинутые языки, а основы — алгоритмы начиная с Евклида и Эратосфена.

Эти люди может быть никогда не будут работать в IT. но кому в работе будет лишним умение последовательно и точно излагать мысли?


Да. Именно это и дает изучение алгоритмов. А как составной оператор записать — фигурными скобками или begin-end — это большинству школьников потом будет неважно.
Почему нет? Далее я объясняю двумерный массив — матрицу, объясняю предельно упрощенно: матрица — это таблица. Привожу пример инициализации и распечатки матрицы:

randomize;
for i:=1 to n do
 for j:=1 to n do
  m[i,j] := random (10);

...


Объясняю, что такое транспонированная квадратная матрица. И предлагаю за 10 минут написать программу для транспонирования. Первый получает 5. Не все успевают быстро решить, но понимание приходит ко многим.
как объяснить циклы

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

writeln('Цикл 1:');
for i:=1 to 5 do
 writeln(i);

writeln('Цикл 2:');
for i:=3 to 7 do
 writeln(i);

writeln('Цикл 3:');
for i:=1 to 1 do
 writeln(i);

writeln('Цикл 4:');
for i:=1 to 0 do
 writeln(i);
Книга явно разработана для того, чтобы готовить олимпиадников.


ИМХО в книге навыки строго обязательные для хорошего специалиста, будь он на ЗП или фрилансер.

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


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

Вряд ли школьникам 2-6 классов такие задачки будут по силам.


Сложный вопрос. Может не все задачки. Может не всем, а только заинтересованным. У учителя есть материал для эксперимента (в хорошем смысле слова, нпр., двоек не ставить, добровольное участие учеников и т.д.).

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


Олимпиады не самоцель, а только стимул для углубленного изучения. На мой взгляд во всех честных путях знание алгоритмики важнее знания последней спецификации HTML. А на других путях: по знакомству бывает возможно возглавить отдел программирования не зная никакого языка кроме русского-бюрократического.

В предыдущих комментариях разговор зашел об учебниках и методике преподавания.
На мой взгляд, очень удачное учебное пособие: С.М.Окулов, Программирование в алгоритмах, М.: БИНОМ, 2004. В предисловии автор отмечает, что книга в первую очередь предназначена для учителей и учащихся школ с углубленным изучением информатики. Упор делается на алгоритмику, причем на широко известные классические задачи, а не на выдуманные только для учебных целей. Реализация — простейшая: Паскаль. Как бы его ни критиковали, но этот «устаревший» язык зарекомендовал себя в качестве учебного языка и языка публикаций (в последнем случае сейчас чаще используется Pascal-like псевдокод). Выучить Паскаль для школьного применения гораздо проще и быстрее, чем многие другие языки. А строгости языка дисциплинируют учащихся в стилевом плане. Поняв основы, т.е. основные идеи алгоритмики и реализации, тем, кто захочет дальше учится программированию (в ВУЗах, на курсах, самостоятельно) будет гораздо проще осваивать новые технологии и современные языки. Без этих основ учащийся может не увидеть за деревьями леса.
Да. Слышал, что с трассировкой печатных плат даже скромная мини-ЭВМ PDP-11 (Электроника-60) справлялась.
Согласен, что есть много проблем с code review. И это может сильно тормозить процесс разработки. Но если компонента работает хорошо, то это не значит, что будет работать хорошо в следующей версии программы. Если разраб этой компоненты перейдет на другую работу, то другой м.б. вынужден сделать там какие-то изменения.
Любой продавец обязан был дать планы «Мир», «Наука» и т.д. и газету (многие магазины ее выписывали), а дальше сам школьник должен был выбирать из планов и газеты. Любой продавец обязан был объяснить как оставить заказ на нужную книгу. Я сам узнал в книжном и никто из родственников мне не помогал. Про богатства тех времен уже привел пример ниже для 1990 г.: книга про Лисп 1 р. 40, средняя ЗП 303 р., обед студента — 1р.
Когда не знаешь — спрашивай. Каждый продавец книжного магазина — должен был знать. Думаю, на этом можно закончить это обсуждение.
Если Вы не знали про газету с тиражом 200 тысяч экземпляров — это не значит «никто не знал».
Википедии не было, а планы в каждом книжном магазине были. А еще газета «Книжное обозрение».
В 1975 году была введена система сводного тематического планирования издания литературы. Издательства должны были составлять и публиковать в открытой печати тематический план выпуска литературы, который стал основным показателем его деятельности.


Википедия

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность