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

Информатика и преподавание ООП

Евгений Багоцкий ( Пользователь )
В стандарте информатики есть раздел "Моделирование".
Есть также раздел "Алгоритмизация и программирование" где в идеале должны изучаться алгоритмы вне контекста языка программирования.
Эти разделы толкуются в школах и колледжах очень расплывчато.
В худшем случае это - демонстрация 3 типов блок схем - последовательной, с разветвлением и цикл. для моделей - общая ссылка- пример чего-то и все. Если на это наложить плохое (начальное) знание высшей математики скажем в вопросе вычисления рядов,вывода рекуррентных формул то можно с успехом завалить школьников задачами на вычисление рядов, сумм, произведение (что с успехом и применяется при обучении языку программирования - но зачем???)
В лучших случаях - это изучение общих для языков программирования алгоритмов работы со структурами данных - в 1-ю очередь для массива: (сортировки (в идеале до 6 видов),поиск, алгоритмы со строками (разбиение на слова).
Редко (за малым исключением) доходит до динамических структур данных - список, стек, очередь.
(для сравнения американские издания по теории алгоритмов написанные классиками имеют несколько сотен страниц)
Концепция ООП изучается также нечасто. А ведь именно концепции важны, а
не обучение устаревшему уже языку Паскаль. Можно даже сказать, что ООП берет начало из упомянутых разделов Алгоритмизация и моделирование
Предлагается в старших классах (9-11)
1)сделать упор на изложение основ ООП. включив изложение понятий классы, наследование, полиморфизм контейнерные классы - как пример - список, стек, и проч.
2)излагать понятия объектной и алгоритмической декомпозиции (с примерами)

Понятие объектной декомпозиции близко к понятию "имитационная модель" и, тем самым
имеет прямое отношение к разделу "Моделирование".
Неплохо бы кроме поднадоевших блок-схем алгоритмов давать понятия
диаграмм : классов, состояний (прецедентов)
- т.е основы языка UML.
Есть очень интересные модели, включающие сложные схемы наследования.
Мне кажется что все это скорее относится к информатике, чем к программированию,
хотя понимаю , что это- не для среднего ученика.
Прим. (в свое время автор сталкивался и с таким своебразным изучением ООП -
на примере Macromedia Flash ) - но это скорее для более маленьких
Михаил Крекин ( Пользователь )
Цитата (Евгений Багоцкий, 13.06.2011, 22:27) <{POST_SNAPBACK}>
Предлагается в старших классах (9-11)
1)сделать упор на изложение основ ООП. включив изложение понятий классы, наследование, полиморфизм контейнерные классы - как пример - список, стек, и проч.
2)излагать понятия объектной и алгоритмической декомпозиции (с примерами)

Понятие объектной декомпозиции близко к понятию "имитационная модель" и, тем самым
имеет прямое отношение к разделу "Моделирование".
Неплохо бы кроме поднадоевших блок-схем алгоритмов давать понятия
диаграмм : классов, состояний (прецедентов)
- т.е основы языка UML.

Я дико извиняюсь...
Вы в школе давно были?
Не в физ-мат лицее, а в обычной общеобразовательной муниципальной?
Сергей Косаченко ( Пользователь )
Цитата (Евгений Багоцкий, 14.06.2011, 02:27) <{POST_SNAPBACK}>
В стандарте информатики есть раздел "Моделирование".
Есть также раздел "Алгоритмизация и программирование" где в идеале должны изучаться алгоритмы вне контекста языка программирования.
Эти разделы толкуются в школах и колледжах очень расплывчато.
В худшем случае это - демонстрация 3 типов блок схем - последовательной, с разветвлением и цикл. для моделей - общая ссылка- пример чего-то и все. Если на это наложить плохое (начальное) знание высшей математики скажем в вопросе вычисления рядов,вывода рекуррентных формул то можно с успехом завалить школьников задачами на вычисление рядов, сумм, произведение (что с успехом и применяется при обучении языку программирования - но зачем???)
В лучших случаях - это изучение общих для языков программирования алгоритмов работы со структурами данных - в 1-ю очередь для массива: (сортировки (в идеале до 6 видов),поиск, алгоритмы со строками (разбиение на слова).
Редко (за малым исключением) доходит до динамических структур данных - список, стек, очередь.
(для сравнения американские издания по теории алгоритмов написанные классиками имеют несколько сотен страниц)
Концепция ООП изучается также нечасто. А ведь именно концепции важны, а
не обучение устаревшему уже языку Паскаль. Можно даже сказать, что ООП берет начало из упомянутых разделов Алгоритмизация и моделирование
Предлагается в старших классах (9-11)
1)сделать упор на изложение основ ООП. включив изложение понятий классы, наследование, полиморфизм контейнерные классы - как пример - список, стек, и проч.
2)излагать понятия объектной и алгоритмической декомпозиции (с примерами)

Понятие объектной декомпозиции близко к понятию "имитационная модель" и, тем самым
имеет прямое отношение к разделу "Моделирование".
Неплохо бы кроме поднадоевших блок-схем алгоритмов давать понятия
диаграмм : классов, состояний (прецедентов)
- т.е основы языка UML.
Есть очень интересные модели, включающие сложные схемы наследования.
Мне кажется что все это скорее относится к информатике, чем к программированию,
хотя понимаю , что это- не для среднего ученика.
Прим. (в свое время автор сталкивался и с таким своебразным изучением ООП -
на примере Macromedia Flash ) - но это скорее для более маленьких

Для расширенных и углубленных школьных программ зерна здравого смысла в Ваших словах имеются. Для общеобразовательных профилей, либо для гумманитарных - имхо, перебор.
Михаил Густокашин ( Пользователь )
ООП - штука громоздкая и состоящая из многих нюансов. В школе ее преподавать не нужно, даже в физмат. Потому что:
1) дети все забудут даже если выучат
2) на тупых школьных примерах проникнутся ООП невозможно, т.к. плюсы ООП по сравнению с процедурным перевешивают минусы только начиная с проектов в несколько тысяч строк кода
3) на изучение сложных синтаксических конструкций ООП теряется много времени, которое можно и нужно посвящать развитию мышления ребенка
Если и изучать ООП, то на примере чего-нибудь современного где это вменяемо реализовано. Например, Ruby. Но зачем?
Серж Андреев ( Пользователь )
А мне кажется, что, наоборот, ООП облегчают разработку программ, улучшают читаемость кода, позволяет сделать большее за меньшее время. Более того, при правильном подходе ребенку будет интересно создавать объекты, которые, например, являются описанием неких визуальных данных. Взять, например, и реализовать что-то наподобие окна оконного менеджера, перечень элементов которого заполнить созданными детьми объектами. Ведь когда видишь результата своего труда, то труд становится более эффективным. А школьники результаты своего труда видят ой как нечасто.
Евгений Багоцкий ( Пользователь )
Собственно вы подтвердили и мое мнение, что в средней по уровню школе низкий уровень детей и соответственно этому (или вследствие этому) примитивное преподавание. Да. Как в моей же песне:
Эх, Россия -не Америка - в той развитой капитализьм.
И если плыть до того берега - коль мало денег - не доплыть

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

Самое место этим темам в разделе "Моделирование".

А в России - в силу исторических причин - перекос в сторону алгоритмов.
Виктор Малышко ( Пользователь )
Цитата (Евгений Багоцкий, 13.06.2011, 22:27) <{POST_SNAPBACK}>
Неплохо бы кроме поднадоевших блок-схем алгоритмов давать понятия
диаграмм : классов, состояний (прецедентов)
- т.е основы языка UML.

Прошу пояснить, что за "диаграммы состояний (прецедентов)"? Программы, с которыми работают школьники, не предполагают работы с требованиями, следовательно диаграммы вариантов использования не на чем продемонстрировать, не то, что научить применять.
Михаил Крекин ( Пользователь )
Цитата (Михалкович Станислав, 14.06.2011, 21:45) <{POST_SNAPBACK}>
Будет хороший учебник - проблем не будет. И средний учитель школы сможет преподавать.

Господа преподаватели технических вузов!
Спуститесь с небес на землю. Средний учитель школы, может быть, сможет преподавать. Вопрос в том, кому он это будет преподавать (и еще — когда).
Встанет после уроков перед стенкой и будет ей втирать про объектно-ориентированное проектирование и UML- диаграммы. ;-)
Александр Горячев ( Пользователь )
Ну, почему же, есть узкий слой лицеев и гимназий, где больше часов выделяют на информатику, где с 5 класса идёт алгоритмизация, плавно переходящая в программирование. Туда поступают, сдавая экзамены.
Их не так много, но это не "стенка".

Другое дело, что моделирование неправильно сводить только к ОО проектированию. Хотя оно само по себе конечно является моделированием. Мне представляется, что кратчайший путь к ООП - это программирование простейших приложений. Их копить надо.

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