Продолжаю анализировать, куда же мы (как ЧеловекоОбщество) катимся.
Получившееся продолжение статьи https://aftershock.news/?q=node/631845 . Группа студентов та же.
Уже была решена задачка типа
var f:text;
...
for j:=1 to 10 do
begin
for i:=1 to 10 do write(f,i*j,' ');
writeln(f);
end;
...
Группа студентов (в виде обоих полугрупп) не смогла перейти к решению типа
var f:text;
...
for row:=0 to StringGrid1.RowCount-1 do
begin
for col:=0 to StringGrid1.ColCount-1 do write(f,StringGrid1.Cells[col,row],' ');
writeln(f);
end;
...
Структура объекта по указанным свойствам - на доске, в том числе - StringGrid и в виде таблицы, и в виде описания используемых свойств.
С предыдущими группами (более 10 лет) такого просто не было. Связываю с отказом логического мышления в части метода аналогии.
Комментарии
вы с ума сошли! :) там с единицы а тут с нуля нумерация. какая может быть аналогия! :)
у вас кстати переменная f объявлена но не присвоено значение :-P
может они на этом виснут? :)
у вас кстати переменная f объявлена но не присвоено значение
Практика показывает, что на этом вопросе они не могут виснуть по определению)))
вот вы учите ужасаетесь, а я исправляю сижу систему написанную такими деятелями. функция вызывает другую функцию (только), которая вызывает третью (только) и так пять уровней декомпозиции. последняя просто возвращает true. занавес. сидим с архитектором системы смеёмся - it's hardcoded truth говорит..
прихожу, говорю, надо добавить поле в базу. спорят 45 минут до хрипоты, спокойно объясняю что без этого работать не будет, нехотя вставляют. потом приходит начальство, на белом глазу что-то говорит, они добавляют с закрытыми глазами 15 полей, спрашиваю для чего - не могут ответить.
"начальство сказало". может, у них просто другая функция активирована - не здравого смысла, а иерархической послушности. я ж им деньги не плачу, а начальство платит, поэтому здравый смысл определяет начальство. типа того.
так зачем тогда что-то учить. делай что говорят и всё хоккей.
1. Уже пошел термин "Эмоциональный интеллект".
2. "Все, что угодно, за ваши деньги". Растет поколение, которое сколько угодно раз может сделать "Ку". Но не может выполнить логическую задачу. И эти люди через 3-5 лет придут на производство. За ними будущее...
ох чувствую придётся описывать физику этого процесса в статье. многие могут удивиться.
Вам придется объяснять, почему "Во имя Отца, Сына и Святого духа" в программировании не работает, а главное - не может работать...
будете смеяться - может работать. но только когда три тома кнута освоил :)
И будет сильно погибать Россия, да?
при чём тут Россия. они заполонили ВСЮ планету.
1. Соглашусь про планету.
2. Похоже, такие дети сейчас пытаются уничтожить злой Телеграмм. Рубя уже айпишники Мелкософта)))
3. Как цивилизация мы выключили что-то, казавшееся неважным. И включили то, что оказалось просто вредным. Имхо - связанное с манипуляцией. И оказались там, где оказались. Где в долгосрочке не может быть ни технарей, ни техники.
Перспективный чат детектед! Сим повелеваю - внести запись в реестр самых обсуждаемых за последние 4 часа.
??? я давно уже не студент но тоже не понял что вы хотели написать. Странные циклы какие не привязанные к алгоритму. Точнее отсутствие описания алгоритма или хотя бы задачи и Странная подача материала
А ну да у нас то люди не те , то ученики плохие...
Если Вы по тексту первой программы не прочитали, что это запись таблицы умножения в файл... не надо Вам комментировать данную статью...
ооооо ну если у вас так же лекции товарищ проходит то я студентам вашим соболезную.....
Меня наверное сразу бы с порога: выйдете из аудитории, сие торжество разума не для вас :)
а что до таблицы умножения .. речь не о ней а том что вы обвиняете другое поколение не видя бревна в своем глазу...
А что вы хотите. Там переменная, а тут объект. На этом аналогия ломается, ибо не хватает «энергии активации» что бы перескочить сей барьер.
Проще говоря, у студентов не хватило опыта работы с объектами. Присутствие объекта да ещё впервые введённого (судя по таблице его свойств на доске) - вызвала оцепенение и страх.
Нужно показать «как» переходить такой барьер, а потом тестировать. Нужно донести до сознания людей что с объектом можно работать как с переменной, что объект это почти что переменная, тогда и только тогда аналогии из одной области мозги студентов начнут натягивать и на другие области.
1. Проблема аналогии между переменными и свойствами есть, так же как есть эмоциональный барьер перехода.
2. Не только в этом дело. Информация воспринимается целиком, без анализа и синтеза. Как некоторая заученная мантра, без понимания внутренних деталей.
3. Наводящие вопросы типа "какой операцией записать в файл" вместо вычленения куска из предыдущей программы приводят к ступору.
- точно. Так оно всегда и происходит. Но в самом начале освоения новой темы.
Вначале мозг накапливает факты целиком, без расчленения на составные, на причины и следствия и т.д. А потом, когда примеров обращения с таким материалом становится достаточно - мозг начинает производить анализ, синтез, и т.д. Тут уже мозгу становится интересно и любопытно, и процесс обучения идёт хорошо.
Но вот в начальной стадии, появление в мозгу неких новых понятий, ещё не понятно куда складываемых (на какую полочку) - вызывает отторжение, апатию и не желание разбираться, ибо ещё всё это не "село" в "матрицу". Вот этот период очень важен - нужны педагогические приёмы, как заинтересовать студента вникнуть в тему...
Так что да, вначале "мантра" - а потом уже приходит понимание. Это называется опыт.
Короче - не опытные они ещё. Практики не хватает.
Тут - либо мало времени этому уделено, либо кто-то торопит события (что одно и тоже).
Даже соглашаясь с последним предложением почти полностью, отмечу, что за более чем 10 лет ступор именно первый именно в этом году...
Лекцию про указатели студенты не прогуляли?
Лекция про именно указатели (в смысле динамических переменных) - позже. Лекция про адреса, стек, статические и динамические переменные переменные - раньше. Про файлы - тоже раньше (про эти структуры - предыдущая указанная статья), включая вопросы кэширования. Вопросы трансляции свойств через функции (методы, обращающиеся к полям) - раньше. Не совсем понятен вопрос про указатели - логика обоих программ в явном виде указателей не требует.
Возможно у нас с Вами разная терминология.
У Вас [col,row] - неименованный указатель на ячейку в таблице. Разве нет?
Сами col и row - именованные указатели на столбец и строку в ней. Динамическая переменная - не имеющая заранее определённого размера, при её объявлении выделятся память только под указатель, остальная память выделяется при присвоении переменной значения, а указателю присваивается значение адреса в памяти. Говоря же о статических и динамических переменных, Вы, возможно, имеете в виду константы и переменные.
Хотя оба алгоритма и аналогичны, но мне кажется непонимание возникает из-за незнания того, что переменная может содержать не только значение, но и содержать адрес по которому надо взять значение (быть указателем на значение).
col и row - такие же переменные, как i и j. Переменные из указателя - были бы col^ и row^. До указателей - еще тупо не дошли, и они здесь не нужны. Задача ставилась - от записи StringGrid в текстовой файл, не более.
ЗЫ В Паскале нет "неименованных указателей" - все должно быть проименовано в явном виде))) То, что не привел описания переменных - думал, что очевидно.
Ваша терминология ясна. По смыслу (алгоритмически) любая переменная содержащая адрес чего бы то ни было - является указателем. У Вас понятие указателя ограниченно строгостью языка, где указатель может указывать только на переменную, а это уже позволяет ввести особые операторы работы с указателем. С точки зрения преподавания языка это правильно, но корни непонимания студентов где-то глубже. Кстати, если непонимание возникло именно в этом году, то надо поискать изменение в преподавании информатики в школьной программе. Если Вам важен результат, то придётся свою менять свою программу преподавания, подстраиваться.
П.С. У Вас какой Паскаль? Судя по "StringGrid1.Cells[col,row]" какой-то объектно-ориентированный. Имеется ли реализация и в каком виде: интерпретатора или компилятора?
1. Все таки Паскаль - язык конкретно для обучения (хотя я на нем и работаю иногда, в целях зарабатывания денег). И пугать детей адресами в этой части - просто нельзя))) да и не нужно, 1 курс, а программирование по различным разделам - до 4-го минимум. Там уже можно побаловаться и с С.
2. По поводу школы - можно посмотреть. Но в неявном виде очевидно, что в некоторых учебниках до сегодняшнего дня программы уровня первой есть. Также как очевидно то, что их просто не дают.
3. Второй пример - делфи v.3-7, либо турбоделфи. Компилятор, ессно.
Просто предположил возможность некой реализации Паскаля для учебных заведений. Делфи, конечно, достаточно проста, но мне кажется несколько избыточна для непрофильных ВУЗов.
Я же не о адресах и не о указателях как таковых, а о непонимании того принципа, что переменная может содержать не просто значение, которое можно из неё взять и использовать для вычислений, а содержать адрес по которому нужно взять это значение. В данном случае адрес не в памяти, а в таблице.
Мысль ученика не может родиться из чего-то для него самого немыслимого. Задача учителя вложить знание о возможности такой мысли. Поэтому адресацию, как принцип в программировании, нужно давать раньше, чем примеры с ним. Предыдущие тут, видимо, оплошали. Раскрывать же конкретную адресацию памяти, указатели и прочее можно и позже.
Ну индексация в массивах давалась ранее. Она здесь несколько ближе, чем адресация.
Массивы, да. Тогда даже не знаю в чём причина ступора.
В каком году они пошли в школу?
На вскидку - 2000 г.р, в школу - 2006-2007...