воскресенье, 5 января 2014 г.

Ссылка. Свойства и методы формы. Лабораторные Delphi

http://alexanderbondar.blogspot.ru/2013/12/3-delphi-1.html

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  case (ComboBox1.ItemIndex) of
    0: Self.BorderStyle := TFormBorderStyle(bsNone);
    1: Self.BorderStyle := TFormBorderStyle(bsSingle);
    2: Self.BorderStyle := TFormBorderStyle(bsSizeable);
    3: Self.BorderStyle := TFormBorderStyle(bsDialog);
    4: Self.BorderStyle := TFormBorderStyle(bsToolWindow);
    5: Self.BorderStyle := TFormBorderStyle(bsSizeToolWin);
  end;
end;

Мда....

Я тоже конечно "на коленке" - люблю... Но для преподавателя - по-моему - это уж слишком...

21 комментарий:

  1. Нормальная лабораторная для первого курса, большинство ничего не умеют и IDE видят впервые.
    Программировать не умеет никто, зато в группе есть пара тройка "умников", которые считают, что могут поучить преподавателя.
    Приведённый фрагмент кода при начальном обучении вполне допустим, даже желателен, за исключением "фокусов" с приведением типа bsXXXX. Посредством такого упрощения доносится суть без акцентирования на ненужных на текущий момент технических деталях.
    В дополнительных вопросах к лабораторной, в разделе задач повышенной сложности, неплохо предложить переписать код эффективнее сообщив в качестве подсказки о функциях Low и High, которые можно использовать для перечислимых типов, модуле System.TypInfo и функциях GetEnumName и GetEnumValue.
    Но большинство эту задачу решать не станут, поэтому её решение следует позже привести.
    Задачу можно использовать в педагогических целях в отношении "умников", обозначенных выше.
    Статистически решит её один из трёх или вообще ни один. Основная причина - лень, смешанная с самоменением.
    Лечится пересдачами, но плохо. Есть некоторый опыт, но обычно это сложные случаи.
    Хочу обратить внимание на важность лабораторных, которую я сам серьёзно недооценивал.
    После теоретического курса, в лучшем случае, остаются знания. После лабораторных (при надлежащем отношении к ним преподавателя) - навык. Первое и второе дополняют друг друга и составляют образование.
    Про GetEnumValue можно забыть или вообще не знать, но общие принципы решения типовых задач будут привиты практическим применением. А GetEnumValue ищущий найдёт самостоятельно. Особенно, если ему сказать о существовании этой функции.

    ОтветитьУдалить
    Ответы
    1. Возможно Вы и правы. Но всё же. ИМХО.
      1. "Вводная" не помешала бы.
      2. Принудительная типизация - вызывает-таки вопросы.

      Удалить
    2. NameRec, вы, я надеюсь, понимаете, что данная "лабораторная" с программированием не имеет ничего общего? Мне от таких "введений в программирование для не умеющих программировать" каждый раз плакать хочется.

      Удалить
    3. «NameRec, вы, я надеюсь, понимаете, что данная "лабораторная" с программированием не имеет ничего общего?»
      -- К сказанному ранее не имею что-либо добавить. Смысла Вашего вопроса - не понимаю. По-моему, Вы вольно оперируете с речевым оборотом "с программированием не имеет ничего общего". Действительно, имеет ли IDE что-либо общее с программированием? - Хороший вопрос... А Вы что об этом думаете?

      Удалить
    4. Вот вы ниже пишите о пользе умения работать с литературой. При этом совершенно нормально относитесь к лабораторной, смысл которой заключается в запуске на выполнение пустой формы и изменению пары ее свойств. То есть это ровно то, что 100% можно в справке прочитать или самому догадаться.

      Даже реализация расчета чисел Фибоначчи разными способами имеет с программированием куда больше общего. На этом примере можно пощупать рекурсию, хвостовую рекурсию, различия между рекурсией и циклами... да он неисчерпаем. А вы про IDE... фу.

      У меня нет опыта преподавания, но как бы странно это не звучало, у меня есть опыт прохождения курсов по программированию: СамГТУ (очно), MIT (учебник и видео лекций), ETH Zürich (учебник), University of Washington (Coursera). Могу с уверенностью заявлять, что маразмом вроде изучения IDE занимаются только у нас. И я предполагаю, что вся беда в том, что сами преподаватели не умеют программировать. Исключения, вероятно, составляют некоторые ведущие ВУЗы. В частности в CS-клубе при ПОМИ РАН встречал очень сильных преподавателей с опытом работы в компаниях вроде Яндекса.

      Удалить
    5. «Вот вы ниже пишите о пользе умения работать с литературой. При этом совершенно нормально относитесь к лабораторной, смысл которой заключается в запуске на выполнение пустой формы и изменению пары ее свойств. То есть это ровно то, что 100% можно в справке прочитать или самому догадаться.»
      -- Для того, чтобы прочитать в справке, нужно иметь представления об английском языке. Это - материал четырёх семестров. Тратить на это время в ситуации, когда нужно быстро получить практические навыки - нецелесообразно. Как и тратить время на догадки. Причём догадки (метод "тыка") - вообще не вариант, поскольку они не ведут к оптимальному освоению "матчасти". Я вот, например, к стыду своему, узнал о Ctrl+Tab в Object Inspector только случайно, из такой же "бесполезной" заметки всего пару лет назад. Но я правда с IDE работаю только как с отладчиком...

      «Даже реализация расчета чисел Фибоначчи разными способами имеет с программированием куда больше общего. На этом примере можно пощупать рекурсию, хвостовую рекурсию, различия между рекурсией и циклами... да он неисчерпаем.»
      -- Перечисленные вещи имеют отношение к программированию вообще, а не к среде Delphi. Следующие лабораторные могут быть посвящены разработке конкретных форм и где там "хвостовая рекурсия"?
      Обозначенные Вами темы обсуждаются в рамках других курсов.

      «У меня нет опыта преподавания»
      -- Но опыт обучения в ВУЗе ведь есть?

      «у меня есть опыт прохождения курсов по программированию»
      -- Это совсем другое.

      «Могу с уверенностью заявлять, что маразмом вроде изучения IDE занимаются только у нас.»
      -- В результате, Вы "уверенно" ошибаетесь. "Изучением IDE" не занимаются "даже" "у нас".
      Дать понятия об IDE, пройти первые шаги с инструментом, не означает его изучение.
      Изучение производится дальше самостоятельно.

      «И я предполагаю, что вся беда в том, что сами преподаватели не умеют программировать.»
      -- Вы обо мне? :-) Ну, никто не может Вам запретить "предполагать" всё, что Вам вздумается.

      «Исключения, вероятно, составляют некоторые ведущие ВУЗы.»
      -- Не только.

      PS: не хотел об этом говорить, но...
      Посмотрел я в профиль автора. Увидел Ваш вопрос к нему про студентов, что у них вызывает вопросы и т.д. Оценил обстановку вокруг его постов, в частности, прочитал Ваш комментарий здесь. Задумался...
      Человека, возможно, попросили вести лабораторный курс по Delphi. Ему за 50, возможно, под 60. IMHO, это априори вызывает к нему уважение. Вероятно, с Delphi до этого он дела не имел вообще.
      Да, он ведёт себя странно. Он регистрируется в Google под своим именем (!) после чего выкладывает первые две лабораторных (я бы объединил их в одну, поместив туда много чего ещё) для первого курса. Не понимаю, как этот материал попал на DelphiFeeds - не знаю уж, какая там редакционная политика...
      Человек надеется, что "умное" и "доброжелательное" сообщество его подправит и направит, "поможет" и "поспособствует". Он надеется, по крайней мере, на элементарное человеческое отношение, на которое вправе рассчитывать любой пожилой человек. Вместо этого он получает "срач" на "околопрограмистском" форуме, где над ним откровенно издеваются и Ваши глубокомысленные замечания, которые, будучи помещёнными, что называется, в контекст, выглядят несерьёзно.
      Ok господа! Вы победили! Только кто от этого выиграл? - По-моему, никто. Эта "победа" стала частью информационного шума в Сети, как впрочем, и лабораторные.
      Станет ли автор после этого писать дальше? М.б. на следующем шаге он уже готов был сказать что-то действительно интересное? - Сомневаюсь.
      Но наслаждайтесь победой, господа...

      Удалить
    6. Для того, чтобы прочитать в справке, нужно иметь представления об английском языке.

      ОК, правда тогда придется мысленно вычеркнуть из комментариев здесь все рассказы о важности работы с документацией.

      Перечисленные вещи имеют отношение к программированию вообще, а не к среде Delphi. Следующие лабораторные могут быть посвящены разработке конкретных форм и где там "хвостовая рекурсия"?
      Обозначенные Вами темы обсуждаются в рамках других курсов.


      ОК, еще недавно вы писали, что из студентов на подобном курсе программировать не умеет никто. Теперь же им впаривают кидание кнопок в IDE, а про программирование будут рассказывать на каких-то других курсах. Даже не смею спорить.

      «У меня нет опыта преподавания»
      -- Но опыт обучения в ВУЗе ведь есть?


      А я разве не написал об этом в том же самом комментарии? Только ведь это по вашему голословному утверждению "совсем другое".

      Дать понятия об IDE, пройти первые шаги с инструментом, не означает его изучение.

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

      Вы обо мне? :-) Ну, никто не может Вам запретить "предполагать" всё, что Вам вздумается.

      Я о подобных преподавателях. Если вы учите студентов так же, значит я и о вас в том числе.

      Он регистрируется в Google под своим именем (!)

      Это совершенно нормально. Но я тоже зарегистрирован под своим именем. И автор данного блога - Александр Люлин - тоже под своим. Да много кто под своим. А вот вы почему-то стесняетесь представиться. Это удивляет.

      Человек надеется, что "умное" и "доброжелательное" сообщество его подправит и направит, "поможет" и "поспособствует". Он надеется, по крайней мере, на элементарное человеческое отношение, на которое вправе рассчитывать любой пожилой человек.

      У него в блоге вполне адекватные комментарии. Но то как он на них отреагировал - заставляет схватиться за голову. И если вы обратили внимание, то в его блоге и в его G+ я его не критикую. Это не просто так.

      Удалить
    7. Следующие лекции будут посвящены разработке форм? А для чего людям, не умеющим программировать, разрабатывать формы? Что они с ними будут делать?

      Удалить
    8. «Для того, чтобы прочитать в справке, нужно иметь представления об английском языке.

      ОК, правда тогда придется мысленно вычеркнуть из комментариев здесь все рассказы о важности работы с документацией.»
      -- Да ничего не "придётся вычеркнуть". На первом курсе лучше знакомиться с литературой на родном языке. Вариантом такой литературы является статья автора.

      «...Обозначенные Вами темы обсуждаются в рамках других курсов.

      ОК, еще недавно вы писали, что из студентов на подобном курсе программировать не умеет никто. Теперь же им впаривают кидание кнопок в IDE, а про программирование будут рассказывать на каких-то других курсах. Даже не смею спорить.»
      -- Играете словами? Как прикажете понимать Ваше "на подобном курсе"? На первом, Роман. На первом курсе.
      Да, я утверждаю, что на первом курсе программировать не умеет практически никто. Есть исключения, мне доводилось встретиться с какой-то флуктуацией в 2003-м, но это совершеннейшее исключение.

      ««У меня нет опыта преподавания»
      -- Но опыт обучения в ВУЗе ведь есть?

      А я разве не написал об этом в том же самом комментарии? Только ведь это по вашему голословному утверждению "совсем другое".»
      -- Не написали. Перечитайте, что Вы написали. О ВУЗе, в котором Вы учились можно только догадываться. Поэтому я и написал своё предложение в форме вопроса.
      Курсы, на которые Вы сослались мне ничего не говорят. Ну, разве что, о Вашем желании упомянуть, что Вы их прошли. То, что Вы проходили курсы в Самарском Госуниверситете, не говорит о том, что Вы там учились. В нашем ВУЗе профильные курсы может пройти любой желающий. Даже без высшего образования. Убеждён, что в СамГУ такое тоже возможно.
      Теперь относительно "голословности" в которой Вам угодно было меня "обвинить".
      Не знаю как Вы, я вижу серьёзные отличия между прохождением тематических или даже общих курсов по какой-либо специальности, с системным ВУЗовским образованием. В последнем случае студенты параллельно изучают большое количество разных вещей. Например, на первом курсе это матанализ, аналитическая геометрия, дискретная математика, программирование (то, в котором "хвостовые рекурсии"), основы RAD-программирования (где лабораторные, вызвавшие у Вас столь бурное неприятие), язык и много чего ещё.
      Материал рассчитан на самый начальный уровень и большое количество самостоятельной работы. Лабораторные, какими бы "тупыми" они Вам ни казались, в такой ситуации - неплохое подспорье. Читаешь и делаешь как написано. В следующем семестре будут другие лабораторные, которые ещё нужно сообразить, как делать, несмотря на все методические рекомендации.
      Что касается профильных курсов, то тут ситуация совсем другая. Здесь ряд логически связанных тем, которые рассматриваются весьма подробно. И контингент на таких курсах - не все студенты-одногодки факультета, а только те, кто изъявил желание глубже погрузиться в выбранную тематику.
      Если и сейчас "голословно" - уж извините... :-)

      Удалить
    9. «Дать понятия об IDE, пройти первые шаги с инструментом, не означает его изучение.

      Отличная ведь идея для людей не знакомых с программированием потратить на это пару-тройку лабораторных, которых в течении семестра и так не очень много.»
      -- Возможно, автор разбил одну лабораторную на несколько частей. Воможно, чтобы посты не оказались слишком объёмными, а страницы загружались быстрее.
      Впрочем, IMHO лучше здесь спросить самого автора, если Вам интересно. Но Вы же не спрашиваете - Вы утверждаете здесь...

      «Я о подобных преподавателях. Если вы учите студентов так же, значит я и о вас в том числе.»
      -- К своим словам, сказанным ранее, не имею, что добавить :-)

      «Он регистрируется в Google под своим именем (!)

      Это совершенно нормально. Но я тоже зарегистрирован под своим именем. И автор данного блога - Александр Люлин - тоже под своим. Да много кто под своим. А вот вы почему-то стесняетесь представиться. Это удивляет.»
      -- Я не "стесняюсь", я не вижу в этом конструктивного смысла. Деструктивный вижу.
      Например, я не хочу, чтобы по какому-либо поводу моё имя, данное мне родителями, которых я бесконечно уважаю, праздно "муслолилось" в Сети. То, что подобное может легко случиться, мы убеждаемся на примере автора обсуждаемомго материала.
      Я публичный человек и лишние ушаты грязи мне ни к чему. Если Вы обратили внимание, я не злоупотребляю своей анонимностью. По крайней мере, хамства с моей стороны Вы не встретите, хотя мне уже приходилось ни раз сталкиваться с вольной трактовкой моих слов и пустыми обидами, основанными на такой трактовке.
      Надеюсь, я внятно разъяснил свою позицию по вопросу моей анонимности.

      «У него в блоге вполне адекватные комментарии. Но то как он на них отреагировал - заставляет схватиться за голову.»
      -- Меня - не заставляет.
      Возможно потому, что я по опыту имею представление о причинах того, что "заставляет" Вас "хвататься за голову".
      Если интересно - могу пояснить, но пишите уж в личку. IMHO, автор - вполне вменяемый человек. И ему вполне можно мотивировать, что в Delphi нет никакой необходимости явно приводить тип констант при задании значений свойства одного с ними типа. Что это скорее вредно, чем осмысленно.

      «У него в блоге вполне адекватные комментарии. Но то как он на них отреагировал - заставляет схватиться за голову. И если вы обратили внимание, то в его блоге и в его G+ я его не критикую. Это не просто так.»
      -- Обратил. И на том спасибо...

      «Следующие лекции будут посвящены разработке форм? А для чего людям, не умеющим программировать, разрабатывать формы? Что они с ними будут делать?»
      -- Для того, чтобы сделать работающее интерактивное приложение для курсовой (и даже - для дипломной) работы, "уметь программировать" не нужно.
      Достаточно иметь представление о программировании и навыки применения инструмента и работы с литературой (в т.ч. иностранной, включая монографии).
      Выше я сказал, что на первом курсе программировать не умеет практически никто. На четвёртом курсе программировать умеет ~5-10% студентов, выбравших соответствующую специализацию. Остальные, правда - в большинстве, имеют развёрнутые понятия о предмете и серьёзные шансы научиться программировать, уже работая по специальности.
      Означенные 10% являются предметом пристального интереса "скаутов" сетевых компаний (вроде "Тандер"), их "ведут" с третьего курса и они уходят туда после окончания магистратуры или ещё раньше - бакалавриата.

      Удалить
    10. Ну и ещё Роман... "В догонку", как говорится.
      Вы просили "случаи из жизни" у автора обсуждаемого материала? - Не возражаете, если я приведу случай из своей? Из минувшего семестра? - Извольте :-)
      ...Октябрь, вторая пара. Практическое занятие. Очень толковый молодой человек (специализация - что-то там "наворочанное" с графикой и OpenGL - не разбирался сильно. C++, Qt но почему-то Windows - не знаю чего они там "мудрят") ищет ошибку в своём коде под отладчиком.
      Я прохаживаюсь по аудитории - вижу, что в коде он что-то делает слишком сложно. Сейчас уже не вспомню — что именно, но должно быть там такой «предметной магии». То, что не оптимально - не удивительно, поскольку с Delphi они сталкивались только на лабораторных на первом курсе, там же у них был FreePascal на программировании со структурами данных и пр. Итераторов (for component in form.Components do) в Delphi они не видели, хотя если сказать им про них - они знают, что это, т.к. в C# и Java это есть.
      Я сажусь и показываю, замечаю, что в литературе, в разделах, которые я рекомендовал к изучению, об этом сказано. - Он мол: "Да тут просто завал с литературой! И по другим предметам и по курсовой..." - Решил "сэкономить", понятно...
      Машинально оформляю код, переношу блок и сдвигаю его (по старинке: Ctrl+K+I). Он: "А как это Вы сделали?" - Я ему озвучиваю список горячих клавиш и прошу всех обратить на это внимание, чтобы не "жевать кактус" дальше. Список наиболее употребимых горячих клавиш раздал.
      Ещё произвёл "фурор" Ctrl+Shift+C, Ctrl+Shift+Up/Dn ну и "А можно тут рефакторинг? - Конечно можно, попробуйте через контекстное меню...".
      Помню, спросил его, а почему он не пробовал «интуитивный» Tab и Shift+Tab для сдвигов блоков? Вроде же, во всех IDE так... Он мне: "Да я привык пользоваться Emacs..." - "Вот тебе на..." думаю... C++, Qt, OpenGL, но Windows. Но зато — Emacs... Мощно...

      К чему это я? Да к тому, что о возможностях IDE нужно хотя бы знать... Найти, как ими воспользоваться — это уже дело техники и Google. А где человек узнаёт о таких возможностях? - Конечно, из литературы и методом проб и ошибок. От друзей-приятелей. Но литературу по IDE не пишут. И в Help это не всегда просто найти. И не все находят нужным тратить время на IDE. Да и разные эти IDE, зачем на Delphi "заморачиваться".
      Но по-моему, лучше, чтобы студенты узнавали о возможностях IDE на лабораторных. Ещё на первом курсе. Но там, вероятно (точно не знаю), акцент делают именно на рисовании форм и увязке их с кодом и данными.

      Удалить
    11. Играете словами? Как прикажете понимать Ваше "на подобном курсе"? На первом, Роман. На первом курсе.

      Да, действительно можно по-разному понимать. Я не играю словами, под "курсом" с самого начала я подразумевал "серию учебных занятий по одному предмету". Учился я в СамГТУ. Остальные курсы перечислил просто чтобы показать, что знаю как программирование преподается в разных ВУЗах.

      Да, я утверждаю, что на первом курсе программировать не умеет практически никто.

      Я нисколько не возражаю. Я - наоборот - возмущен тем, что данный факт всеми констатируется, но никто почему-то не хочет попробовать учить их программированию. Может быть тогда не возникало бы такой ситуации:

      На четвёртом курсе программировать умеет ~5-10% студентов, выбравших соответствующую специализацию.

      С чего бы им уметь программировать, если их никто этому не учит? Упомянутые 5-10% - это энтузиасты самоучки. Остальных же при поступлении в ВУЗ обманули, пообещав, что их будут учить программированию.

      Для того, чтобы сделать работающее интерактивное приложение для курсовой (и даже - для дипломной) работы, "уметь программировать" не нужно.

      Ну вот опять. Мы ведь не про филологов говорим, а про будущих программистов. Почему бы не попробовать научить их программированию? Ну как это делают, например, в таких ВУЗах как MIT, ETH, UW и ИТМО?

      Да к тому, что о возможностях IDE нужно хотя бы знать...

      Надо конечно, куда без этого? Но IDE для программиста - это как Word для журналиста. Штука конечно нужная, но... Хотя, я читаю газеты и мне уже давно кажется, что на журфаках учат пользоваться вордом, а остальное студенты должны сами узнать.

      Такое вот у нас ВЫСШЕЕ образование. С акцентом на фундаментальных вещах вроде IDE.

      Удалить
    12. «Да, действительно можно по-разному понимать. Я не играю словами, под "курсом" с самого начала я подразумевал "серию учебных занятий по одному предмету".»
      -- Ok, не заморачивайтесь. В неточно выразились, а я Вас понял по-своему. Просто среди моих знакомых достаточно многие прошли тематические курсы.

      «Я нисколько не возражаю. Я - наоборот - возмущен тем, что данный факт всеми констатируется, но никто почему-то не хочет попробовать учить их программированию...»
      -- Я констатирую, что мы с Вами подразумеваем разные определения термина "уметь программировать".
      Я понимаю под этим наличие квалификации, позволяющей эффективно работать в профессиональной команде.
      Под "понятиями о программировании" я подразумеваю умение создавать программы, например, для курсовых и дипломных работ, в личных целях.
      Со студентами-филологами я дела не имею вообще. Я говорю о факультете Прикладной Математики, где *понятие о программировании* (в моём вольном определении) имеют все.
      Кстати, далеко не все студенты этого факультета видят себя в будущем программистами. Значительная часть, но далеко не все.

      «С чего бы им уметь программировать, если их никто этому не учит? Упомянутые 5-10% - это энтузиасты самоучки. Остальных же при поступлении в ВУЗ обманули, пообещав, что их будут учить программированию.»
      -- По-моему, опять подмена понятий. Я думаю, программированию, как и чему угодно научить нельзя. Можно только помочь научиться. Создать благоприятные условия. Системное изложение материала, своевременное предоставление информации, которая должна оказаться востребованной - элемент таких условий. Возможность консультаций с преподавателем - тоже. Самоучки этого лишены, в результате, у них и качество знаний и навыков - иное.
      Далее, никто никого не обманывает и никто никому ничего не обещает. По крайней мере, я никогда ни о чём подобном не слышал. Хотя Ваш тезис вполне современен :-) В нынешнее время молодые люди часто ожидают, что им кто-то что-то должен. Научить программированию, например. Или зачёт/экзамен поставить...
      Есть люди, которые поступают учиться по определённой специальности. Учиться, это значит работать. Много работать. Тяжело работать. Hard work. Вложить им в голову знания и умения никто не обещал и не обязан. Так вот, к сожалению, далеко не все студенты это понимают. Очень немногие готовы работать. Означенные мною ранее 5-10% отличаются от остальных тем, что они готовы. Всё просто.

      «Такое вот у нас ВЫСШЕЕ образование. С акцентом на фундаментальных вещах вроде IDE.»
      -- Ну вот опять :-) Такой "акцент" только в Вашем воображении, Роман.
      Недавно я проглядывал программу обучения по кафедре Информационных технологий у нас. IMHO - она весьма удачна. Всё необходимое для подготовки специалистов там есть. Я это могу говорить с полной уверенностью, поскольку являюсь не только преподавателем, но и потребителем, поскольку значительная часть моих сотрудников - мои же студенты в недавнем прошлом.

      Удалить
    13. Я думаю, программированию, как и чему угодно научить нельзя. Можно только помочь научиться. Создать благоприятные условия.

      Это общие слова, так можно сказать о чем угодно, вы правы. Научить нельзя, вот только это совсем не повод не учить. Гроссман учит программированию, Абельсон учит, Сассман учит, Мейер учит, да много кто учит. Я им куда больше верю, чем анониму, вы уж извините.

      Вы вот, кстати, SICP читали? Это вот про программирование, в отличие от кидания кнопок на форму. А "Почувствуй класс" Мейера? Много можно хороших примеров привести, поинтересуйтесь.

      P.S. "Кулинарии научить нельзя, поэтому мы ограничимся чистой картошки, до всего остального самые упорные сами дойдут". Скучно уже, ей богу.

      Удалить
    14. Роман, мне кажется, что наше обсуждение превращается в спор.
      Если Вы перечитаете нашу беседу, то вероятно обнаружите, что на Ваши тезисы я уже отвечал. Причём, как мне представляется, достаточно развёрнуто. Повторяться я не вижу смысла, «веры мне» я не жду и не стремлюсь к такой «вере», да и вообще нахожу программирование весьма отдалённым от религии: верить, цитировать авторитетов и отсылать к ним, как и к основам учения, принято в богословии. Программирование же, как и организация обучения ему - IMHO несколько другое.
      Давайте констатируем, что у нас есть расхождения в представлении о том, как должен быть построен учебный процесс. Это нормально, причём в большей степени, чем подписывать посты своим настоящим именем.

      Удалить
    15. Ну если бы ваши слова не были бы подкреплены абсолютно ничем, то может быть не пришлось бы о вере говорить :)

      Но разногласия есть разногласия, остановимся на этом. Позволю себе продолжить ссылаться на авторитет лучших ВУЗов планеты.

      Удалить
    16. «Ну если бы ваши слова не были бы подкреплены абсолютно ничем»
      -- Простите Роман, но так тоже можно сказать о чём угодно :-) О каких угодно аргументах, просто объявив их несостоятельными. Если у Вас есть конкретные возражения к тому, что я сказал ранее - приведите их. Пока же я вижу только попытки грубо утрировать мои слова.
      Рассказывать же, как "круто учит MIT и как никчёмно - у нас" - это пустые слова уже хотя бы потому, что среди наших программистов немало толковых. Говорить, что они "толковы не благодаря, а вопреки" тоже голословно, поскольку большая их часть подобно Вам, имеет высшее образование, а самоучек (всё изучивших самостоятельно) - подавляющее меньшинство. Вы готовы спорить и с этим? - Но тогда приведите конкретные *факты*, подтверждающие такие "наблюдения". Боюсь, что подобных фактов привести Вы не сможете. Но если не сможете, то почему Вы утверждаете? На основании чего? Такова вера авторитетам? - Но ведь я не сказал ничего, что бы противоречило их "учению". Я ведь оппонирую только Вашим домыслам относительно того, что обучение программированию должно сводиться *только* к курсам Ваших авторитетов и подобным.
      Кстати, в нашем образовательном процессе рассматриваются практически все вопросы из любимого Вами SICP, просто в иной последовательности и в иной группировке, в чём лично я вижу больше пользы.
      Например, математические алгоритмы гораздо более подробно рассматриваются в численных методах, интерпретаторы и трансляторы - также в рамках отдельного курса, "вычисления на регистровых машинах" и ассемблеры - есть курс и для этого. Параллельное программирование - тоже отдельный курс.
      К чему я это? Да к тому, что вся необходимая информация предоставляется, причём в системной форме. Возможности - обеспечиваются. Ими нужно только воспользоваться. По-моему, важнее не где учиться, а как.

      «Но разногласия есть разногласия, остановимся на этом.»
      -- Я уже предложил остановиться. Вам же почему-то потребовалось "продолжение" :-)

      «Позволю себе продолжить ссылаться на авторитет лучших ВУЗов планеты.»
      -- Да ктож запрещает :-) У нас в стране свобода совести...
      Тем более, что вести разговор в таком ключе скучно становится уже мне...

      Удалить
    17. "Если у Вас есть конкретные возражения к тому, что я сказал ранее - приведите их."

      Я даже не возражаю нисколько, вы сами все прекрасно показываете всем тем, кто читает наш разговор. Ваш "выхлоп" - это 5-10% людей, умеющих программировать к 4му курсу. То есть 90-95% студентов потратили время зря.

      Кстати, в нашем образовательном процессе рассматриваются практически все вопросы из любимого Вами SICP

      Вот только юмор в том, что SICP - это ВВОДНЫЙ курс в программирование. Вводный, понимаете? Чувствуете всю глубину падения тех, кто на вводных курсах рассказывает про кидание кнопок на форму? Кстати, в течение скольких лет предполагается изучать эти вводные вопросы в вашем ВУЗе? :)

      в чём лично я вижу больше пользы.

      Ради бога. Уверен, преподаватели MIT, ETH и ИТМО, если они нас читают, к вам прислушаются. Ведь 10% людей, умеющих программировать к 4му курсу - это потрясающий, даже впечатляющий результат :)

      Удалить
    18. «Я даже не возражаю нисколько, вы сами все прекрасно показываете всем тем, кто читает наш разговор. Ваш "выхлоп" - это 5-10% людей, умеющих программировать к 4му курсу. То есть 90-95% студентов потратили время зря.»
      -- Об умении программировать я написал выше, как и о "понятии о программировании".
      Вы опять пытаетесь утрировать Роман :-)

      «Вот только юмор в том, что SICP - это ВВОДНЫЙ курс в программирование. Вводный, понимаете?»
      -- Разумеется. Выше я сказал, почему не нахожу его оптимальным.

      «Чувствуете всю глубину падения тех, кто на вводных курсах рассказывает про кидание кнопок на форму?»
      -- Не чувствую.

      «Кстати, в течение скольких лет предполагается изучать эти вводные вопросы в вашем ВУЗе? :)»
      -- Я отвечал на этот вопрос. Перечитайте выше.

      «Ради бога. Уверен, преподаватели MIT, ETH и ИТМО»
      -- Мне нет дела до этих преподавателей, хотя к их мнению, если они его выскажут, я возможно, прислушаюсь :-)

      «Ведь 10% людей, умеющих программировать к 4му курсу - это потрясающий, даже впечатляющий результат :)»
      -- Впечатляет только Ваш апломб, Роман :-)
      По сути Ваших тезисов я уже ответил ранее.

      Удалить
  2. «1. "Вводная" не помешала бы.»
    -- Я немного не понял, какой вводной Вы ожидаете... Вводная должна содержаться в теоретическом курсе, т.е. в книжке. Лабораторная подразумевает, что человек ознакомился с соответствующими разделами в литературе (кстати, непонятно, почему автор обсуждаемой работы ссылки на литературу не привёл) и, если встречается с затруднениями, обращается к этим соответствующим разделам или (что хуже) к преподавателю, который (по-уму) сначала отправит к литературе (студенты этого не любят, часто думают, что "преподу, мол - лень"), но системно приучать к работе с литературой необходимо, поскольку лучше "один раз прочитать документацию, чем потратить несколько часов на изобретение велосипеда" и "один раз спросить у Google, чем двадцать раз - на форумах". Кроме того, литература содержит системное изложение материала, там отражены его связи с другим. Нормальный преподаватель это осознаёт и не на все вопросы отвечает сам. С другой стороны, есть такие вопросы, по которым к литературе отсылать не следует и вообще, отсылками злоупотреблять нельзя - перестанут спрашивать.
    На первом курсе большинство лабораторных (не путать с практическими занятиями) содержат пошаговые инструкции к выполнению тех или иных действий по теме. Целевая функция - знакомство с инструментом, изучение "матчасти", "какие кнопки давить". Это тоже нужно, поскольку навыки эффективной работы в IDE нужны. И комбинации клавиш предъявить - тоже неплохо.

    «2. Принудительная типизация - вызывает-таки вопросы.»
    -- Да уж... Теряюсь в догадках, откуда такое пришло в голову... :-)
    Иногда бывает, что преподаватель не очень хорошо знаком с инструментом и сам находится в состоянии его изучения. Ну, поручили человеку вести этот курс, составить лабораторные по нему... Может, "подсмотрел" где-то такой код, в каком-то "авторитетном" источнике. Всякое бывает... Я бы не стал "с горяча". Главное, чтобы это в религию не превращалось... ;-)
    И потом, толк от этих работ - однозначно есть. Человек, м.б. направит к ним своих студентов. Чтобы не только в аудитории к ним был доступ. Многие сейчас так делают. А интересующемуся школьнику это вполне может пригодиться...

    ОтветитьУдалить
  3. Вот ведь, во всех книжках учат работать со списками используя свойство OBJECT... а тут такое...
    по моему бредятина а не лабораторная...

    ОтветитьУдалить