Интересные обсуждения
темы заинтересовавшие velkin
Обучение программированию
21.04.2025
|
LaptevVV
|
Кидайте идеи, как теперь обучать программированию ?
Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
И на нем обучать всем основным концепциям.
А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
Домашние задания в этом варианте — бесполезны.
Кто что предложит ?
Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
И на нем обучать всем основным концепциям.
А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
Домашние задания в этом варианте — бесполезны.
Кто что предложит ?
21.04.2025 57 комментариев |
LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
Раньше так делали из бедности, например тот же Кнут. И у нас в универе тоже.
LVV>И на нем обучать всем основным концепциям.
Есть мысль, что это всё равно не сработает. К тому времени, как такой язык будет создан, бюрократически одобрен и проведён как средство обучения, новый ИИ-чат сможет по спецификации языка писать на нём код.
LVV>Кто что предложит?
Тут вопрос о цели обучения. Если надо выпустить чувака, который сможет трудоустроиться и решать реальные задачи, то и надо давать реальные задачи, которые он будет решать с помощью ИИ в том числе.
Если надо обучить всему тому, чему успешно учили ранее, то надо тратить больше личного времени на лабы, устраивать совместный кодинг со студентом, устно спрашивать больше.
P.S. Раньше тоже никто не мешал отдавать написание кода более способным студентам, особенно со старшего курса. Я сам так с несколькими девушками познакомился, ни одна из которых программистом так и не стала, но лабы сдала и диплом получила.
LVV>Домашние задания в этом варианте — бесполезны.
LVV>Кто что предложит ?
Берешь Haskell, Clojure или, на худой конец, Scala. При сдаче лабы требуешь не просто показать код, а объяснить как он работает. Пусть им ИИ объясняет, чем хвостовая рекурсия отличается от нехвостовой и как ее превратить в цикл.
LVV>Кидайте идеи, как теперь обучать программированию ?
LVV>Кто что предложит ?
На первом занятии собрать зачетки, провести опрос и авансом выставить всем желающим "отлично" с освобождением от посещения занятий.
Дальше вести занятия с теми, кто действительно хочет получить Настоящие Знания.
Можно пойти дальше —
LVV>Кидайте идеи, как теперь обучать программированию ?
А ничего не изменилось. Сейчас решения заданий генерит ИИ, ранее (да и сейчас тоже), задания делали те, кто соображал, и зарабатывал на этом.
LVV>Кто что предложит ?
Ну, когда я учился, требовалось на защите объяснить как все работает, плюс на бумажке заставляли сходу что написать. Соответственно крайне многие сдавали уже сделанную кем то лабу раз 6, до тех пор, пока преподу либо не надоест, либо он тупо выйдет рано или поздно и раздолбаю задание все таки сделают. Выхлоп правда все равно нулевой, многие диплом получили, ни разу не написав даже Hello world, но раздолбаи были весьма напряжены курса до четвертого. На четвертом появился среди преподов один явный взяточник, который уже всех раздолбаев отмазывал и они сдавали первыми и без напряга, а кто действительно учился и что то мог — тех ставили в условия невозможности сдать, и приходилось ради тупо допуска у экзаменам писать раздолбаям дипломы и все такое, вися на грани отчисления.
LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
LVV>И на нем обучать всем основным концепциям.
Очень трудоёмко.
LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
Я б вообще пропустил эту часть, связанную с ИИ. Это как обучать детей пользованию смартфоном. Дети дадут фору любому взрослому в пользовании смартфоном, путём самообучения. Лучше наоборот, постараться оттянуть их встречу со смартфоном на максимально возможный срок.
LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
LVV>Домашние задания в этом варианте — бесполезны.
Вот есть такой язык программирования Alef: https://swtch.com/~rsc/thread/alef.pdf
Прямой предшественник Go, и по людям, и по идеям, и очень на него похож.
Но думается мне ИИ на Alef-е программировать не осилит.
Нативный компилятор есть под Plan9, и наверняка есть порт на Linux (ну или спортировать самому, не думаю, что это шибко сложно).
Еще мне попадался на гитхабе проект языка, очень похожего на Go, но не Go. Self-hosted, в том смысле, что компилятор на нём самом написан. Какой-то русский парень его ведет. Но навскидку не могу найти.
LVV>>И на нем обучать всем основным концепциям.
Pzz>Очень трудоёмко.
Не. За лето можно сделать
0. Язык — минимальный, без наворотов и извратов. Меньше, чем Си.
1. Парсер делаем на антлр /кокор / еще на чем-то
2. Конвертируем в С/С++
LVV>>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
Pzz>Я б вообще пропустил эту часть, связанную с ИИ. Это как обучать детей пользованию смартфоном. Дети дадут фору любому взрослому в пользовании смартфоном, путём самообучения. Лучше наоборот, постараться оттянуть их встречу со смартфоном на максимально возможный срок.
Ну, наверное, да.
LVV>>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
LVV>>Домашние задания в этом варианте — бесполезны.
Pzz>Вот есть такой язык программирования Alef: https://swtch.com/~rsc/thread/alef.pdf
Да, в книжке Кернигана/Донована по Go он упоминается.
Pzz>Прямой предшественник Go, и по людям, и по идеям, и очень на него похож.
Pzz>Но думается мне ИИ на Alef-е программировать не осилит.
Pzz>Нативный компилятор есть под Plan9, и наверняка есть порт на Linux (ну или спортировать самому, не думаю, что это шибко сложно).
Поищу. Спасибо.
Pzz>Еще мне попадался на гитхабе проект языка, очень похожего на Go, но не Go. Self-hosted, в том смысле, что компилятор на нём самом написан. Какой-то русский парень его ведет. Но навскидку не могу найти.
Тривиль от Недори — тоже можно посмотреть.
Кстати, лексика русская. Компилятор в Си написан на Go...
Pzz>>Очень трудоёмко.
LVV>Не. За лето можно сделать
LVV>0. Язык — минимальный, без наворотов и извратов. Меньше, чем Си.
Как у Дейкстры, в Дисциплине программирования? Кстати, наверняка есть готовые реализации.
LVV>1. Парсер делаем на антлр /кокор / еще на чем-то
LVV>2. Конвертируем в С/С++
Всё равно набежит вопросов.
Парсер, кстати, что руками писать, что компилятором компиляторов — начальные вложения примерно одинаковые. Потом в рукописном парсере сложнее небольшие изменения в грамматику вносить. А машинописном парсере сложнее добиться вменяемой диагностики при синтаксических ошибках.
vlang?
Pzz>>Еще мне попадался на гитхабе проект языка, очень похожего на Go, но не Go. Self-hosted, в том смысле, что компилятор на нём самом написан. Какой-то русский парень его ведет. Но навскидку не могу найти.
K>vlang?
Возможно. Вот не могу вспомнить. Мне кажется, что он был на M, но это не точно...
LVV> они не делают лабы сами, а просто генерят в ИИ.
LVV> Домашние задания в этом варианте — бесполезны.
Делать такие лабы и задания, которые ИИ решить не в состоянии. С учетом того, что ИИ не в состоянии сделать почти ничего, это не должно быть сложно. Другой вопрос — а зачем? Какая конечная цель преследуется?
LVV>> Домашние задания в этом варианте — бесполезны.
AB>Делать такие лабы и задания, которые ИИ решить не в состоянии. С учетом того, что ИИ не в состоянии сделать почти ничего, это не должно быть сложно. Другой вопрос — а зачем? Какая конечная цель преследуется?
Дык научить жеж программы писать, а не сдавать лабы...
LVV> AB> Другой вопрос — а зачем? Какая конечная цель преследуется?
LVV> Дык научить жеж программы писать, а не сдавать лабы...
Люди, которым это все интересно, научатся и без лаб. Которым не интересно, забудут все напрочь через неделю после сдачи. Для тебя лично ничего не меняется вообще — что там AI решал, что кто-то другой.
Ну а если уж так сильно "душа болит за отчизну", то, как тут правильно заметили, иди в ногу со временем и расскажи студентам, что нынче появляются компании, которые набирают разработчиков для написания программ только (и только!) при помощи AI (и ни строчки кода руками!). Ну и лаба должна быть под стать AI — современно, стильно, молодежно
Любопытная статья.
Но он больше электронщик.
LVV>Любопытная статья.
LVV>Но он больше электронщик.
Кстати, идея очень здравая — использовать недоступные для студента входные данные. Делаешь сетевое API и даёшь им библиотеку, которая может из неё читать входные данные для программы. Эта библиотека коннектится к твоему серверу, который есть только в лаборатории и получает из него данные. Если запущена локально и без сервера, то данные получает прошитые, для всех одинаковые стандартные.
Входные данные делать такими, которые не пересекаются в некоторых кейсах. Часть кейсов и относящихся к ним данных надо скрыть.
Тогда при сдаче проверять, как оно работает на стандартных данных, а также на скрытых. Если на скрытых работает неправильно, то просить студента их учесть и поправить код тут же за столом. Это может быть: пустые последовательности, слишком длинные последовательности, отрицательные значения, очень большие значения, дополнительные задержки, что-то вперемешку, такие данные, где рекурсия будет переполнять стек и т.д.
N>Тогда при сдаче проверять, как оно работает на стандартных данных, а также на скрытых. Если на скрытых работает неправильно, то просить студента их учесть и поправить код тут же за столом. Это может быть: пустые последовательности, слишком длинные последовательности, отрицательные значения, очень большие значения, дополнительные задержки, что-то вперемешку, такие данные, где рекурсия будет переполнять стек и т.д.
Студент пишет логгер или сниффер, который во время экзамена отправляет все кейсы на _свой_ сервер. А дальше простор фантазии — либо гопота исправляет код и рассылает его остальным студентам, либо сами студенты исправляют.
Итог: первый студент идёт в качестве жертвы, зато другие выживают.
F>Студент пишет логгер или сниффер, который во время экзамена отправляет все кейсы на _свой_ сервер. А дальше простор фантазии — либо гопота исправляет код и рассылает его остальным студентам, либо сами студенты исправляют.
За такое и зачёт поставить не жалко.
как минимум один рекрутинговый сайт уже немало лет так
но забыл, какой
LVV>https://habr.com/ru/articles/902400/
LVV>Любопытная статья.
LVV>Но он больше электронщик.
В целом, если идею немного обобщить, она сводится к тому, что ИИ — это такой продвинутый поиск по данным, которые в него были заложены при обучении. Этакий гугль на стероидах. Но не творец новый знаний и идей.
Электронщикам, конечно, хорошо. Они завсегда могут встать в позу, "а вот я не скажу вам, какой ёмкости конденсатор я сюда впаял, мерьте сами". Но я думаю, и в програмизме можно тоже найти вещи, которые не узнаешь, пока не померишь. Ну, веремянку CPU кешей, например.
А можно еще попробовать поднапрячь головную мышцу и придумать задачки не на незнание неизвестных фактов, а на некоторую изобретательность — тут уж точно ИИ будет в пролёте.
Pzz>А можно еще попробовать поднапрячь головную мышцу и придумать задачки не на незнание неизвестных фактов, а на некоторую изобретательность — тут уж точно ИИ будет в пролёте.
Судя по всему, это очень нетривиальная задача.
Например, совсем недавно собрали тест frontiermath со сложными математическими проблемами, которые не каждому человеку подвластны. Точнее, специалист в этой области может потратить на решение задачи несколько дней. И на конец 2024 года лучшие нейросети решали не больше 2% от представленных задач.
Последняя модель ЧатаГПТ может решить уже 10%.
Или взять Humanity's Last Exam, который тоже на старте был очень сложным (не более 4% на старте), но постепенно, всего за полгода нейросетки дошли уже до 20% решённых задач. А там авторам за задачи даже платили:
И так получается, что задурить нейросеть с каждым месяцем (не годом!) становится всё труднее. Это не о том, что программисты останутся без работы и всё такое, а о небольших, корректно сформулированных проблемах. Да, конечно, останутся свои Великие теоремы Ферма, но на то они и великие, что студентам в виде лабораторной не дашь. А что, что можно дать студенту в хорошей формулировке в отрыве от реального мира уже и не так сложно для нейросеток. Кажется, что пока именно что реальный мир и может стать новым "тестом Тьюринга".
LVV>Любопытная статья.
LVV>Но он больше электронщик.
Критичная информация: количество тактов между событиями.
Критичная информация: задержка на пути комбинационной логики.
не могу оценить корректность, но как минимум рассуждать о и давать оценки по обоим пунктам гопота берется легко
p.s.
а, пардон, надо было дочитать
LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
Подумалось...
Может пусть каждый студент свой язык придумает. Скриптовый, к примеру. Реализует его и на нем и пишет.
SIT>Подумалось...
SIT>Может пусть каждый студент свой язык придумает. Скриптовый, к примеру. Реализует его и на нем и пишет.
Ну, это 3 курс. Ну, 2-й в конце.
А учить надо с нуля основам программирования.
LVV>Кидайте идеи, как теперь обучать программированию ?
LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
LVV>И на нем обучать всем основным концепциям.
LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
LVV>Домашние задания в этом варианте — бесполезны.
LVV>Кто что предложит ?
Вопрос уже нужно ставить так: А как щас учить вообще?
LVV>Кто что предложит ?
Использование GPT ничем принципиально от списывания не отличается. Лично я когда-то зырабатывал тем, что делал лабы пачками. Везде, в каждом общежитии висели тучи объявлений "делаю лабы по...". Всегда будут те, кто делает сам и те, кто списывает. Те, кто списывает, палится на стиле написания и на том, что не может объяснить то, что он сделал. Чувак, который не делал лабу сам не может модифицировать код.
Говорить, спрашивать, просить что-то поменять в коде.
Это теперь касается не только лаб по программированию, а вообще всего обучения с 1го класса.
LVV>Домашние задания в этом варианте — бесполезны.
Оценки за задания безполезны, как основа для вычисления kpi и принятия решений о знаниях студента по ним.
LVV>Кто что предложит ?
Только личная беседа экзаменатора со студентом, допрос, на котором будет ясно, понимает или сгенерил.
И персональная ответственность преподавателя за профессиональные результаты выпускника, чтобы преподаватель оценку тоже не "сгенерил". (Возможно, преподаватели в ответ захотят возможность отчислять, право порки, или ещё что-то подобное)
LVV>Кто что предложит ?
Прекратить или уменьшить обучение написанию кода. Код писаться вручную не будет.
Не через год дак через два, не через два так через пять лет.
Сосредоточиться на более общих моментах, типа постановки задач и управления сложностью.
До того как ИИ освоит постановку задач запас времени больше.
В общем "не можешь победить — возглавь"
LVV>Кидайте идеи, как теперь обучать программированию ?
LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
LVV>И на нем обучать всем основным концепциям.
Нет, не нужно создавать новый язык, нужно создать переводчик реального времени идентификаторов и конструкций других языков вроде C++.
LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
Переходить на ИИ это вообще не обучение. Более того, модели обучаются на основе книг, а я уже писал, что так делать не нужно. Словесный поток и чёткие структуры (19.09.2022). Обучаться нужно на основе чётких структур, а не словесных потоков, так как знания на основе чётких структур можно привести в совершенную (идеальную) форму, нужно лишь добавить переводчик понятий
LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
LVV>Домашние задания в этом варианте — бесполезны.
LVV>Кто что предложит ?
Я предложил Суперобучение с помощью карточек (07.11.2024).
Текущая версия 0.6 на сайте.
https://kisa.biz/teacher/download.ru.html
Но со стационарного интернета возможно будет сложно зайти, так как сайт за Cloudflare, а Путин его с недавнего времени банит, так же как и Youtube. Мобильный интернет Теле2 (Т2) пока ещё не банит в моём регионе Cloudflare.
Пока надо как-то собраться и улучшить формат. То есть я знаю, что нужно сделать, нужно только запрограммировать. Так же надо улучшить интерфейсы, уж больно кривые на Android получаются, на Windows ещё ничего. MacOS, кстати, без меню, вообще уродина. На GNU/Linux нормально как на Windows.
Причём идея крайне простая. Когда используешь словесные потоки для обучения никогда не знаешь, что человек выучил, что нет. А тут или человек может набрать карточку правильно, или не может. Нет двусмысленностей или неоднозначностей. Недавно сделал небольшой прорыв в карточкостроении для программистов.
Но учти, моя программа превращает учителя в надзирателя. Вроде и не лишает его работы, но карточки создаёт методист, а надзирателю даже мозги включать не нужно. В общем ждём пока я перестану прокрастинировать и доделаю программу и карточки до вменяемого состояния. Но принцип я вижу работает уже сейчас.
Просто я не согласен с системой Лейтнера.
Я предлагаю, ну раз уж я здесь velkin, систему Велкина. Смысл в том, что создаются небольшие колоды, которые можно создать за несколько часов или день, а проверить знания вообще влёт за минуты. Вот такие маленькие колоды и служать минимальными единицами знаний, которые или знаешь, или нет.
Я считаю, что нужно делить карточки по небольшим самодостаточным темам, а не потому хорошо их знает некий ученик, или нет. Набор из множества таких колод, то есть сотен или тысяч можно называть паком, например, C++ pack.
Но вообще всё это ерунда. Выйдет из стадии прототипа программа с карточками, будет и результат. А так это всё балабольство. И я в принципе не считаю подавляющее большинство учителей методистами.
Учителей как грязи, реальных функционеров методик обучения в мире единицы. Пока мир не будет "неожиданно" захвачен каким-нибудь софтом типичным людям даже в голову не придёт его проверить на ранних стадиях.
Дао программирования.
можно это делать в железе на роботах. для того, чтобы понять, что не так идет, нейросетка должна видеть. пока у нее это слабо получается
LVV>Кидайте идеи, как теперь обучать программированию ?
Не нужно учить тех кто не хочет учиться !
Я понимаю что вы заложник системы , много отчислять нельзя — надо педагогическому составу зарплату платить
J>Я понимаю что вы заложник системы , много отчислять нельзя — надо педагогическому составу зарплату платить
Вы отстали от жизни.
Подушевое финансирование.
Поэтому руководство встает стеной против отчислений.
И ходит оно к преподам по самого 4 курса н отчисленное.
Или отчисленное с 3-го курса и восстановленное на 2-й...
И даже отчисленное с 4-го курса и восстановленное на тот же 2-й...
LVV>Вы отстали от жизни.
LVV>Подушевое финансирование.
LVV>Поэтому руководство встает стеной против отчислений.
LVV>И ходит оно к преподам по самого 4 курса н отчисленное.
LVV>Или отчисленное с 3-го курса и восстановленное на 2-й...
LVV>И даже отчисленное с 4-го курса и восстановленное на тот же 2-й...
Я в курсе.
А потом мы удивляемся , и чего у нас образование такое плохое
была идея ввести в дипломы строку типа "получен на платной основе" , но ВУЗы встали на дыбы .
У вас платники учатся в отдельных группах ?
LVV>>Поэтому руководство встает стеной против отчислений.
LVV>>И ходит оно к преподам по самого 4 курса н отчисленное.
LVV>>Или отчисленное с 3-го курса и восстановленное на 2-й...
LVV>>И даже отчисленное с 4-го курса и восстановленное на тот же 2-й...
J>Я в курсе.
J>А потом мы удивляемся , и чего у нас образование такое плохое
J>была идея ввести в дипломы строку типа "получен на платной основе" , но ВУЗы встали на дыбы .
J>У вас платники учатся в отдельных группах ?
По-разному бывает. Бывает, что платник лучше бюджетника. Но редко.
Дело не в платниках, а именно в том, что не выгоняют.
Студенты просто расслабляются до невозможности.
Если можно не учиться — не учатся.
Это же обыкновенные очень средние школьники были.
Самые мотивированные-то уезжают в центр. ЕГЭ же...
Но пока не было гопоты, мы справлялись.
А сей час приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.
И частенько и не хочет.
Даже в МГУ студенты используют гопоту для домашних работ
(инфа из первых рук — от моего выпускника, у которого дочь в МГУ учится)
LVV>Даже в МГУ студенты используют гопоту для домашних работ
LVV>(инфа из первых рук — от моего выпускника, у которого дочь в МГУ учится)
Я тебе сейчас глаза открою, ты только не упади: они и на семинарах ИИ используют
LVV>Но пока не было гопоты, мы справлялись.
LVV>А сей час приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.
LVV>И частенько и не хочет.
Попробуйте ввести практику телесных наказаний.
LVV>Даже в МГУ студенты используют гопоту для домашних работ
LVV>(инфа из первых рук — от моего выпускника, у которого дочь в МГУ учится)
ИИ это только инструмент. Бесполезный без понимания принципов.
Разделите поток на "ремесленников" и "инженеров".
LVV>А сей час приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.
LVV>И частенько и не хочет.
На мой взгляд ,вы зря потеряете время. Пытаться что-то сделать с человеком который не умеет и не хочет, неблагодарное занятие.
Выставьте им 3 и занимайтесь с теми, кто действительно хочет учиться.
LVV>>А сейчас приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.
LVV>>И частенько и не хочет.
J>На мой взгляд, вы зря потеряете время. Пытаться что-то сделать с человеком который не умеет и не хочет, неблагодарное занятие.
J>Выставьте им 3 и занимайтесь с теми, кто действительно хочет учиться.
Так никто не хочет учиться. Можешь сразу заодно и школы закрыть. Думаешь школьники хотят учиться? А не будет школьников, не будет мяса и для высших учебных заведений. Я даже больше скажу, школьники и учащиеся ВУЗов не хотят учиться, а учителя не хотят учить. То есть учеников заставили прийти учиться прямым приказом или давлением общества. А учителям тупо за это платят. Сколько учителей будут учить бесплатно?
Этот банкет оплачивается за счёт государства или за счёт родителей учеников. А как же платные курсы для взрослых? А вот здесь может заплатить сам человек, но не потому, что хочет учиться, а потому что ему обещали зарплату в 300-600 тысяч рублей сразу после прохождения курса за 150 тысяч рублей. Сейчас дураков уже меньше, но развод изначально в том, что цель не образование, цель зарабатывать деньги.
Искусственная мотивация вроде субъективных оценок это путь в никуда. Так даже тот кто хотел учиться не будет учиться. Просто всем на это было десятилетиями наплевать. Кому учитель ставит оценку, ученику который не может учиться, или сам себе потому что не умеет учить?
А знаешь, что будет, если от результата оценок будут зависеть зарплаты учителей? Учителя не станут нормально учить, просто будут выставлять выше оценки. То есть всё решают деньги, а не желание учиться или учить, потому что мало тех кто хочет учиться без давления сверху вроде родителей и общества в лице государства выдающего дипломы и на основе их выстраивающего ограничения, и учить без мотивации сверху вроде денег.
И снова вопрос, а разве учителя в тех же ВУЗах не делают то, что изложено в совете, то есть клали болт на учеников и просто выставляют им оценки? Тогда к чему те же стенания по чатгопоте, не учили раньше, не стоит и начинать. Просто имитируем как и раньше учебную деятельность, ставим оценки. А технологии, которые реально могут обучать людей со временем создадут и без таких горе учителей.
Я привёл реальный способ учиться для всех, это карточки интервальных повторений. Но какой учитель будет их составлять? Да никакой. Все дружно это проигнорируют, особенно учителя. Потому что всё за деньги, потому что за эффективность никто не отвечает.
Если завтра Путину придёт в голову уволить всех государственных учителей и обнулить государственные дипломы, вся система образования рухнет, потому что под ней нет реального фундамента.
Потому что надо зависимость зарплаты учителей не от оценок учеников, а от _зарплаты_ учеников!
V>Так никто не хочет учиться.
Хотят. У нас — хотят.
Есть и те, кто не хочет — и деканат их отчисляет, только в путь.
К нам (преподавателям) ходят каждый семестр с напоминанием писать докладные на тех, кто много пропускает.
Потому что их технически проще отчислить до сессии за нарушение дисциплины, чем потом мучиться с созывом комиссий для трёх пересдач, бронированием аудиторий, и прочих ненужных активностей (без которых отчисление можно оспорить юридически).
Ни малейших попыток спасать студентов деканат и ректорат не делают. Скорее наоборот — "мы вывесили расписание пересдач
в подвале старого корпусав виде аттача к малоизвестной странице в редкопосещаемом разделе факультетского сайта, кто не прочёл — сам виноват".Но в каждой группе, где я преподаю, есть люди, которые прямо хотят. Ходят, задают вопросы. Матерятся, но решают задачи. Делают больше, чем задано. Спорят с преподавателем — про всё, от мелочей в формулировках задач, до преимуществ разных языков, уместность разных конструкций, и целых философских категорий.
LVV>Кидайте идеи, как теперь обучать программированию ?
LVV>Кто что предложит ?
А все так же, как и раньше.
Основы языка — давать упражнения. И не особо беспокоиться о том, что "им помогут". Сейчас тем, кто не тянет, может "помочь" ИИ, ну а раньше ЕИ в виде однокурсников
А потом давать серьезную задачу и контролировать ход ее выполнения.
Я обычно говорил студентам — "меня не столько интересует конечный результат, сколько процесс. Я хочу видеть, как Вы делаете первые шаги в этом проекте, как реагируете на мои замечания, как развивается проект дальше и т.д. А если Вы весь семестр ничего не будете делать, а за неделю до зачета принесете код, который хоть на выставку посылай — я его просто и смотреть не буду". Будут настаивать — найду что-нибудь, что докажет, что он сам код не писал.
С этим реально бороться ни ИИ, ни ЕИ не может. ИИ — просто не сможет делать изменения по моим замечаниям. Ну а ЕИ сможет, но только если фактически будет играть ту же роль, что и обучаемый студент, то есть в течение семестра делать ошибки, исправлять их, двигаться дальше, и при этом должен будет помнить, что он должен многое из того, что он знает, "забыть", иначе я быстро пойму, что программу пишет другой человек.
Ну и еще. Программирование — не математика, единственного решения тут обычно нет. Возможны серьезные вариации. Так что попытки списывания для серьезных задач тоже не так уж сложно обнаружить.
Пример серьезной задачи покажи, пожалуйста.
Я тут постил про наши курсовые. Сравнимо ?
PD>>А потом давать серьезную задачу и контролировать ход ее выполнения.
LVV>Пример серьезной задачи покажи, пожалуйста.
Ниже один из вариантов. Всего их было 8.
Язык — Java, без фронтенда, но с тестами.
Курсивом — мой комментарий, студентам не дается.
LVV>Я тут постил про наши курсовые. Сравнимо ?
Решай сам
Спецкурсы.
1. Введение
Учебным планом факультета предусмотрено, что некоторые курсы для студентов являются курсами по выбору (спецкурсы). Студент в течение учебного года обязан посетить указанное количество спецкурсов и сдать по ним зачет или экзамен, но какие именно курсы посещать, а какие нет — решает он сам. Студент может посетить бОльшее количество спецкурсов, чем требуется по учебному плану; по “лишним” спецкурсам он может сдавать зачет/экзамен или нет — по своему усмотрению. Преподаватели факультета заранее объявляют список своих спецкурсов, чтобы студенты могли выбрать те, которые они намерены посещать.
Для того, чтобы преподаватели могли делать объявления о своих спецкурсах, а студенты записываться на них, требуется сервер, на котором и будет храниться вся необходимая информация. Руководство факультета обратилось к Вам с просьбой разработать такой сервер.
Руководство факультета предполагает, что высказанные им требования к правилам добавления спецкурсов и записи на них являются логичными и непротиворечивыми. Так ли это в действительности или нет — должно выясниться в процессе разработки и пробной эксплуатации сервера. Если в ходе разработки появится необходимость корректировки тех или иных пунктов задания, то этот вопрос должен обсуждаться совместно представителями заказчика и разработчика с внесением в случае необходимости изменений в техническое задание. Не исключено, что по результатам пробной эксплуатации появится необходимость внесения каких-то дополнений в техническое задание.
Этот пункт дан для того, чтобы я при необходимости мог внести небольшое изменение, если мне, например, захочется убедиться в авторстве
Вам предстоит разработать версию сервера, в которой все его данные должны храниться в оперативной памяти.
2. Описание системы.
Преподаватели , объявляющие спецкурсы должны зарегистрироваться на сервере. При регистрации они указывают
фамилию, имя и отчество (последнее — если имеется)
кафедру, на которой работают
должность
логин и пароль для входа на сервер.
Студенты , желающие записаться на спецкурс должны зарегистрироваться на сервере. При регистрации они указывают
фамилию, имя и отчество (последнее — если имеется)
курс
группу
логин и пароль для входа на сервер.
Введенные при регистрации данные изменению в дальнейшем не подлежат. Преподаватели и студенты не могут регистрироваться два или более раза на сервере.
Зарегистрированный на сервере преподаватель или студент может покинуть сервер. В этом случае для студента отменяются все его записи на спецкурсы, которые он уже сделал, а для преподавателя отменяются все его спецкурсы и записи на них всех студентов.
Преподаватель может добавить спецкурс. При добавлении спецкурса он указывает название спецкурса, курс обучения, начиная с которого студенты могут посещать спецкурс (например, если указано 3, это значит, что студенты 1-2 курса не принимаются),количество часов в неделю (должно быть четным)
Студент может записаться на спецкурс, если он удовлетворяет требованиям по курсу обучения
Преподаватель в любой момент может получить
список всех студентов, записавшихся на некоторый его спецкурс
список всех студентов, записавшихся на хотя бы один спецкурс из некоторого списка его спецкурсов
список всех студентов, записавшихся на все его спецкурсы
Студент в любой момент может получить
список всех спецкурсов некоторого преподавателя
полный список всех спецкурсов, на которые он может записаться
список спецкурсов, на которые он записан.
LVV>>Пример серьезной задачи покажи, пожалуйста.
PD>Ниже один из вариантов. Всего их было 8.
PD>Язык — Java, без фронтенда, но с тестами.
Курс 2 или 3 ?
LVV>Курс 2 или 3 ?
Третий
Часть 1. Однопоточный вариант сервера, тесты вызывают сервер напрямую
Часть 2. Многопоточный вариант сервера (использование потокобезопасных коллекций и/или блокировок), тесты вызывают сервер напрямую
Часть 3. То же, но вместо самописной "БД" на основе коллекций — SQL сервер
Часть 4. То же, но прикрутить REST и в тестах вызывать сервер по HTTP.
Это и был мой основной курс. Плюс, как я писал , упражнения на разные элементы языка.
PD>Часть 3. То же, но вместо самописной "БД" на основе коллекций — SQL сервер
Угу, садизм с БД без СУБД у вас тоже есть.
И как оно? Я точно знаю, что ALTER TABLE после этого адским колдунством выглядит, но я никогда не был на месте преподавателя.
Ф>Угу, садизм с БД без СУБД у вас тоже есть.
Какой там садизм! Просто создание своего класса с коллекциями. Чтобы научились с ними реально работать. С обычными и потокобезопасными. Ну и Apache коллекциями.
Ф>И как оно? Я точно знаю, что ALTER TABLE после этого адским колдунством выглядит, но я никогда не был на месте преподавателя.
Нормально. Убирают эту псевдо-БД, делают иную имплементацию DAO, которая обращается к MySQL серверу. Основные классы почти без изменений.
LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
LVV>И на нем обучать всем основным концепциям.
Сомнительно. Если лабы не про навороты языка, а про алгоритмы. То переводить алгоритмы с одного языка на другой проще, чем их придумывать. Будут просто переводить.
А тем, кто интересуется программированием может оказаться интереснее осваивать известные языки, а не "временные".
Тогда уже не для всех временный язык, а только для бездельников, как наказание.
LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
Почему столько хайпа вокруг ИИ?
Я месяц-полтора назад приобрёл новый ноут — ASUS. Без установленной OS.
Девайс при инсталляции Windows10/11 не видел SSD. Сразу замечу, что компьютеры я собирал уже 30 лет назад.
Я полез советоваться насчет ногого ноута с ИИ...
Какой только чуши мне этот истукан не советовал! Влезть внуть и убедиться, что SSD на месте
Наконец, на youtube нашел русского блогера — который просто объяснил — какой чек-бокс в BIOS выставить.
После этого — всё стало на свои места...
AG>Наконец, на youtube нашел русского блогера — который просто объяснил — какой чек-бокс в BIOS выставить.
AG>После этого — всё стало на свои места...
И это тоже временно. Следующее поколение GPT посмотрит всех блоггеров, послушает все подкасты и будет знать и про эту галочку тоже.
AG>>Какой только чуши мне этот истукан не советовал! Влезть внуть и убедиться, что SSD на месте
AG>>Наконец, на youtube нашел русского блогера — который просто объяснил — какой чек-бокс в BIOS выставить.
AG>>После этого — всё стало на свои места...
_>И это тоже временно. Следующее поколение GPT посмотрит всех блоггеров, послушает все подкасты и будет знать и про эту галочку тоже.
а её уже отменят!
LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
LVV>Домашние задания в этом варианте — бесполезны.
Никогда списывание или платно выполненные лабы по программированию не являлись препятствием для контроля уровня усваиваемости.
Не понимаю, почему ИИ долже что-то изменить в этом плане.
При сдаче лабы надо просто садиться со сдающим студентом за комп, и задавать вопросы о коде.
В простейшем случае, "объясните каждую строку кода, что она делает".
Потом можно задавать вопросы типа "если я вот в этой функции заменю вот эту строку на мою вот такую, что будет?".
Дальше, если студент объясняет всё как надо, в пределах изложенного материала (или того, что студент должен был освоить самостоятельно),
ка-ка-я ра-зни-ца, понял он код сам или при помощи ИИ или третий человек сделал ему лабу за деньги?
Чтобы
__>При сдаче лабы надо просто садиться со сдающим студентом за комп, и задавать вопросы о коде.
Чтобы уменьшить преподавательскую нагрузку, можно делать такие сессии только один раз за курс.
Т.е. вот, например, в курсе 10 лаб.
9 лаб могут быть компонентами финальной 10й лабы.
10я лаба использует результаты всех предыдущих.
Приемку лабы с объяснениями от студентов делать только при сдаче последней, 10й лабы.
Помню, когда сдавали лабы по паскалю в универе, препод безошибочно определял, что чел сделал лабу не сам, и даже знал, кто из группы настоящий автор.
Видимо, по стилю кодирования (наименование переменных и проч.).
__>Приемку лабы с объяснениями от студентов делать только при сдаче последней, 10й лабы.
В некоторых ВУЗах в Гемании ещё такая система (возможно, это только в TU или FHS), что финальный балл по курсу только на 80% (или 90% — на усмотрение профессора, может быть и 100%) складывается из результатов финального экзамена по этому курсу. А оставшаяся доля оценки складывается из того, как качественно выполнялась домашка.
Если без ошибок и в срок, то можно надеяться, что на экзамене достаточно выполнить очень небольшое количество заданий, чтобы уже получить проходной балл.
Соотв., если повысить вес домашек в финальном балле, а среди домашек учитывать только последюю, 10ю лабу, у студентов будет стимул разобраться в течение семестра, что же делает их код, чем ставить всё только на финальный экзамен.
LVV>Кидайте идеи, как теперь обучать программированию ?
LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
LVV>И на нем обучать всем основным концепциям.
LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.
LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
LVV>Домашние задания в этом варианте — бесполезны.
LVV>Кто что предложит ?
Не, чё сразу язык-то. Пусть для начала выведут свой аналог лямбда-исчисления.
Изобретут свою императивную машину, докажут её эквивалентность Машине Тьюринга.
Придумают классификацию формальных языков. Докажут эквивалентность некоторых из этих классов автоматным языкам, МП-автоматным языкам.
Родят все необходимые виды семантики (аксиоматическую, операционную, денотационную) языков программирования вообще и типов данных в частности.
Потом надо дать возможность вывести из общих соображений принципы дизайна языков программирования.
Лучше не подталкивать их в каких-то фиксированных направлениях вроде логического, императивного, функционального программирования — пусть всё сами.
Вот после этого уже пускай изобретают свой ЯП, для, естественно, самодельной виртуальной машины (ах да, я забыл дать им возможность изобрести виртуальную машину — стековую, регистровую, стеково-регистровую).
Придумывают способ разбора этого языка, механики оптимизации, порождения целевого кода.
Вывод типов пускай сделают. Если переизобретут Хиндли-Милнера — отлично, если что-то другое придумают — и того лучше.
А так — ничего не поменялось. Можно подумать, преподаватели филологии все остались без работы сразу после выхода ворда со встроенной проверкой орфографии и грамматики.
Оужас, как же мы теперь будем отличать тех, кто умеет согласовывать числа и падежи от симулянтов? Они же свои тексты набивают в ворде, и он им там мало того, что подчёркивает красными и синими волнами — он же ещё и автозамену предлагает!
Нет, просто теперь можно давать много задач студентам. Не десять лабораторных, а пятьдесят или сто
Потому что раньше на задачу "напиши парсер арифметических выражений" уходило 40 часов работы, потом 4, потом 2, а теперь — 10 минут.
Значит, таких задач можно давать в 12 раз больше. Иллюстрировать более широкий набор концепций, чем "давайте напишем примитивный однопроходный компилятор убогого подмножества Паскаля".
S>Потому что раньше на задачу "напиши парсер арифметических выражений" уходило 40 часов работы, потом 4, потом 2, а теперь — 10 минут.
S>Значит, таких задач можно давать в 12 раз больше. Иллюстрировать более широкий набор концепций, чем "давайте напишем примитивный однопроходный компилятор убогого подмножества Паскаля".
Не, немного не так.
Мой выпускник, у которого дочка учится в МГУ, ей сказал: если ИИ за тебя лабы делает, значит и работать он будет вместо тебя.
Задача же в том, чтобы они ПОНИМАЛИ, а не просто педалили код.
Поэтому есть мысль за лето сваять свой язык с минимально необходимыми типичными свойствами.
И на нем учить первачков.
Третий-то курс — понятно... Там уже либо умеют, либо нет.
А первый и начало второе — это надо как-то им в головы вложить основные концепции.
Даже ИИ "знает", что "повторение — мать учения"
Но надо, чтобы не ИИ за них делал, а они сами.