Написание этого "опуса" побуждает мой опыт и программиста и преподавателя. Здесь уже много говорилось о "знаниях" студентов. Я, в данном случае, не хочу говорить о самих студентов это особый разговор для другой темы. Меня
волнует, как преподается программирование. Я не хочу сказать, что преподаватели плохие. Преподаватели разные, как и в любом институте и это хорошо. Мне не нравится, прежде всего, чему учат, т.е. попросту говоря учебные планы. Конечно, программирование в массовом порядке преподают не так давно и стандарты и учебные планы и, я бы сказал еще традиции преподавания, не устоялись. Проблема в Паскале. На мой взгляд, преподавание Турбо Паскаля губит многих студентов на корню. Я попытаюсь объяснить, в чем здесь проблема. На мой взгляд, в технологии программирования, чем и следует овладеть студенту, присутствуют следующие компоненты: алгоритм, язык программирования, среда программирования, технология разработки ПО, среда выполнения (обычно ОС). Так вот, по моему глубокому убеждению, на какие бы курсы не было разбито преподавание программирования, любой курс должен преподаваться как курс программирования. Другими словами, среда программирования, например Windows не может изучаться иначе как через само программирование. Кроме этого, в каждом курсе программирования должны присутствовать все компоненты программирования. Если бы это удалось сделать, то, мне кажется, мы бы сдвинули обучение программированию с нулевой (или отрицательной) точки. Что же происходит с Турбо Паскалем. Он изучается очень подробно, два семестра. Теперь вдумайтесь в следующее: нигде и никто уже давно не пишет прикладные программы на Турбо Паскале 7.0. Почему? А потому-то этот продукт был предназначен для программирования в операционной системе MS DOS. Но этой системы уже нет в природе - Windows только эмулирует ее, чтобы дать возможность запускать программы 15-летней давности. И вот бедные студенты два семестра программируют на ТурбоПаскале, совсем не понимая, что они программируют в MS DOS и не зная какое это отношение имеет к Windows. Более того, они изучают даже те темы, которые уж никак нельзя пристегнуть к Windows - графику, файлы и т.п. И вот проучившись два семестра, не понявший, где он программировал студент, переходит к Delphi, и начинает программировать уже в Windows, до конца так и поняв, что это такое. При этом с самой ОС он опять не взаимодействует, но это уже другой разговор. Возникает вопрос - зачем нужен Турбо Паскаль? Если мы принимаем, что преподавать алгоритмы надо в отрыве от всего остального, почему не взять, например, какую-нибудь программу для дошкольников - управлять какой-нибудь лягушкой или кенгуренком. Результат будет точно тот же самый, но без введения студента в заблуждение, так как он здесь прекрасно поймет, что программирует не в Windows. Если кто-то мне скажет, что паскаль помогает затем программировать на Дельфи. Но, во-первых, Дельфи не должен быть самоцелью, а во-вторых, почему бы тогда не начать сразу на Дельфи и писать в начале разные алгоритмы в простых консольных программах. Ребята, забудьте про ТурбоПаскаль 7.0. Нет его, давно умер. Я этот вопрос уже давно ставлю на факультете, но пока переубедить коллег мне не удается. |
Leon писал(а): unname писал(а): Разве он не имеет все свойства присущие дереву, из которого он собственно и сделан?дерево? стол растет, у него есть ветки и листья? или какие свойства? А вы на дерево смотрите как на материал... _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
материал - свойство объекта, а не предок
а вообще, в случае сложных объектов, типа стола, свойство даже не стола, а детали. странно вообще, как ты САПР разрабатывал, а в таком элементарном плаваешь _________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice
Я не плаваю, я хочу показать несовершенство подхода ООПшного. Ну надо мне ткаую следственную связь проследить и что получается? Да и вообще что за наивность под САПР-ом понимать только трехмерные рисовалки? _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
unname писал(а): надо мне ткаую следственную связь проследить и что получается? unname писал(а): под САПР-ом понимать только трехмерные рисовалки_________________ Ин дер гросен фамилие нихт клювен клац-клац |
xandr
у ООП всего 3 принципа. И наследование один из них Добавлено спустя 1 минуту 16 секунд: unname писал(а): под САПР-ом понимать только трехмерные рисовалки?как всё запущено Добавлено спустя 57 секунд: САПР - вообще понятие, типа "Информатика". Красиво и ни о чем. Добавлено спустя 42 секунды: хотя когда то диплом рисовал по автоматизированной линии пластмассовых изделий _________________ Скажи мне чей Крым, и я скажу кто ты. |
Leon писал(а): как всё запущено ША! Он просвещённый, он знает. _________________ Йа - водоросль. |
unname писал(а): andy ice
Я всего лишь хочу сказать, что ООП это совсем не идеальный подход. Он имеет кучу ограничений, впрочем как и другие существующие.... я хочу показать несовершенство подхода ООПшного. Ну надо мне ткаую следственную связь проследить и что получается? Да, ограничения есть, но они жизненно необходимы, во избежании ошибок. Обратимся к жизненной практике, что происходит, когда ограничения сбиваются и у скажем коров рождаются не совсем коровы или у людей не совсем люди. Мы их называем ошибки природы или уроды... Для того ООП и нужно, чтобы программисты не дай бог, нарушили определенные ограничения в результате которых у деревьев начнут рождаться столы и тому подобное... Конечно ООП ограничен, но это необходимость избежания глобальных ошибок. Из тех технологий которые сейчас существуют, причем при нынешнем объеме разарбатываемых проектов, ООП как раз наиболее совершенный вариант, который в силу его ограничений, позволяет избежать ошибок. Причем заметьте, всё взято из жизни - наследование, инкапсуляция, полиморфизм - так устроен наш мир, всё заимствовано из реальной жизни, скажите господу богу - истинному изобретателю ООП, что он "лохонулся" с проектом... Последний раз редактировалось: Rik (2010.07.09 00:04.10), всего редактировалось 1 раз |
Rik
Посмотрите все-таки на АОП, я думаю, вам понравится его идея. ООП вообще хорош при достаточно низкой квалификации программистов при создании больших корпоративных проектов. Ну гуи удачно ложится. А мне эти лишние ограничения никчему )) Тут можно много дров наломать, я повторюсь еще раз, это только мое мнение. P.S. Похоже в следующем году на меня все-таки Java c этим лего навесят... _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
Leon писал(а): xandr
у ООП всего 3 принципа. И наследование один из них При чем тут философия? Не про принципы речь. А про то, что в конкретном примере про дерево и стол больше подойдет ассоциация (ну или что-то там еще, вам - опытным ОО дизайнерам/программистам - лучше знать), а не наследование. |
unname писал(а): Rik
Посмотрите все-таки на АОП, я думаю, вам понравится его идея. ООП вообще хорош при достаточно низкой квалификации программистов при создании больших корпоративных проектов. Ну гуи удачно ложится. А мне эти лишние ограничения никчему )) Тут можно много дров наломать, я повторюсь еще раз, это только мое мнение. P.S. Похоже в следующем году на меня все-таки Java c этим лего навесят... АОП не отменяет принципы ООП а дополняет объектно-ориентированное программирование, обогащая его другим типом модульности, который позволяет локализовать код реализации crosscutting логики в одном модуле. Смысл: сначала реализуем фунциоанал, потом включаем его в классы. В отличии от ООП, если функционал уже реализован, для нового класса его нужно просто подключить, причем с помощью точек среза выбираем не всё а что необходимо. Существенное ограничение AspectJ состоит в том, что ее компилятор может вводить аспекты только в код, для которого есть исходный текст. Иными словами, невозможно использовать ajc для включения advice в уже откомпилированные классы. В том-же Delphi можно цеплять методы к классам динамически, после компиляции. Но самое главное, принципы ООП оно не отменяет, из дерева стол всё равно не получится... Последний раз редактировалось: Rik (2010.07.09 15:56.00), всего редактировалось 3 раз(а) |
unname писал(а): ООП вообще хорош при достаточно низкой квалификации программистов_________________ Ин дер гросен фамилие нихт клювен клац-клац |
andy ice
А разве вы в нем разобраться не можете? Добавлено спустя 39 секунд: Rik Ну AspectJ это большая такая частность... Идея на самом деле совершенно к ООП не привязана. _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
Ну тут прям цирк с конями. Жаль что спорщик забанен и что я сюда не часто захожу. Я бы прям был в восторге, если бы он поведал как "дерево" в качестве предка "стола" впишется в принцип одной ответственности или, не дай бог, в MVC.
Заодно я бы спросил сего гения знает ли он для чего существует такая вещь как аксиоматика и как она влияет на построение некой алгебры. Потому как только значимые для конкретной ситуации качества определяют каждый конкретный объект и являются своего рода аксиоматикой конкретной структуры классов. З.Ы, Спасибо поржал. |
дык щаз разбаним _________________ Скажи мне чей Крым, и я скажу кто ты. |
так что решили с паскалем то ? аууу куда пропали все ? так все началось заново интересно и на те, затихло опять.... ) _________________ накапливаю джедайскую силу http://booking.com/ http://bookingb2b.com/ http://www.aicgroup.biz http://www.gta-travel.com/en/home |
видимо, каждый остался при своем мнении
так случается в большинстве споров |
Петрович
Ты хочешь сказать что не видишьлогики в связи дерево - стол? Я сейчас не говорю, что эта связка соответствует ООП, но по моему для большинства не программистов эта связка вполне логична не так ли? _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
unname писал(а): для большинства не программистов эта связка вполне логична не так ли?Здесь ветка о программировании. Здесь чужие не ходят. |
unname
как связаны непрограммисты и ООП? |
я хочу лишь показать, что ООП ограничивает мышление _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
любая парадигма ограничивает мышление
и что? я бы сказал, что ООП определенным образом направляет мышление, способствуя выполнению определенных задач принимать или не принимать его - личное дело |
ну хорошо гже тогда ограничение продцедурной парадигмы? _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
unname писал(а): Петрович
Ты хочешь сказать что не видишьлогики в связи дерево - стол? Я сейчас не говорю, что эта связка соответствует ООП, но по моему для большинства не программистов эта связка вполне логична не так ли? Слово Программирование в аббревиатуре ООП тебя не смущает? Мы тут вообще о программировании или о столярных работах говорим? Программирование это моделирование определенного процесса, рассматриваемого со строго определенной точки зрения и имеющего четко определенные входные данные и ожидаемый результат. Действительно причем тут какие-то ограничения? |
Петрович писал(а): Действительно причем тут какие-то ограничения?подозреваю unname программирует исключительно микроконтроллеры либо достаточно простые программы. в данном случае ООП неэффективен. Для enterprise ООП 20 лет назад считали "серебряной пулей". Впрочем сейчас ситуация немного изменилось. И на конкретную реализацию объектной модели накладывают некоторые ограничения, но не для того чтобы запутать разработчика, а наоборот, чтобы облегчить разработку и дальнейшее развитие программного продукта. Если вы делаете большие, сложные, быстро изменяющиеся продукты - ООП наиболее подходящая парадигма. Если же наоборот делает очень простой софт для которого поддержка и стоимость внесения изменений не критична, то ООП не для вас. |
VolF
парень парой страниц раньше хвастался собственной САПР, так что VolF писал(а): очень простой софт для которого поддержка и стоимость внесения изменений не критичнане канает. _________________ Йа - водоросль. |
Dio
Судить о программисте, только по словам что он писал САПР, все равно что судить о фотографе по словам "я держал в руках кэнон марк 3". Может это простейшее приложение, которое вместо "Hello world!" выводит на экран "САПР"? Никому не известно что автор понимает под этим словом, его роль в данном проекте и текущее его состояние. |
VolF
я в курсе. _________________ Йа - водоросль. |
Петрович писал(а): unname писал(а): Петрович
Ты хочешь сказать что не видишьлогики в связи дерево - стол? Я сейчас не говорю, что эта связка соответствует ООП, но по моему для большинства не программистов эта связка вполне логична не так ли? Слово Программирование в аббревиатуре ООП тебя не смущает? Мы тут вообще о программировании или о столярных работах говорим? Программирование это моделирование определенного процесса, рассматриваемого со строго определенной точки зрения и имеющего четко определенные входные данные и ожидаемый результат. Действительно причем тут какие-то ограничения? Я не согласен с таким определением. мне нравится больше из Дейкстра: программирование — формализация предопределенного состояния, по реакции на событие, реализуемого средствами математики или естественных наук. К тому же в принципе под этим часто понимаются другие вещи. Например почитайте тчо такое метод динамического программирования в ТАУ, к вашему пониманию этого процесса это не имеет никакого отношения, но в то же время это именно что программирование. Про четко определенные входные данные и результат это соверщенно не к месту. Например у меня нет даже какой-оибо формализации происходящих процессов, не говоря о структурировании входных данных. программирование как раз и решает задачу формализации в частном виде. VolF писал(а): Петрович писал(а): Действительно причем тут какие-то ограничения?подозреваю unname программирует исключительно микроконтроллеры либо достаточно простые программы. в данном случае ООП неэффективен. Для enterprise ООП 20 лет назад считали "серебряной пулей". Впрочем сейчас ситуация немного изменилось. И на конкретную реализацию объектной модели накладывают некоторые ограничения, но не для того чтобы запутать разработчика, а наоборот, чтобы облегчить разработку и дальнейшее развитие программного продукта. Если вы делаете большие, сложные, быстро изменяющиеся продукты - ООП наиболее подходящая парадигма. Если же наоборот делает очень простой софт для которого поддержка и стоимость внесения изменений не критична, то ООП не для вас. Вообще я ханимаюсь системным программированием. И насколько я могу судить как по собственному опыту так и по зарплатам специалистов, это в разы более сложная вещ по сравнению с прикладными вещами. Скажите в скольких ентерпрайз проектах вы принимали участие? Чтобы так рассуждать надо или иметь большой опыт или не иметь его вообще. По поводу САПР я и сейчас его пишу. Я занимаюсь автоматизацией проектирования штампового инструмента. Чтобы рассуждать с вами о сложности этого САПР вам стоит хотябы почитать Ребельского, чтобы в терминологии не запутаться. Хотябы на уровне отличия поковки от штамповки. _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
unname писал(а): И насколько я могу судить как по собственному опыту так и по зарплатам специалистов, это в разы более сложная вещ по сравнению с прикладными вещами. Консультанты SAP нервно курят в углу. unname писал(а): Чтобы рассуждать с вами о сложности этого САПР вам стоит хотябы почитать Ребельского, чтобы в терминологии не запутаться. Хотябы на уровне отличия поковки от штамповки.В очередной раз указал наше место. Крутой, чо. _________________ Йа - водоросль. |
Ничего я не указывал, просто чтобюы судить о сложности здачи о ней надо хзотябы иметь представление.
А по зарплатам, посомтрите сколько получают системщики. _________________ Не к добру на Руси шорох, Что-то с ветра дымком тянет! Знать, не весь отсырел порох, Да не всем подслащен пряник |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |