Личный кабинет

Объектно-ориентированное программирование для школьников

Как учить школьников объектно-ориентированному программированию
Виталий Потопахин ( Пользователь )
Цитата (Михалкович Станислав, 28.01.2011, 01:21) <{POST_SNAPBACK}>
Ну так я ж на разговор пытаюсь раскрутить. А то все как деревянные - промышленное программирование, не нужно никому...


Да нет никто не деревянный. Просто надо было нам понять друг друга, что мы не о школе говорим.
Станислав Михалкович ( Пользователь )
Цитата (Потопахин Виталий, 28.01.2011, 02:32) <{POST_SNAPBACK}>
Да нет никто не деревянный. Просто надо было нам понять друг друга, что мы не о школе говорим.

:) Я вот смотрю с начала топика. Везде "школьники" и мало где "школа". Может, я чего-то не доглядел. Но контекст был именно такой: есть элементы ООП, есть школьники и есть традиция (в школе) не связывать одно с другим.

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

Поскольку топик - не broadway в обучении программированию, предлагаю не обсуждать, почему в обычных школах и почему каждому школьнику это не нужно, а сконцентрироваться именно на теме топика: как, в каких задачах, что используется. Подчеркну - элементы, а не промышленное использование.
Виталий Потопахин ( Пользователь )
Цитата (Михалкович Станислав, 28.01.2011, 09:03) <{POST_SNAPBACK}>
:) Я вот смотрю с начала топика. Везде "школьники" и мало где "школа". Может, я чего-то не доглядел. Но контекст был именно такой: есть элементы ООП, есть школьники и есть традиция (в школе) не связывать одно с другим.


Ну значит я был не прав.
Федор Ткачев ( Пользователь )
Цитата (Михалкович Станислав, 28.01.2011, 01:21) <{POST_SNAPBACK}>
Ну так я ж на разговор пытаюсь раскрутить.

Мне, в общем, особо нечего добавить к тому, что я уже тут сказал и в паре-тройке докладов от Информатики-21 сформулировал. Переписывать их сюда не буду.
Сергей Кондрашов ( Пользователь )
Это просто симфония: закончилась минорная часть, и вот развитие новой темы…

Если серьезно, благодарю Михалковича Станислава за предложенную интересную тему. Благодарю Потопахина Виталия: Ваше участие придало определенный динамизм...
Бывают ситуации, когда человек говорит «да» или «нет» не объясняя это в полной мере логически и объективно (рискую подвергнуться сарказму, но А.Ф. Лосев, с его умением использовать диалектические методы в процессе построения цельной системы суждений в выбранной области исследования, для меня - большой авторитет, хотя многие его работы сложны для понимания: порой возникает ощущение, что пытаешься разобраться в сложной теореме). Мы бываем категоричны в своей реакции, вопрошая: почему человек говорит «нет» и аргументировано не отстаивает свою точку зрения (иногда говорят: если отрицаешь – предложи свое решение). Во многих случаях такая категоричность (может быть) вредна: очень часто человек, отрицающий что-либо или утверждающий без объяснения, имя опыт, интуитивно чувствуя свою правоту, не всегда готов дать сразу аргументированный ответ: часто решение должно вызреть, если оно не явилось сразу; некоторые вопросы требуют проведения серьезной исследовательской деятельности, практического эксперимента и на них не всегда возможно сразу дать обстоятельный ответ…

Что касается основной темы данного форума: действительно изменениям в области школьного базового образования должна предшествовать серьезная аналитическая работа: любые резкие непродуманные шаги могут нести «травмы» участникам процесса; нововведения требуют длительной подготовки, тестирования (апробации), повторного анализа по результатам эксперимента и т.п.

Однако есть и другие формы обучения: кружки (те, кто жил при социализме вспоминают обилие кружков в стране, и их огромную значимость), факультативы, элективные и профильные курсы, которые отчасти и могут служить изначальным плацдармом для испытаний новаторских и инновационных решений.
Станислав Михалкович ( Пользователь )
Цитата (Дмитрий Колосов, 26.01.2011, 19:29) <{POST_SNAPBACK}>
В любом случае, даже простой обмен мнениями и результатами уже имеет определённую ценность.

Сфера применения ООА и ООП достаточно широка.
К примеру, преподавание школьникам технологии Автоматного программирования Анатолием Шалыто.


Вот, кстати, сегодня мне с моими школьниками пришлось столкнуться с автоматным программированием в событийной программе. Задача была вроде простая: была консольная игра (небезызвестная игра Животные), которая угадывала животное, задуманное пользователем, а если не угадывала, то самообучалась. И - было задание - преобразовать ее в оконную. И выяснилось, что без простого конечного автомата с тремя состояниями - никак. И - догадаться до этого самому - тоже - никак. Рассказывается, кстати, не очень сложно. Понятие Состояния и Перехода между состояниями воспринимаются достаточно естественно.

Так что - иметь представление о конечных автоматах школьнику - вполне можно. Нужны интересные простые примеры, несложное изложение теории - и это можно пробовать помещать в учебники вместо чего-то менее нужного.
Федор Ткачев ( Пользователь )
Цитата (Сергей Кондрашов, 29.01.2011, 20:25) <{POST_SNAPBACK}>
почему человек говорит «нет» и аргументировано не отстаивает свою точку зрения (иногда говорят: если отрицаешь – предложи свое решение).

Но здесь более уместно: negativa non probantur.
Потому что речь не о проблеме, которую обязательно надо решить, а -- пока не будет доказано, что тут есть реальная проблема -- о весьма сыром и практически необоснованным ничем, кроме ссылки на моду предложении.

ООП без умения свободно жонглировать процедурами и записями (динамическими, что подразумевает и списки) -- нонсенс.

А "программирование с объектами" -- во-первых, оно и так есть у тех, кто учит с применением правильной нотации (одновременно пара объектов уже у 5-классников есть -- Ввод и Черепашка, или Ввод и Вывод).

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

Так что обосновываться должны предложения втащить в курс очередную моду.
Станислав Михалкович ( Пользователь )
Цитата (info21, 31.01.2011, 14:35) <{POST_SNAPBACK}>
А "программирование с объектами" -- во-первых, оно и так есть у тех, кто учит с применением правильной нотации (одновременно пара объектов уже у 5-классников есть -- Ввод и Черепашка, или Ввод и Вывод; и состояния у них у всех есть).

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

Так что обосновываться должны предложения втащить в курс очередную моду.

Дословно перефразируя: то, что связано с объектами и используем мы - верно и хорошо, остальное - вредно.

Развивать это не будем и не хотим. Хотя сами ведём (Потопахин, Колосов), но рассказывать об этом тоже не будем.

Так бесславно заканчиваются все высказывания представителей Оберон-сообщества по теме ООП для школьников. Странно как-то это.

Всё ж - хотелось бы услышать другие мнения - не от представителей Оберон-сообщества. Потому что необходимость в этом чувствуется и произносится - неоднократно. На этом форуме, на региональных семинарах школьных учителей, на конференциях в секциях школьной информатики. То есть - везде.
Федор Ткачев ( Пользователь )
Цитата (Михалкович Станислав, 31.01.2011, 17:44) <{POST_SNAPBACK}>
Дословно перефразируя: то, что связано с объектами и используем мы - верно и хорошо, остальное - вредно.
...Так бесславно заканчиваются все высказывания представителей Оберон-сообщества по теме ООП для школьников.

Не надо клеветать, Станислав Станиславович:
это ваша весьма пристрастная интерпретация.
Потому что перефразировка дословной быть никак не может.

Кто виноват, что в Обероне с модулями порядок (и порядок был еще со времен Модулы-2, с 1980 г., уж тридцать лет как).
Любой модуль, инкапсулирующий какие-то данные, оказывается "объектом", работая с которым, автоматом имеем "программирование с объектами".
Гоняем ли черепашку, делаем ли ввод или вывод.
Что тут объяснять.

И раз уж речь зашла.
Для любого объяснения нужна нотация. По возможности ясная и лишенная выкрутасов и всяческих "особенностей".
Именно в качестве такой нотации был разработан Оберон, который к тому же -- о, чудо! -- оказался и полноценным языком программирования: бери и показывай пальцем.

Поэтому, скажем, призывы фанатов альтернативных нотаций рассуждать "без привязки к языку программирования" звучат абсурдно.
Я уже упоминал, что "языково-независимые" тексты Шиперского (колонки где-то в Сети были) читать тяжело. Ровно потому, что объяснять словами, без нотации, то, что нотации органически требует, -- противоречит здравому смыслу.

Мы же не объясняем в школе числа без привязки к системе счисления, тем более без привязки к позиционным системам.

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

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

Цитата (Михалкович Станислав, 31.01.2011, 17:44) <{POST_SNAPBACK}>
необходимость в этом чувствуется и произносится - неоднократно. На этом форуме, на региональных семинарах школьных учителей, на конференциях в секциях школьной информатики. То есть - везде.

Да нет. Везде звучит всего лишь эхо моды на ООП, причем уже увядшей моды.

Обоснований необходимости в точном смысле -- как-то не видно, иначе ссылочка тут уже появилась бы.
Александр Горячев ( Пользователь )
Мне было интересно, как можно обучать ООПрограммированию, начиная с ООАнализа и ООПроектирования. Чтобы была видна польза и от анализа и от проектирования. Вроде бы основная польза от анализа и проектирования ожидается только при работе с большими проектами, при попытках обуздать естественную сложность задачи. Это противоречило тому, что обучают на простых примерах.
Читая эту тему, я подумал, что можно попытаться увидеть и иную пользу от ООА и ООП. Это эволюционный путь создания ПО. Красиво раскладывать код по полочкам полезно не только для того, чтобы держать его в голове под контролем и облегчить отладку. Это ещё можно делать для того, чтобы выращивать программу. Делать как-то работающий скелет и постепенно его наполнять. И здесь раскладывание кода по полочкам сущностей очень даже может помочь.
А проблема выращивания кода актуальна, что для разработчика большой системы, что для разработчика скромного проекта. То есть в этом случае актуальность ООА и ООП не зависит от размера задачи.
Конечно, над такой методикой я ещё детально не задумывался, наверное нужны будут и заранее заготовленные скелеты, которые надо будет наполнять, и много ещё чего, но это просто для меня новая мысль.
Если она для вас очевидна, ну, извините.

footer logo © Образ–Центр, 2019. 12+