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

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

Олег Деревенец ( Пользователь )
Напомню, что тема обучения ООП-ю "перетиралась" в этой ветке:
http://pedsovet.org/forum/topic7190.html
Согласен, что ООП - лакомый кусочек. Так же, как и некоторые другие области программирования, по понятным причинам "не проходимые" в школьном курсе: СУБД, многозадачность, что там еще? Судя по высказываниям, кое-кто из форумчан не только желает давать детишкам ООП, но и свои наработочки за пазухой держит. Почему бы им не поделиться с нами? Надо же кому-то начать, а мы поддержим. Судить будем мягко, поскольку тема действительно непростая. Книжоночка нужна или что-то вроде этого.
Серж Андреев ( Пользователь )
Цитата (Михалкович Станислав, 17.06.2011, 11:49) <{POST_SNAPBACK}>
А кто Вам это сказал?


А я тоже всегда так отвечал....

С другой стороны, один мой знакомый на вопрос о том, сколько ему надо в месяц денег, сказал, что хватило бы и пятнадцати тысяч рублей.
Евгений Багоцкий ( Пользователь )
Вот вам соображения, почему технология преподавания даже основ ООП на традиционном паскале кривая.
с т.зр. преподавания Pascal скорее не проясняет а запутывает дело.
1)2 рабочих версии ПАскаль а)TP7.0 б)PascalABC
PascalABC позиционировался как реализация паскаля с современным интерфейсом.
Но он имеет по крайней мере 3 существенных отличия:
а)графику отличную от TP7 (в т.ч. по языку) б)отсутствие т.н. безтиповых файлов
в)поддержка Class вместо Object
По 3 пункту: конечно же классы лучще объектов, это в русле общей концепции
В общем случае Object Pascal в Delphi поддерживает как class так и object
но когда в 1 версии паскаль нет одного, а в другой другого - плохо. Программы перестают быть
совместимыми.
Вот почему скажем преподавание программирования на 1 курсе МВТУ ведется по уже накатанному принципу:
"а сейчас дети забудем (аналогично математике), чему вас учили в школе и создадим консольное приложение Дельфи"
--------------------------------------------------------------------
Ситуация напоминает мне тему баз данных в историко-архивном ин-те в 70-х, когда разработчики (евреи кот не брали на работу) должны были проектировать и делать БД и сидели без софта. в то время и софта то такого не было. Напоминает тем, что ООП уже более 30 лет, а технологии особенно преподавания в школе - старые
Серж Андреев ( Пользователь )
Евгений, а в чем проблема-то? Class и Object - это просто слова. Учат же не слова, а принципы. И в class, и в object есть все признаки ООП, которых весьма немного: свойства, конструкторы, деструкторы, методы; инкапсуляция, наследование, полиморфизм. Тут всего-ничего понятий, которые не так то и сложно объяснить. Когда я впервые столкнулся с ООП (библиотека TurboVision), то у меня кроме отторжения это ничего не вызвало. Но прошло какое-то время, наступило осознание того, что ООП - это, наверное, единственный путь к повышению производительности труда программистов, и я с ним разобрался, после чего был создан пакет программ для анализа дендрохронологических, климатических и флористических данных. При том интерфейс создавал младший научный сотрудник лаборатории, который программировать не умел - просто вставлял конструкцию типа: screen^.AddItem(new(TButton,init(10,10,"MyButton1",#0#6F"Заголовочек")))
Станислав Михалкович ( Пользователь )
Цитата (Евгений Багоцкий, 20.06.2011, 15:13) <{POST_SNAPBACK}>
PascalABC позиционировался как реализация паскаля с современным интерфейсом.
Но он имеет по крайней мере 3 существенных отличия:
а)графику отличную от TP7 (в т.ч. по языку)
б)отсутствие т.н. безтиповых файлов
в)поддержка Class вместо Object

Сейчас глупо пользоваться TP7 - он очень сильно устарел.
Бестиповые файлы есть, хотя к делу это не имеет отношения :)
Графика была ориентирована на DOS-режим - она сильно устарела. То, что её повторяет FreePascal, - это ностальгия.
Сейчас глупо пользоваться Object - только class. Он ориентирован на ссылочную модель объектов - наиболее простую для использования. В Delphi вот последние версии object уже не поддерживают.

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

Языки меняются - это нормально. Те, которые не меняются, - умирают.

Из современных и того, что я знаю: Python поменялся, JavaScript сильно поменялся, Java - поменялась.

Любой самый современный язык, который Вы выберете сейчас для преподавания ООП, изменится через 5 лет. И это повод для чего? не преподавать ООП вообще?

Ну и в этом топике, вроде, слава богу, никто ещё не начинал холивар на тему "на каком языке учить ООП". Можем похоливарить. Результаты известны :)

А про технологии преподавания ООП в школе - так она не просто старая - ее нет. Я уже говорил в одном из постов этого топика - в школьном российском программировании существует ярко выраженный перекос в сторону алгоритмов. ООП - нет.
Дмитрий Изергин ( Пользователь )
Цитата (Михалкович Станислав, 20.06.2011, 18:10) <{POST_SNAPBACK}>
А про технологии преподавания ООП в школе - так она не просто старая - ее нет. Я уже говорил в одном из постов этого топика - в школьном российском программировании существует ярко выраженный перекос в сторону алгоритмов. ООП - нет.


Учитывая специфику решаемых в школе (да и на начальных курсах ВУЗов) задач- это нормально (ибо многокомпонентные эволюционирующие системы, как правило, там не рассматриваются), для того что рассматривается, с избытком хватает и обычного -процедурно - модульного программирования. Можно, конечно, попытаться навязать тотальный ООП - но он выглядит довольно неестественно, а учитывая реалии жизни... скажу честно... - жировать не приходится (к тому же, учебная программа не настаивает на этом).
Евгений Багоцкий ( Пользователь )
Цитата (DIzer, 30.06.2011, 11:36) <{POST_SNAPBACK}>
Учитывая специфику решаемых в школе (да и на начальных курсах ВУЗов) задач- это нормально (ибо многокомпонентные эволюционирующие системы, как правило, там не рассматриваются), для того что рассматривается, с избытком хватает и обычного -процедурно - модульного программирования. Можно, конечно, попытаться навязать тотальный ООП - но он выглядит довольно неестественно, а учитывая реалии жизни... скажу честно... - жировать не приходится (к тому же, учебная программа не настаивает на этом).

А где по вашему вообще как-то преподаются вопросы связанные с разработкой многокомпонентных эволюционирующих систем ?
Дмитрий Изергин ( Пользователь )
У нас (ЧЕЛГУ мат.фак ) - косвенно в основном на спецкурсах (начиная с 6 семестра), у физиков тоже, насколько я знаю...
Серж Андреев ( Пользователь )
Цитата (Евгений Багоцкий, 30.06.2011, 13:22) <{POST_SNAPBACK}>
А где по вашему вообще как-то преподаются вопросы связанные с разработкой многокомпонентных эволюционирующих систем ?


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

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