Написание этого "опуса" побуждает мой опыт и программиста и преподавателя. Здесь уже много говорилось о "знаниях" студентов. Я, в данном случае, не хочу говорить о самих студентов это особый разговор для другой темы. Меня
волнует, как преподается программирование. Я не хочу сказать, что преподаватели плохие. Преподаватели разные, как и в любом институте и это хорошо. Мне не нравится, прежде всего, чему учат, т.е. попросту говоря учебные планы. Конечно, программирование в массовом порядке преподают не так давно и стандарты и учебные планы и, я бы сказал еще традиции преподавания, не устоялись. Проблема в Паскале. На мой взгляд, преподавание Турбо Паскаля губит многих студентов на корню. Я попытаюсь объяснить, в чем здесь проблема. На мой взгляд, в технологии программирования, чем и следует овладеть студенту, присутствуют следующие компоненты: алгоритм, язык программирования, среда программирования, технология разработки ПО, среда выполнения (обычно ОС). Так вот, по моему глубокому убеждению, на какие бы курсы не было разбито преподавание программирования, любой курс должен преподаваться как курс программирования. Другими словами, среда программирования, например Windows не может изучаться иначе как через само программирование. Кроме этого, в каждом курсе программирования должны присутствовать все компоненты программирования. Если бы это удалось сделать, то, мне кажется, мы бы сдвинули обучение программированию с нулевой (или отрицательной) точки. Что же происходит с Турбо Паскалем. Он изучается очень подробно, два семестра. Теперь вдумайтесь в следующее: нигде и никто уже давно не пишет прикладные программы на Турбо Паскале 7.0. Почему? А потому-то этот продукт был предназначен для программирования в операционной системе MS DOS. Но этой системы уже нет в природе - Windows только эмулирует ее, чтобы дать возможность запускать программы 15-летней давности. И вот бедные студенты два семестра программируют на ТурбоПаскале, совсем не понимая, что они программируют в MS DOS и не зная какое это отношение имеет к Windows. Более того, они изучают даже те темы, которые уж никак нельзя пристегнуть к Windows - графику, файлы и т.п. И вот проучившись два семестра, не понявший, где он программировал студент, переходит к Delphi, и начинает программировать уже в Windows, до конца так и поняв, что это такое. При этом с самой ОС он опять не взаимодействует, но это уже другой разговор. Возникает вопрос - зачем нужен Турбо Паскаль? Если мы принимаем, что преподавать алгоритмы надо в отрыве от всего остального, почему не взять, например, какую-нибудь программу для дошкольников - управлять какой-нибудь лягушкой или кенгуренком. Результат будет точно тот же самый, но без введения студента в заблуждение, так как он здесь прекрасно поймет, что программирует не в Windows. Если кто-то мне скажет, что паскаль помогает затем программировать на Дельфи. Но, во-первых, Дельфи не должен быть самоцелью, а во-вторых, почему бы тогда не начать сразу на Дельфи и писать в начале разные алгоритмы в простых консольных программах. Ребята, забудьте про ТурбоПаскаль 7.0. Нет его, давно умер. Я этот вопрос уже давно ставлю на факультете, но пока переубедить коллег мне не удается. |
GONZA писал(а): т.е. вы признаете, что паскаль - это ваша личная "заслуга"?Нет, вопрос решался очень давно и без меня. Впрочем, сейчас я решил бы также. Ясный синтаксис, возможность реализации любых алгоритмов, однозначность и невозможность "выкрутасов" с типами (в отличии от си) без прямого указания, что это - выкрутас. Простое ООП, реализацию которого можно разобрать по кирпичикам и объяснить студентам, как все это сделано. И наконец - прекрасная читабельность программ, если конечно, не стояло целью запутать алгоритм. Добавим еще "песочницу" при использовании ТП - и вот готова рабочаяя лошадка, чтобы объяснить студенту как работает сортировка, поиск, как строятся динамические структуры данных и т.д. Т.е. решить конкретные задачи учебного плана. |
А почему игнорируете более прозрачную модель Delphi? |
GONZA писал(а): при чём тут открытость? я про профессиональность говорил. не думаю, что там студенты.
См. выше. Сравнивались "коммерческие" и "открытые" GONZA писал(а):
про жабер-сервер не понял. стоит который - из бесплатных. вечно падает. кстати. Ну дак возьмите закрытый, меньше будет падать? В России warez вроде ни кого не смущает GONZA писал(а):
солярис открывается - это хорошо. но при чем тут студенты? О том и разговор, что проект открытый и сделан профессионально. GONZA писал(а):
задача? по дефолту. веб: mysql, обычный INT. Тогда проблема может быть по уходу за границу 32-битового целого. |
GONZA писал(а): А почему игнорируете более прозрачную модель Delphi?Опять возвращаемся к старому разговору. "Песочницы" нет - раз. Все объекты указатели - два. Много лишнего, к чему тянутся шаловливые ручки студентов - три. Вообщем затрудняет педагогический процесс, отладку, и жизнь сисадмина |
Услышал здесь интересное замечание: "Начинать надо с JAVA!". Т.е приходит он из школы, где последние годы слово "программирование" учителя только слышали, а мы его мордой по байт-коду, java-машине, апплетам и т.д. Знаем-знаем, проходили, был один период. Толком ничего не поймет, а пальцы уже веером, netbeans ему подавай, и будет супер-мега-проект.
Имхо, без основ - никуда, а основы программирования лучше всего ложатся в классический виртовский паскаль. |
имхо, там только основы и надо
про все понты с реализацией апи в ява и много другово интересного про нее читайте на блоге http://journal.shadrinsk-city.ru/index.php?p=539 |
Во-во, этого автора (из блога) как раз так фейсом об тэйбл и приложило. Он считал, что не изучая язык, среду исполнения и т.д. можно взять и написать "реальный проект". Ну он хотя-бы c++ (по его словам) знал. А что можно сказать об обычном студенте?
ЗЫ Возращаясь к понятию "статический объект". Пример:
Получаем, a - статическая переменная-экземпляр класса, или короче - статический объект или просто объект b - динамическая переменная-экземпляр класса, или короче - динамический объект или ссылка (указатель) на объект. Получается, что очень много экзотики, на которой разбираем особенности полиморфизма, сравнивая функционирование a и b, в Delphi остается за бортом, ибо там - только динамические объекты. Вот еще одна из причин, почему не хочу использовать delphi вместо паскаля на начальных этапах. Что касается С++, то использование его на начальных этапах изучения программирования считаю неоправданным. Разве-что отчислить с первого семестра 50-70% студентов, тогда с остальными можно будет работать, используя С++, java и вообще какой угодно универсальный язык. Еще раз напоминаю, что все программирование на учительских специальностях сосредоточено на первом курсе |
для каких целей нужен статический объект? |
Вот нашел программу 2 курса Киевского универа:
... 6. Объектно-ориентированное программирование: 6.1. Иерархия объектов и иерархия классов: композиция объектов и наследования. Базовый класс, производный класс, уточнение привилегий доступа к членам базового класса, защищенная область класса, область видимости и оператор решения области видимости 6.2. Открытое, закрытое и защищенное наследование, наследование типа и наследование реализации 6.3. Создание производных объектов, конструктор производного класса, последовательность вызова конструкторов, ликвидация производных объектов, деструктор производного класса, последовательность вызова деструкторов 6.4. Статическое и динамическое связывание: полиморфизм, виртуальные функции, замещение (overriding) функций, виртуальные деструкторы 6.5. Наследование из общего базового класса. Кратное (multiple) наследование. Виртуальное наследование, порядок вызова конструкторов 6.6. Контейнерные классы: итераторы, итераторные контейнеры, контейнеры со общим базовым классом, стандартные контейнеры STL: векторы, списки, очереди, стеки. ... http://is.unicyb.kiev.ua/rus/tutors/bublik/bublik_pr.html |
GONZA писал(а): Вот нашел программу 2 курса Киевского универа:
... 6. Объектно-ориентированное программирование: 6.1. Иерархия объектов и иерархия классов: композиция объектов и наследования. Базовый класс, производный класс, уточнение привилегий доступа к членам базового класса, защищенная область класса, область видимости и оператор решения области видимости 6.2. Открытое, закрытое и защищенное наследование, наследование типа и наследование реализации 6.3. Создание производных объектов, конструктор производного класса, последовательность вызова конструкторов, ликвидация производных объектов, деструктор производного класса, последовательность вызова деструкторов 6.4. Статическое и динамическое связывание: полиморфизм, виртуальные функции, замещение (overriding) функций, виртуальные деструкторы 6.5. Наследование из общего базового класса. Кратное (multiple) наследование. Виртуальное наследование, порядок вызова конструкторов 6.6. Контейнерные классы: итераторы, итераторные контейнеры, контейнеры со общим базовым классом, стандартные контейнеры STL: векторы, списки, очереди, стеки. ... http://is.unicyb.kiev.ua/rus/tutors/bublik/bublik_pr.html Еще бы специальность, для которой эта программа написана, уточнить и год утверждения соотвествующего стандарта |
ужель так трудно ссылочку нажать?
Киевский национальный университет имени Тараса Шевченко Программа нормативного курса “Программирование и вычислительные системы” для студентов ІІ курса факультета кибернетики .... Литература 1. С.Б.Липпман, Ж.Лажойе, Язык программирования С++, вводный курс, ДМК, М., 2001 2. Б.Страуструп, Язык программирования С++. Специальное издание, БИНОМ, М., 2001 3. Т.А.Павловская, С/С++ Программирование на языке высокого уровня, Питер, СПб, 2001 4. P.Salus, Handbook of programming languages, vol. 1, Object-oriented programming languages, Macmillan Technical Publ., 1999 ftp://student@ftp.unicyb.kiev.ua, www.freebooks.boom.ru 5. Г.Янг, Visual C++ 6, BHV, Киев, 1999 .... |
Хорошая дискуссия. Ушла немного в сторону, но это нормальною. Дима, я напоминаю, открой нормальный фороум по программировани - ты обещал. А то дискутируем то по общим вопросам, а в разделе Паскаль, который кстати приказал долго жить. |
пройдите на диван: http://divan.shadrinsk.info - нужно включить inetaccess, но трафик не считается. так утверждают в к+
здесь не реально общаться. а там сделаем всё, что вы пожелаете, в разумных пределах |
vladislav писал(а): ... открой нормальный фороум по программировани...Появился, можно продолжать ломать копья там. |
адрес? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
http://forum.shadrinsk.net/viewforum.php?f=105
Это ответ на желание vladislav'a перенести обсуждение по общим вопросам программирования из ветки "Pascal". |
По моему паскаль - для учёбы и для решения математических задач. А Делфи - для проектов побольше. Вот только переход тугой. Особенно, если ничего про ООП не знаешь. Зато потом вобще быстро понимаешь почти всё. У меня на дому например прога самоделка стоит, записывает, кто когда вошёл в систему. Полезно и прикольно. На паскале. |
vladislav писал(а): И вот бедные студенты два семестра программируют на ТурбоПаскале, совсем не понимая, что они программируют
в MS DOS и не зная какое это отношение имеет к Windows. Полностью согласен! |
как ето... паскаль все нармально...
помню мы с него именно и начинали...(...)и ничего все намана... задачки пару лет порешать..... мозГ адаптируется... а окошки ... научиться 15 минут.. а ккто на такое не способен пусть гуляет... |
А на ассембелере если учиться? Мозги сломаем......???? |
xapac писал(а): А на ассембелере если учиться? Мозги сломаем......????xapac писал(а): а ккто на такое не способен пусть гуляет... _________________ Йа - водоросль. |
Турбо Паскаль умер как язык ПРОГРАММИРОВАНИЯ. Но вполне дееспособен как среда ОБУЧЕНИЯ азам программирования. Так, например никто не использует блокнот для написания WEB-страниц, тем неменее для обучения основам языка HTML он вполне пригоден. |
alexandr
ТП не умер это раз не нравится ТП используйте ФП(вот вам и многозадачность) именно ФП а не лазарус alexandr писал(а): никто не использует блокнот для написания WEB-страниця использую и даже временами для жаваскрипт и пхп(а что прикажите дримвивер юзать? который отсебятины не меньше MS Word'а вставляет... в принципе это вообще оффтоп полнейший) andy ice начинать обучать программированию с ООП - бред полный(было время ещё в школе кинулся в BC++Builder ни чего не вышло... ни чего хорошего не вышло... так как к тому времяни знал среднинько бейсик(хотя и лучше преподавателя)) ИМХО но у нас в педе все сделали правильно... пичкали паскалем на мой взгляд именно для того чтоб в алгоритмах разобраться и поэкспериментировать... на счет экономии и утечки памяти... опять же согласен. Возьмем к примеру gamedev'инг там компилятору вообще мало чего доверяется(а да + паскалю - примерно 30% игры сталкер было написано на ТП правда все остальное на делфи(читал гдет на gamedev.ru или xdev.ru)) по поводу висуал си++(простой си++ вроде этим не так сильно страдает)... на мой взгляд там уж слишком много лишнего... скажем решил человек поизучать openGL в висуал си++ все написал правильно а ему линкер ошибку выдает спрашивается почему??? а он либ файлы ке указал какие надо за-то в паскале если указал uses [имя_модуля] то он уже есть(ну или скопировать надо) по поводу того что кто-то предлагал начинать с динамически типизируемых языков. попробуйте обучив человека скажем PHP потом заставить самостоятельно изучить да же си у него на это уйдет куча времени(хотя пхп си-образный), а вот наоборот можно и давольно просто(сам так изучал) P.S. ещё раз повторюсь что все это сугубо мое мнение(и естественно к нему ни кто не прислушается) _________________ Мы рождены чтоб сказку сделать кодом... |
Я сам дельфист, но то что не начал с паскаля, это хорошо, иначе отбил бы к нему охоту навсегда. Я начинал еще с программируемых калькуляторов, до сих пор не видел ничего лучшего для изучения алгоритмов и развития алгоритмического мышления... Осваивать программирование начал с С и С++. Потом перешел на Delphi и вот тут то я и понял его преимущества в области прикладного программирования перед другими языками. В Turbo Pascal, смысла не вижу, даже для обучения основам программирования, всё это можно сделать в Delphi и FreePascal + Lazarus...
ps. 07.05.2008. Borland продал подразделение CodeGear компании Embarcadero _________________ http://www.visual-t.ru |
[DD]
хоть и состоялась данная дискуссия несколько лет назад, но вроде как с ООП никто не призывал начинать обучение. имхо я тогда хотел сказать, что студентам, особенно педвуза нафиг не нужны эти указатели и прочая лабуда. (особенно для начинающих) по прошествии этих нескольких лет я только сильнее в этом убедился, и в педе вроде как начали наконец-то и C# и PHP учить. сто лет не прошло, как видим _________________ Ин дер гросен фамилие нихт клювен клац-клац |
начинали с кенгуренока, qbasic ))
и вообще не вижу большой сложности(кроме финансово-технической естессно и времени)) ) изучения языков пр, - литературу в зубы и вперед, было бы желание . . . _________________ накапливаю джедайскую силу http://booking.com/ http://bookingb2b.com/ http://www.aicgroup.biz http://www.gta-travel.com/en/home |
Турбо паскаль рулит, но только на первом курсе, для обучения само то. Такие фишки как в TP больше нигде не припомню, например максимальный размер блока данных 64 кб... |
zLMP писал(а): размер блока данных 64 кб...поверь не только ТР такое есть... _________________ Мы рождены чтоб сказку сделать кодом... |
а в чем сакральный смысл в обучении алгоритмам размер максимального блока с данными? _________________ Ин дер гросен фамилие нихт клювен клац-клац |
В том, что неоптимальные студенческие решения убиваются "ап стену" даже на небольших наборах входных данных. Причем убиваются сами, без каких-то искусственных ограничений, поставленных преподом. Очень эффективный и доходчивый педагогический прием. |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы |