Почитал я эту историю, посмеялся, но вдруг задумался, что это же ерунда какая-то, по идее, операторы паскаля, которые кто-то проходил, а кто-то нет, вообще не должны быть предметом особого обучения. И дело здесь не в Паскале, а вообще обучение программированию в вузе — не должно быть обучением операторам языка. Любого языка. Тем более с разницей, типа "углубленно" — так, "не углубленно" — этак.
Мне кажется должно было бы быть так: преподаватель на семинаре говорит, "а для практических занятий по ООП, мы используем SmallTalk , возьмите такие-то и такие-то книги по нему в библиотеке, почитайте о нем здесь и здесь, можете скачать тут", семинар закончился, идут на семинар по матмоделированию. Там говорят, "оно конечно уже устарело, но нам проще целый ряд численных алгоритмов изучать с помощью Фортрана-90, почитайте то-то и то-то. "
Далее на лекции, допустим по высшей алгебре, лектор информирует, что у него для примеров имеются программы на языке "Ада" и указывает где о нем, что узнать. И для студентов — обычное дело, быстренько изучить новый язык.
А конкретный язык, ну на первом курсе сразу дать что-нибудь сразу, например, Lisp и даже тот же паскаль или Си. Для начала хватит, а со второго курса уже должно быть похрену на каком языке программировать.
Или я слишком многого хочу?
15.02.10 17:58: Перенесено модератором из 'О жизни' — Хитрик Денис
Перечитал и чувствую, что меня могут назвать идиотом. В общем, основная мысль была, что студентов быстро, в идеале за один курс должны научить основным парадигмам программированию, при этом, конечно, надо обучать и каким-то конкретным языкам, а потом студенты просто сразу будут понимать с чем едят любой новый язык и как его правильно изучать и поэтому проблемы в этом не должно быть никакой.
Здравствуйте, Michael7, Вы писали: M>А конкретный язык, ну на первом курсе сразу дать что-нибудь сразу, например, Lisp и даже тот же паскаль или Си. Для начала хватит, а со второго курса уже должно быть похрену на каком языке программировать. M>Или я слишком многого хочу?
Мне кажется — не многого, а немного не того. На начальных курсах идет обучение базовым приемам программирования, а в разных языках могут быть идеоматичны совершенно разные вещи. Например, лабораторную работу по каким-нибудь мутабельным структурам данных не стоит делать на ФЯ. Заменять цикл на рекурсию, в зависимости от цели замены, надо в языке с tco, либо без оной.
Т.е. для выполнения некой конкретной лабораторной работы разумно предложить несколько схожих языков. А после здравых размышлений все, кроме одного, отправятся в сторону бритвы Оккама.
И тут вот получается что. Часто "оператор" с точки зрения ученика оказывается "идеомой" с точки зрения учителя. Например, for/while/break — это ведь не операторы, это составляющие цикла — одной из базовых идеом структурного программирования. "Применить оператор" — это применить соответствующий прием, "не применять оператор" — это отказаться от приема и поглядеть, какая хрень при этом получается.
Здравствуйте, Michael7, Вы писали:
M>А конкретный язык, ну на первом курсе сразу дать что-нибудь сразу, например, Lisp и даже тот же паскаль или Си. Для начала хватит, а со второго курса уже должно быть похрену на каком языке программировать. M>Или я слишком многого хочу?
Видимо, вы просто слишком далеки от преподавания.
С языком программирования — две затыки.
1. Нужно обучать студиозам основным конструкциям программирования. В семантическом ключе.
Если студиоз пришел из какой-нить школы, где СОВСЕМ не было программирования (а сейчас это все школы, кроме специалитзированных), то для него может быть сложно понять что такое цикл в принципе.
2. К сожалению практика показывает, что первый язык выучивается наизусть. Второй — легче, третий — уже начинаются некие обобщения, поиски семантически эквивалентных конструкций.
Поэтому, хочешь-не хочешь, приходится первый язык давать синтаксически, объясняя по ходу семантику. Поэтому, например, студиозам-первокурсникам приходится в буквальном смысле наизусть заучивать принципы и правила структурного программирования.
На третьем курсе — да, там уже приходит понимание (если вообще оно приходит).
Поэтому очень важно для первичного обучения программированию иметь маленький обозримый язык без подводных камней. Паскаль, конечно, устарел. А вот Компонентный паскаль — он подходит.
На эту тему можно почитать сайт Информатика-21. Там много интересных материалов про обучение школьников основам программирования.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Michael7, Вы писали: M>В общем, основная мысль была, что студентов быстро, в идеале за один курс должны научить основным парадигмам программированию
Думаю, это нереально с учетом того, что айтишникам на первом курсе преподают еще и матан, физику, химию, черчение, какие-то гуманитарные дисциплины (конечно, не все сразу из этого списка). Если интересно, что было у нас — напомни, как дойду до дома — гляну в зачетку.
Здравствуйте, Michael7, Вы писали:
M>Или я слишком многого хочу?
почитал, подумал... а лингвистов вы как собираетесь обучать?
ну или вот например есть медики еще. изучил анатомию, и все — остальное прочитаешь в специальной книге, если понадобится.
во
Здравствуйте, Michael7, Вы писали:
M>Далее на лекции, допустим по высшей алгебре, лектор информирует, что у него для примеров имеются программы на языке "Ада" и указывает где о нем, что узнать. И для студентов — обычное дело, быстренько изучить новый язык.
До этого на лекции, допустим, по высшей алгебре, лектор информирует, что в учебнике есть теоремы и примеры по всем ее разделам и указывает, где учебник можно взять и что там можно узнать. Лекцию на этом он заканчивает. И для студентов — обычное дело, быстренько изучить высшую алгебру.
P.S. Вообще-то я во многом с тобой согласен. Но не удержался
Здравствуйте, Michael7, Вы писали:
M>Или я слишком многого хочу?
Да, так и должно быть — задание можно бы делать на любом приемлемом языке. Не только на том, на котором умеет или привык программировать преподаватель.
Здравствуйте, Michael7, Вы писали:
M>идут на семинар по матмоделированию. Там говорят, "оно конечно уже устарело, но нам проще целый ряд численных алгоритмов изучать с помощью Фортрана-90, почитайте то-то и то-то.
В данном случае "проще" означает, что препод даёт материал по книжкам как минимум 20-летней давности и ему лень переписать коды примеров оттуда. То есть студентам придётся большую часть семестра втыкать не в логику работы программы, а в бесчисленные goto и непонятные одно- и двухбуквенные переменные
Здравствуйте, Yarik_L, Вы писали:
Y_L>Здравствуйте, Michael7, Вы писали:
M>>идут на семинар по матмоделированию. Там говорят, "оно конечно уже устарело, но нам проще целый ряд численных алгоритмов изучать с помощью Фортрана-90, почитайте то-то и то-то.
Y_L>В данном случае "проще" означает, что препод даёт материал по книжкам как минимум 20-летней давности и ему лень переписать коды примеров оттуда.
Некоторые алгоритмы на фортране очень хорошо отлажены. И вообще, а какие собственно говоря, есть серьёзные возражения против записи математических алгоритмов на фортране?
Y_L> То есть студентам придётся большую часть семестра втыкать не в логику работы программы, а в бесчисленные goto и непонятные одно- и двухбуквенные переменные
Я не помню в каком древнем фортране были двухбуквенные переменные, но уже даже в Fortran-IV их кажется не было, в Fortran-77 точно допустимы 6-символьные, а Фортран-90 уже вполне поддерживает длинные переменные, их разный регистр, произвольное оформление кода, современные языковые конструкции и даже есть в зачаточном виде ООП. В последнем стандарте Фортрана, Fortran-2003 уже точно есть.
Re[2]: Обучение программированию
От:
Аноним
Дата:
19.02.10 15:52
Оценка:
Здравствуйте, Yarik_L, Вы писали:
Y_L>Здравствуйте, Michael7, Вы писали:
M>>идут на семинар по матмоделированию. Там говорят, "оно конечно уже устарело, но нам проще целый ряд численных алгоритмов изучать с помощью Фортрана-90, почитайте то-то и то-то.
Y_L>В данном случае "проще" означает, что препод даёт материал по книжкам как минимум 20-летней давности и ему лень переписать коды примеров оттуда. То есть студентам придётся большую часть семестра втыкать не в логику работы программы, а в бесчисленные goto и непонятные одно- и двухбуквенные переменные
по поводу Fortran-а --- а Intel почему-то до сих пор Fortran-овский компилятор выпускает.
Наверное, там один идиоты сидят
У нас в университете не ограничивали в выборе языка программирования для решения задачи. Какой тебе удобнее — тот и выбирай, кроме специализированных предметов конечно же.