vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Вчера одна 15-летняя девушка, дочь моих хороших знакомых, с гордостью опубликовала в своём ЖЖ описание своих первых заработавших программ со школьных уроков по программированию.

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

Даже ежу (но не нашим школьным преподавателям информатики) понятно, что эта задача вообще-то решается по замкнутой формуле. Без всяких циклов. Гаусс, помнится, аналогичную задачу в третьем классе в уме решал, выведя указанную формулу самостоятельно. Современным школьникам, насколько я помню школьный курс алгебры, самостоятельно выводить формулу даже не надо. Надо только сообразить что эта задача решается по той формуле.

Соответственно, я запостил данной девушке коммент с подковыркой "Надеюсь эта программа не содержит циклов и скорость её не зависит от введенного числа?".

Совершенно неожиданно для меня отец и отчим этой девушки, взрослые люди, профессиональные программисты, один из которых имеет опыт руководства крупным проектом, а другой весьма уверенно растет в неплохого software architect в один голос стали высказываться на тему того, что я не по делу вмешиваюсь в учебный процесс, и вообще не рановато ли таким сложным вещам девочку учить (девочка на вид выглядит совершенно взрослой дамой, и на ролевых играх успешно играет весьма непростых взрослых персонажей, чья роль требует решения нетривиальных задач).

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

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

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

Удивительно не то, что этого не понимают замученные учениками и методистами школьные учителя. Удивительно то, что родители, которые вообще-то сами эти принципы знают и умеют ими пользоваться, не считают что в 15 лет им пора учить. Или не считают что им стоит учить на примере школьных заданий.
Page 3 of 4 << [1] [2] [3] [4] >>

Date: 2006-11-12 04:56 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
Ничего не надо делать, так как сложно придумать более примитивный и незахламленный пример для написания первой рекурсивной функции.
Другой вопрос, что через 10 минут нужно показывать рекурсию для вещей, где она действительно нужна.

Date: 2006-11-12 05:25 pm (UTC)
From: [identity profile] dottedmag.livejournal.com
>Отчасти согласен, но пункт про десктопные БД мне кажется избыточным.

То есть показать, каким образом нужно эффективно хранить свои данные - избыточно?

Я вот вспоминаю, какой ужас наблюдается в компутере типичного виндовозника-юзера, и понимаю, что desktop database с полнотекстовым поиском вместо завалов c:\notes\temp\temp\1.txt был бы куда удобнее.

Date: 2006-11-12 08:36 pm (UTC)
From: [identity profile] zpt.livejournal.com
А что, выигрыша не будет? Если, конечно же, следующее (не)четное число получать, прибавляя 2 к предыдущему (не)четному числу.

Date: 2006-11-12 08:36 pm (UTC)
From: [identity profile] zpt.livejournal.com
А что там с 6n+-1?

Date: 2006-11-12 10:12 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
Все простые числа начиная с 5 являются подмножеством ряда 6n +- 1 для натуральных n. Такое же приближение как и все нечетные, к примеру, но наиболее удобное на практике, анапример в качестве базиса для решета Эратосфена. Дальнейшие уточнения слишком громоздки.

Date: 2006-11-12 10:30 pm (UTC)
From: [identity profile] salas.livejournal.com
Да, мне товарищи уже указывали, что автор формально прав - указанный алгоритм в самом деле при таком распараллеливании ускорится.

Date: 2006-11-13 02:11 am (UTC)
From: [identity profile] grundik.livejournal.com
Примеры в студию. С описанием алгоритма.
Или +- сантиметр считаем за "отцентрировано"?

Date: 2006-11-13 05:59 am (UTC)
From: [identity profile] silly_sad.livejournal.com
вы совсем слепой?
ну тогда извините, я вам не помошник.
жаль что вы в детстве ничего не строили из кубиков...

Date: 2006-11-13 06:01 am (UTC)
From: [identity profile] silly_sad.livejournal.com
а помоему потом будет очень трудно изжить в себе Первое Впечатление о рекурсии как о чём-то ненужном и исключительно вредном, ресурсоёмком.

Date: 2006-11-13 06:04 am (UTC)
From: [identity profile] silly_sad.livejournal.com
а я бы в 15 лет точно сдал бы НЕ ТОТ который хотел преподаватель
:-)

Date: 2006-11-13 06:05 am (UTC)
From: [identity profile] silly_sad.livejournal.com
чо-то я не понял!
а разве недостаточно делить только на простые числа?

Re: чему учить

Date: 2006-11-13 06:10 am (UTC)
From: [identity profile] silly_sad.livejournal.com
однажды я присутсвовал на уроке где мой товарищ объяснял детям что такое циклы.
ну долго пытался рисовать класску жанра не доступную детям в простых ощущениях.
потом я вмешался и объяснил детям что цикл это когда варишь картошку - простейший циклический процесс.
Препод был в шоке некоторое время, детям тоже понравилось.

Re: чему учить

Date: 2006-11-13 06:16 am (UTC)
From: [identity profile] blogrov.livejournal.com
а я яичницу жарил. тоже понравилось.

Date: 2006-11-13 06:41 am (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
О, ты задался верным вопросом о достаточной точности центрирования.

Date: 2006-11-13 09:58 am (UTC)
From: [identity profile] ex-dp-wiz635.livejournal.com
"Итерация свойственна человеку. Рекурсия - божественна."
А сворачивание в формулу это дзен и не-деяние (:

Date: 2006-11-13 11:33 am (UTC)
From: [identity profile] yarikas.livejournal.com
Где-то в другом месте я читал, что чем выше уровень, на котором проводится оптимизация, тем больше её эффективность. Т.о. крупную оптимизацию всегда стоит начинать с пересмотра модели.

Date: 2006-11-13 04:13 pm (UTC)
From: [identity profile] lamed.livejournal.com
Как известно, если у нас есть быстрая машина и медленная, то всегда найдется такая пара алгоритмов, что первый будет на быстрой машине выполняться медленнее, чем второй - на быстрой ;)

Date: 2006-11-13 04:18 pm (UTC)
From: [identity profile] lamed.livejournal.com
На самом деле ребенка просто хотели научить писать циклы. И, естественно, как и любой простой пример, на котором можно учиться, это пример глуп. Но умный пример будет настолько сложен, что большую часть времени займет растолковывание постановки задачи, а не само выполнение упражнения.

Date: 2006-11-13 10:48 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
Исходя из собственного опыта, рискну не согласиться. Когда третьим-четвертым примером приводится красивая фрактальная фигурка, это не забывается.

Date: 2006-11-13 10:51 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
Кстати, чем рекурсивное вычисление факториала принципиально хуже итерационного ?
Код меньше. Понятнее. Вычислительная сложность та же.
Большинство оптимизирующих компиляторов развернут его в инлайн-цикл, так что на затратах памяти тоже не скажется ;)
Хм ?

Date: 2006-11-13 10:52 pm (UTC)
From: [identity profile] zhuk-s.livejournal.com
PS.
Вот за тупое рекурсивное построение ряда фиббоначи я бью ногами :)
Page 3 of 4 << [1] [2] [3] [4] >>

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

August 2025

S M T W T F S
     1 2
3456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 3rd, 2025 08:13 pm
Powered by Dreamwidth Studios