Не берём потому, что для классических алгоритмов это уже сделано (ну т.е. рассказать немного можно, конечно)
Не немного, а чем принципиально экспонента в наихудшем случае хуже полинома. Уже хорошо.
для собственных, как правило, уже потребуется математика за пределами школьного курса
К примеру, задача как-то классифицировать графы. И мы по-простому будем вычислять сумму степеней вершин (или удвоенную сумму). Берем матрицу смежности и суммируем все единицы. Разве оценка трудности данного алгоритма будет за пределами школьного курса? ;)
Каких, например?
Высота дерева.
Математика здесь на уровне, не знаю, пятого класса?
Кластерный анализ теперь в 5 классе проходят?
оставлять buffer overflow-уязвимости, хотя это исключительно и только проблема языков типа Паскаль и C.
Прежде всего я предлагаю не загружать детей понятием «уязвимость», хотя бы до тех пор пока взрослые не договорятся, что это такое. Особенно забавно звучит «уязвимость учебной программы»! Далее это проблема и Васика, разве нет?
Во-первых, это модель физического явления [...] это чистая физика, угол падения равен углу отражения, критерий столкновения и т.п. Тут масса тонкостей за простейшей обложкой.
Ага. Будем на уроках информатики изучать чистую физику.
PS BTW Льюис Кэрролл, в числе прочих, подметил, что маленькие дети очень любят абстракции и возникающие из них парадоксы. В этом секрет успеха его Алисы. Чего стоит один вопрос Безумного чаепития «Как нарисовать множество?»
реально до 17 лет давать абстрактные вещи бесполезно — мозг их просто плохо воспринимает
Не соглашусь. Примерно в 15 лет мы с моим школьным товарищем увлеклись Достоевским, а потом философией — естественно наиболее немарксичной и наиболее абстрактной: Платон, Кант, Шопенгауэр, Флоренский. Пытались создать свою философскую систему, часами спорили о солипсизме и детерминизме и т.д. Другие мои товарищи в это время начали писать стихи и прозу (очень нереалистичную). Мы учились в физмат школе, но абстракций физики и математики нам казалось мало. С юношеским максимализмом хотели проникнуть в самую суть мироздания. Не лень было! :)
выражение собственного мнения — может жестоко караться, даже если у школьника реальный художественный талант.
Думаю, что это с учителем не повезло, т.к. знал многих учителей, которые боролись с шаблонным списыванием с учебника и поощряли собственные мнения и в сочинениях, и в устных ответах.
дать хоть какие-то самые базовые понятия о профессии программиста
Не только программиста. И в физическом и в химическом ВУЗах будут учить программировать.
не берём вопрос анализа сложности, это отдельная тема
А почему не берем? Как раз очень важный момент для оценки алгоритма. Если не смотреть на сложность, то почти всё будем решать полным перебором исходя из принципа экономии мышления.
Мне при всём желании сложно вспомнить универсальные алгоритмы из классического списка, для понимания которых требуется хоть какая-то математика
Нпр., теория графов — математика. Алгоритмы на графах, начиная с балансировки деревьев, разве не требуют некоторых знаний из теории графов? А как быть с приближенными вычислениями? А Булева алгебра это не математика? Про криптографию поминать не буду. Что касается computational biology, насколько знаю, там очень активно применяют кластерный анализ.
вы по сути говорите, что за прошедшие 30 лет ничего лучше не изобрели
Нет. Я так не говорю. Я говорю, что ничего лучше для школы и для научных публикаций алгоритмов не изобрели. И не нужно. Pascal-like псевдокод для публикаций всех вполне устраивает — от добра добра не ищут.
Решение задач Прима-Краскала или поиск корней уравнения на уроке информатики — это ещё одна математика под другим соусом. Такая деятельность, во-первых, скучна абсолютному большинству, а во-вторых, очень слабо отражает реальные задачи повседневного программирования. Если уж рассказывать о программировании, то брать хотя бы занятные задачи, в которых, тем не менее, есть алгоритмы.
И поиск корней уравнения на уроке математики не менее скучен. М.б. и там брать более занятные задачи?
выделять буфер постоянного размера — спасибо, давайте ещё научим детей пить и курить
Не знал, что буфер постоянного размера в несколько десятков байтов выглядит столь безнравственно!
Давайте всё-таки идти в ногу со временем.
Давайте только посмотрим сначала: куда мы придем. Всякие шарики от стенок — это уж тогда не доморощенным путем делать, а через DirectX или, еще лучше, Unity3d. А почему Вы уверены, что все школьники хотят делать игрушки или даже играть в них? Тем более в примитивные игрушки, потому как ничего впечатляющего на уроке в школе не сделать. М.б. лет 30 назад Земля вокруг Солнца впечатляла, но сейчас этим никого не удивить. Только предмет дискредитировать.
Ну т.е. все эти заученные стишки просто растворятся и никогда ни на что не повиляют
Я некоторые неприличные частушки помню, которые слышал только один раз в очень юном возрасте, а многие стихи, которые для школы учил и на уроке их не раз слушал, начисто забыл.
В арифметике, когда учат складывать числа столбиком на бумажке, показывают пример, где цифра за цифрой получают результат, а только потом предлагают ученику сложить два другие числа.
Только еще область видимости имен объяснить… и как модули подключать.
Тогда на каждый пункт еще желательно по одному примеру, который нужно как минимум записать, а как максимум — выполнить задачку, похожую на него, в классе и еще несколько дома.
А по сути, если введение в модульное программирование займёт, прости госпади, 15 минут одного урока, и больше к нему возвращаться не придётся, то почему его не дать? Хуже точно не будет.
Да. Хуже не будет. Кто и запомнит — тот не поймет. ИМХО это тема многих уроков.
Программа — это не сочинение. Она имеет практический смысл, даже если писалась в учебных целях.
А разве сочинения не имеют практического смысла? Нпр., обсуждаемая статья? ;)
Неспособность к декомпозиции задачи (выраженной обычным человеческим языком) — главная проблема начинающих программистов.
Когда-то детей учили решать задачи по арифметике через последовательные вопросы: сколько яблок у Пети? сколько яблок у Саши? Потом сразу стали учить записывать уравнение, обозначая через Х искомое. М.б. первый метод лучше развивал способность к декомпозиции.
Знание разных алгоритмов и ЯП — это как знание молотка и киянка — оно полезно, но только вместе с умением их применять
В статье написал:
Изучение алгоритмов вырабатывает умение последовательно и четко излагать свои мысли, описывать по шагам какое-либо действие. Такое умение не лишнее в любой специальности.
дети отлично умудряются самостоятельно собирать радиоприемники
Да. И я в 5 классе сделал детекторный приемник не очень понимая принцип работы колебательного контура. А потом в старших классах на физике увидел, что принцип очень простой, когда формулы понятны.
нафига оно нужно программирование в школах
Только чтобы определиться. А то пойдет в ВУЗ на физику или на химию, а и там программирование. И на экономическом. На литфаке, наверное, нет.
См. С.М.Окулов, Программирование в алгоритмах: перестановки, размещения, сочетания, разбиение числа на слагаемые, последовательность из нулей и единиц без 2х единиц подряд и т.д. Я когда-то в школе основы комбинаторики на уроках математики проходил. Не знаю есть ли комбинаторика в современной школе.
Не студентам, а школьникам! Студент хочет, чтобы его научили программировать, а большинство школьников считает, что им это не нужно. И большинству действительно не нужно.
А что еще?
Что-то такое же понятное на бытовом уровне. Нпр., кратчайшие пути в графе достаточно наглядны. В комбинаторике много занимательных задач.
на выходе получим шаманов и ремесленников, а не инженеров
Школа не делает инженеров. Всё, что сказано выше — очень разумно, но это для подготовки настоящих инженеров, которым, как бедным школьникам, не надо еще писать сочинение про образ Татьяны Лариной :)
Как определить, что человек понял, что такое мат.задача? — С первых классов школьники решают задачки типа «из пункта А в пункт Б», «из одной трубы втекает..., из другой вытекает ...» и т.д. Постепенно приходит понимание, что задача состоит из «дано» и «найти». Так и с алгоритмом — есть типовые задачи, есть типовые алгоритмы. Знакомство с ними дает ученику понимание.
Хорошая статья. С вами мы уже немного копий поломали и… о-да!
О- да! Рад нашей новой встрече! Спасибо! Рад, что статья Вам понравилась. Конечно же полного согласия быть не может, иначе не о чем было бы писать и нечего было бы обсуждать.
Мне кажется, взгляд не такой уж и «мета».
Если чисто формально, то я давно не преподаю.
Образование — чертовски сложная система, которая в свою очередь, является частью государства — другой, еще более сложной системы.
Именно. Но ИМХО какие цели поставить — таким образование и будет.
Небольшой мысленный эксперимент. Дано: университет, например, МГУ. Там ряд факультетов: химический, физический, биологический, исторический, филологический. На каждом проходят специальные предметы. Попробуем представить себе, что все факультеты объединили и все студенты проходят все предметы всех факультетов. Зубрилы сойдут с ума от перегрузки, а лодыри не пострадают. Школа — это такой объединенный университет. Чтобы зубрилы выжили, их нужно разгрузить, т.е. каждого предмета давать на порядки меньше, чем дают на любом факультете МГУ.
Но я сюда еще обязательно вернусь!
Обязательно возвращайтесь. Вы — практик, за Вами последнее слово.
я вам не про пряники на базаре говорю, а про полноценную дорогостоящую технологию, которую что бы создать необходимы вложения
Ну, вот. Сначала сказали:
молодой учёный разработал термоядерный реактор у себя дома
А теперь оказывается, что ничего он не разработал, т.к. «необходимы вложения». Подменяем условия задачи, чтобы опровергнуть любое решение.
что бы вспахать поле и что-то там вырастить мне нужен комбаин, склады машины и рабочие, а сажать картошку с помощью лопаты и продавать на местном рынке, да ещё и 30к рублей налогов платить государству, так себе занятие…
Многие лопатой работают и живут, но некоторые любят говорить, что им нужны условия и даже картошку для собственного пропитания, а не то, что для продажи, вырастить не могут.
молодёжь хочет ещё как
Не вижу доказательств этому утверждению. А вижу, что лопатой картошку сажать не хотят.
К примеру, задача как-то классифицировать графы. И мы по-простому будем вычислять сумму степеней вершин (или удвоенную сумму). Берем матрицу смежности и суммируем все единицы. Разве оценка трудности данного алгоритма будет за пределами школьного курса? ;)
Высота дерева.
Кластерный анализ теперь в 5 классе проходят?
Прежде всего я предлагаю не загружать детей понятием «уязвимость», хотя бы до тех пор пока взрослые не договорятся, что это такое. Особенно забавно звучит «уязвимость учебной программы»! Далее это проблема и Васика, разве нет?
Ага. Будем на уроках информатики изучать чистую физику.
А почему не берем? Как раз очень важный момент для оценки алгоритма. Если не смотреть на сложность, то почти всё будем решать полным перебором исходя из принципа экономии мышления.
Нпр., теория графов — математика. Алгоритмы на графах, начиная с балансировки деревьев, разве не требуют некоторых знаний из теории графов? А как быть с приближенными вычислениями? А Булева алгебра это не математика? Про криптографию поминать не буду. Что касается computational biology, насколько знаю, там очень активно применяют кластерный анализ.
Нет. Я так не говорю. Я говорю, что ничего лучше для школы и для научных публикаций алгоритмов не изобрели. И не нужно. Pascal-like псевдокод для публикаций всех вполне устраивает — от добра добра не ищут.
И поиск корней уравнения на уроке математики не менее скучен. М.б. и там брать более занятные задачи?
Не знал, что буфер постоянного размера в несколько десятков байтов выглядит столь безнравственно!
Давайте только посмотрим сначала: куда мы придем. Всякие шарики от стенок — это уж тогда не доморощенным путем делать, а через DirectX или, еще лучше, Unity3d. А почему Вы уверены, что все школьники хотят делать игрушки или даже играть в них? Тем более в примитивные игрушки, потому как ничего впечатляющего на уроке в школе не сделать. М.б. лет 30 назад Земля вокруг Солнца впечатляла, но сейчас этим никого не удивить. Только предмет дискредитировать.
Именно так!
А разве сочинения не имеют практического смысла? Нпр., обсуждаемая статья? ;)
В статье написал:
Только чтобы определиться. А то пойдет в ВУЗ на физику или на химию, а и там программирование. И на экономическом. На литфаке, наверное, нет.
Что-то такое же понятное на бытовом уровне. Нпр., кратчайшие пути в графе достаточно наглядны. В комбинаторике много занимательных задач.
О- да! Рад нашей новой встрече! Спасибо! Рад, что статья Вам понравилась. Конечно же полного согласия быть не может, иначе не о чем было бы писать и нечего было бы обсуждать.
Если чисто формально, то я давно не преподаю.
Именно. Но ИМХО какие цели поставить — таким образование и будет.
Небольшой мысленный эксперимент. Дано: университет, например, МГУ. Там ряд факультетов: химический, физический, биологический, исторический, филологический. На каждом проходят специальные предметы. Попробуем представить себе, что все факультеты объединили и все студенты проходят все предметы всех факультетов. Зубрилы сойдут с ума от перегрузки, а лодыри не пострадают. Школа — это такой объединенный университет. Чтобы зубрилы выжили, их нужно разгрузить, т.е. каждого предмета давать на порядки меньше, чем дают на любом факультете МГУ.
Обязательно возвращайтесь. Вы — практик, за Вами последнее слово.
А теперь оказывается, что ничего он не разработал, т.к. «необходимы вложения». Подменяем условия задачи, чтобы опровергнуть любое решение.
Многие лопатой работают и живут, но некоторые любят говорить, что им нужны условия и даже картошку для собственного пропитания, а не то, что для продажи, вырастить не могут.
Не вижу доказательств этому утверждению. А вижу, что лопатой картошку сажать не хотят.