Интересные обсуждения

темы заинтересовавшие velkin

Обучение программированию

LaptevVV LaptevVV
Кидайте идеи, как теперь обучать программированию ?

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

Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
Домашние задания в этом варианте — бесполезны.

Кто что предложит ?
Nuzhny
Nuzhny
21.04.2025 07:40
Здравствуйте, LaptevVV, Вы писали:

LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.


Раньше так делали из бедности, например тот же Кнут. И у нас в универе тоже.

LVV>И на нем обучать всем основным концепциям.


Есть мысль, что это всё равно не сработает. К тому времени, как такой язык будет создан, бюрократически одобрен и проведён как средство обучения, новый ИИ-чат сможет по спецификации языка писать на нём код.

LVV>Кто что предложит?


Тут вопрос о цели обучения. Если надо выпустить чувака, который сможет трудоустроиться и решать реальные задачи, то и надо давать реальные задачи, которые он будет решать с помощью ИИ в том числе.

Если надо обучить всему тому, чему успешно учили ранее, то надо тратить больше личного времени на лабы, устраивать совместный кодинг со студентом, устно спрашивать больше.

P.S. Раньше тоже никто не мешал отдавать написание кода более способным студентам, особенно со старшего курса. Я сам так с несколькими девушками познакомился, ни одна из которых программистом так и не стала, но лабы сдала и диплом получила.
Miroff
Miroff
21.04.2025 07:49
Здравствуйте, LaptevVV, Вы писали:

LVV>Домашние задания в этом варианте — бесполезны.


LVV>Кто что предложит ?


Берешь Haskell, Clojure или, на худой конец, Scala. При сдаче лабы требуешь не просто показать код, а объяснить как он работает. Пусть им ИИ объясняет, чем хвостовая рекурсия отличается от нехвостовой и как ее превратить в цикл.
Stanislaw K
Stanislaw K
21.04.2025 07:55
Здравствуйте, LaptevVV, Вы писали:

LVV>Кидайте идеи, как теперь обучать программированию ?


LVV>Кто что предложит ?


На первом занятии собрать зачетки, провести опрос и авансом выставить всем желающим "отлично" с освобождением от посещения занятий.

Дальше вести занятия с теми, кто действительно хочет получить Настоящие Знания.


Можно пойти дальше —

  сразу вручать Дипломы утвержденного образца (с датой выдачи равной дате поступления).
https://s00.yaplakal.com/pics/pics_original/2/5/7/20001752.jpg
elmal
elmal
21.04.2025 08:47
Здравствуйте, LaptevVV, Вы писали:

LVV>Кидайте идеи, как теперь обучать программированию ?

А ничего не изменилось. Сейчас решения заданий генерит ИИ, ранее (да и сейчас тоже), задания делали те, кто соображал, и зарабатывал на этом.

LVV>Кто что предложит ?

Ну, когда я учился, требовалось на защите объяснить как все работает, плюс на бумажке заставляли сходу что написать. Соответственно крайне многие сдавали уже сделанную кем то лабу раз 6, до тех пор, пока преподу либо не надоест, либо он тупо выйдет рано или поздно и раздолбаю задание все таки сделают. Выхлоп правда все равно нулевой, многие диплом получили, ни разу не написав даже Hello world, но раздолбаи были весьма напряжены курса до четвертого. На четвертом появился среди преподов один явный взяточник, который уже всех раздолбаев отмазывал и они сдавали первыми и без напряга, а кто действительно учился и что то мог — тех ставили в условия невозможности сдать, и приходилось ради тупо допуска у экзаменам писать раздолбаям дипломы и все такое, вися на грани отчисления.
Pzz
Pzz
21.04.2025 09:03
Здравствуйте, LaptevVV, Вы писали:

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, в том смысле, что компилятор на нём самом написан. Какой-то русский парень его ведет. Но навскидку не могу найти.
LaptevVV
LaptevVV
21.04.2025 09:48
LVV>>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
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
Pzz
21.04.2025 09:56
Здравствуйте, LaptevVV, Вы писали:

Pzz>>Очень трудоёмко.

LVV>Не. За лето можно сделать
LVV>0. Язык — минимальный, без наворотов и извратов. Меньше, чем Си.

Как у Дейкстры, в Дисциплине программирования? Кстати, наверняка есть готовые реализации.

LVV>1. Парсер делаем на антлр /кокор / еще на чем-то

LVV>2. Конвертируем в С/С++

Всё равно набежит вопросов.

Парсер, кстати, что руками писать, что компилятором компиляторов — начальные вложения примерно одинаковые. Потом в рукописном парсере сложнее небольшие изменения в грамматику вносить. А машинописном парсере сложнее добиться вменяемой диагностики при синтаксических ошибках.
koenig
koenig
21.04.2025 10:34
Pzz>Еще мне попадался на гитхабе проект языка, очень похожего на Go, но не Go. Self-hosted, в том смысле, что компилятор на нём самом написан. Какой-то русский парень его ведет. Но навскидку не могу найти.

vlang?
Pzz
Pzz
21.04.2025 10:44
Здравствуйте, koenig, Вы писали:

Pzz>>Еще мне попадался на гитхабе проект языка, очень похожего на Go, но не Go. Self-hosted, в том смысле, что компилятор на нём самом написан. Какой-то русский парень его ведет. Но навскидку не могу найти.


K>vlang?


Возможно. Вот не могу вспомнить. Мне кажется, что он был на M, но это не точно...
Anton Batenev
Anton Batenev
21.04.2025 09:45
Здравствуйте, LaptevVV, Вы писали:

LVV> они не делают лабы сами, а просто генерят в ИИ.

LVV> Домашние задания в этом варианте — бесполезны.

Делать такие лабы и задания, которые ИИ решить не в состоянии. С учетом того, что ИИ не в состоянии сделать почти ничего, это не должно быть сложно. Другой вопрос — а зачем? Какая конечная цель преследуется?
LaptevVV
LaptevVV
21.04.2025 09:55
LVV>> они не делают лабы сами, а просто генерят в ИИ.
LVV>> Домашние задания в этом варианте — бесполезны.

AB>Делать такие лабы и задания, которые ИИ решить не в состоянии. С учетом того, что ИИ не в состоянии сделать почти ничего, это не должно быть сложно. Другой вопрос — а зачем? Какая конечная цель преследуется?

Дык научить жеж программы писать, а не сдавать лабы...
Anton Batenev
Anton Batenev
21.04.2025 07:24
Здравствуйте, LaptevVV, Вы писали:

LVV> AB> Другой вопрос — а зачем? Какая конечная цель преследуется?

LVV> Дык научить жеж программы писать, а не сдавать лабы...

Люди, которым это все интересно, научатся и без лаб. Которым не интересно, забудут все напрочь через неделю после сдачи. Для тебя лично ничего не меняется вообще — что там AI решал, что кто-то другой.

Ну а если уж так сильно "душа болит за отчизну", то, как тут правильно заметили, иди в ногу со временем и расскажи студентам, что нынче появляются компании, которые набирают разработчиков для написания программ только (и только!) при помощи AI (и ни строчки кода руками!). Ну и лаба должна быть под стать AI — современно, стильно, молодежно
LaptevVV
LaptevVV Панчул тоже этим озабочен
21.04.2025 09:49
https://habr.com/ru/articles/902400/
Любопытная статья.
Но он больше электронщик.
Nuzhny
Nuzhny
21.04.2025 10:15
Здравствуйте, LaptevVV, Вы писали:

LVV>Любопытная статья.

LVV>Но он больше электронщик.

Кстати, идея очень здравая — использовать недоступные для студента входные данные. Делаешь сетевое API и даёшь им библиотеку, которая может из неё читать входные данные для программы. Эта библиотека коннектится к твоему серверу, который есть только в лаборатории и получает из него данные. Если запущена локально и без сервера, то данные получает прошитые, для всех одинаковые стандартные.
Входные данные делать такими, которые не пересекаются в некоторых кейсах. Часть кейсов и относящихся к ним данных надо скрыть.

Тогда при сдаче проверять, как оно работает на стандартных данных, а также на скрытых. Если на скрытых работает неправильно, то просить студента их учесть и поправить код тут же за столом. Это может быть: пустые последовательности, слишком длинные последовательности, отрицательные значения, очень большие значения, дополнительные задержки, что-то вперемешку, такие данные, где рекурсия будет переполнять стек и т.д.
flаt
flаt
21.04.2025 11:59
Здравствуйте, Nuzhny, Вы писали:

N>Тогда при сдаче проверять, как оно работает на стандартных данных, а также на скрытых. Если на скрытых работает неправильно, то просить студента их учесть и поправить код тут же за столом. Это может быть: пустые последовательности, слишком длинные последовательности, отрицательные значения, очень большие значения, дополнительные задержки, что-то вперемешку, такие данные, где рекурсия будет переполнять стек и т.д.


Студент пишет логгер или сниффер, который во время экзамена отправляет все кейсы на _свой_ сервер. А дальше простор фантазии — либо гопота исправляет код и рассылает его остальным студентам, либо сами студенты исправляют.

Итог: первый студент идёт в качестве жертвы, зато другие выживают.
Nuzhny
Nuzhny
21.04.2025 12:33
Здравствуйте, flаt, Вы писали:

F>Студент пишет логгер или сниффер, который во время экзамена отправляет все кейсы на _свой_ сервер. А дальше простор фантазии — либо гопота исправляет код и рассылает его остальным студентам, либо сами студенты исправляют.


За такое и зачёт поставить не жалко.
koenig
koenig
21.04.2025 12:43
N>Кстати, идея очень здравая — использовать недоступные для студента входные данные.

как минимум один рекрутинговый сайт уже немало лет так
но забыл, какой
Pzz
Pzz
21.04.2025 10:38
Здравствуйте, LaptevVV, Вы писали:

LVV>https://habr.com/ru/articles/902400/

LVV>Любопытная статья.
LVV>Но он больше электронщик.

В целом, если идею немного обобщить, она сводится к тому, что ИИ — это такой продвинутый поиск по данным, которые в него были заложены при обучении. Этакий гугль на стероидах. Но не творец новый знаний и идей.

Электронщикам, конечно, хорошо. Они завсегда могут встать в позу, "а вот я не скажу вам, какой ёмкости конденсатор я сюда впаял, мерьте сами". Но я думаю, и в програмизме можно тоже найти вещи, которые не узнаешь, пока не померишь. Ну, веремянку CPU кешей, например.

А можно еще попробовать поднапрячь головную мышцу и придумать задачки не на незнание неизвестных фактов, а на некоторую изобретательность — тут уж точно ИИ будет в пролёте.
Nuzhny
Nuzhny
21.04.2025 10:58
Здравствуйте, Pzz, Вы писали:

Pzz>А можно еще попробовать поднапрячь головную мышцу и придумать задачки не на незнание неизвестных фактов, а на некоторую изобретательность — тут уж точно ИИ будет в пролёте.


Судя по всему, это очень нетривиальная задача.
Например, совсем недавно собрали тест frontiermath со сложными математическими проблемами, которые не каждому человеку подвластны. Точнее, специалист в этой области может потратить на решение задачи несколько дней. И на конец 2024 года лучшие нейросети решали не больше 2% от представленных задач.
Последняя модель ЧатаГПТ может решить уже 10%.

Или взять Humanity's Last Exam, который тоже на старте был очень сложным (не более 4% на старте), но постепенно, всего за полгода нейросетки дошли уже до 20% решённых задач. А там авторам за задачи даже платили:

The submitters of the top-rated questions were given prize money from a pool of 500,000 U.S. dollars—$5000 for each of the top 50 questions and $500 for the next 500.


И так получается, что задурить нейросеть с каждым месяцем (не годом!) становится всё труднее. Это не о том, что программисты останутся без работы и всё такое, а о небольших, корректно сформулированных проблемах. Да, конечно, останутся свои Великие теоремы Ферма, но на то они и великие, что студентам в виде лабораторной не дашь. А что, что можно дать студенту в хорошей формулировке в отрыве от реального мира уже и не так сложно для нейросеток. Кажется, что пока именно что реальный мир и может стать новым "тестом Тьюринга".
koenig
koenig
21.04.2025 12:46
LVV>https://habr.com/ru/articles/902400/
LVV>Любопытная статья.
LVV>Но он больше электронщик.

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

не могу оценить корректность, но как минимум рассуждать о и давать оценки по обоим пунктам гопота берется легко

p.s.
а, пардон, надо было дочитать
SergeyIT
SergeyIT
21.04.2025 10:22
Здравствуйте, LaptevVV, Вы писали:

LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.


Подумалось...
Может пусть каждый студент свой язык придумает. Скриптовый, к примеру. Реализует его и на нем и пишет.
LaptevVV
LaptevVV
21.04.2025 10:32
LVV>>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.
SIT>Подумалось...
SIT>Может пусть каждый студент свой язык придумает. Скриптовый, к примеру. Реализует его и на нем и пишет.
Ну, это 3 курс. Ну, 2-й в конце.
А учить надо с нуля основам программирования.
Qulac
Qulac
21.04.2025 10:37
Здравствуйте, LaptevVV, Вы писали:

LVV>Кидайте идеи, как теперь обучать программированию ?


LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.

LVV>И на нем обучать всем основным концепциям.
LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.

LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.

LVV>Домашние задания в этом варианте — бесполезны.

LVV>Кто что предложит ?


Вопрос уже нужно ставить так: А как щас учить вообще?
Философ
Философ
21.04.2025 10:44
Здравствуйте, LaptevVV, Вы писали:

LVV>Кто что предложит ?


Использование GPT ничем принципиально от списывания не отличается. Лично я когда-то зырабатывал тем, что делал лабы пачками. Везде, в каждом общежитии висели тучи объявлений "делаю лабы по...". Всегда будут те, кто делает сам и те, кто списывает. Те, кто списывает, палится на стиле написания и на том, что не может объяснить то, что он сделал. Чувак, который не делал лабу сам не может модифицировать код.
Говорить, спрашивать, просить что-то поменять в коде.
Osaka
Osaka
21.04.2025 10:48
LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
Это теперь касается не только лаб по программированию, а вообще всего обучения с 1го класса.
LVV>Домашние задания в этом варианте — бесполезны.
Оценки за задания безполезны, как основа для вычисления kpi и принятия решений о знаниях студента по ним.
LVV>Кто что предложит ?
Только личная беседа экзаменатора со студентом, допрос, на котором будет ясно, понимает или сгенерил.
И персональная ответственность преподавателя за профессиональные результаты выпускника, чтобы преподаватель оценку тоже не "сгенерил". (Возможно, преподаватели в ответ захотят возможность отчислять, право порки, или ещё что-то подобное)
bnk
bnk
21.04.2025 10:51
Здравствуйте, LaptevVV, Вы писали:

LVV>Кто что предложит ?


Прекратить или уменьшить обучение написанию кода. Код писаться вручную не будет.
Не через год дак через два, не через два так через пять лет.

Сосредоточиться на более общих моментах, типа постановки задач и управления сложностью.
До того как ИИ освоит постановку задач запас времени больше.

В общем "не можешь победить — возглавь"
velkin
velkin
21.04.2025 10:53
Здравствуйте, LaptevVV, Вы писали:

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.

Причём идея крайне простая. Когда используешь словесные потоки для обучения никогда не знаешь, что человек выучил, что нет. А тут или человек может набрать карточку правильно, или не может. Нет двусмысленностей или неоднозначностей. Недавно сделал небольшой прорыв в карточкостроении для программистов.

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

Просто я не согласен с системой Лейтнера.

Карточки сортируются по трем группам: группа 1, группа 2 и группа 3. В группу 1 помещаются карточки с новыми словами и со словами, которые ученик усвоил плохо. Группа 3 содержит карточки со словами, которые ученик знает очень хорошо. Ученик может повторять слова из группы 1 каждый день, слова из группы 2 каждые три дня, а слова из группы 3 каждые пять дней. Если ученик смотрит на слово из группы 1 и вспоминает его значение, то карточка перемещается в группу 2. По такому же принципу карточки из группы 2 перемещаются в группу 3. Если же ученик не может вспомнить значение слова на карточке из группы 2 или 3, то эта карточка возвращается группу 1, и процесс повторяется вновь до прочного усвоения информации.

Я предлагаю, ну раз уж я здесь velkin, систему Велкина. Смысл в том, что создаются небольшие колоды, которые можно создать за несколько часов или день, а проверить знания вообще влёт за минуты. Вот такие маленькие колоды и служать минимальными единицами знаний, которые или знаешь, или нет.

Я считаю, что нужно делить карточки по небольшим самодостаточным темам, а не потому хорошо их знает некий ученик, или нет. Набор из множества таких колод, то есть сотен или тысяч можно называть паком, например, C++ pack.

Но вообще всё это ерунда. Выйдет из стадии прототипа программа с карточками, будет и результат. А так это всё балабольство. И я в принципе не считаю подавляющее большинство учителей методистами.

Учителей как грязи, реальных функционеров методик обучения в мире единицы. Пока мир не будет "неожиданно" захвачен каким-нибудь софтом типичным людям даже в голову не придёт его проверить на ранних стадиях.

Дао программирования.

Hовичок спросил у мастера: "Я заметил, что одна из компьютерных компаний гораздо больше, чем все остальные. Она возвышается над своими конкурентами, как гигант над карликами. Любое из ее отделений может охватить целую отрасль. Почему так есть?"
Мастер ответил: "Почему ты задаешь такие дурацкие вопросы? Эта компания настолько велика потому, что не может быть другой. Если бы она производила только аппаратуру, никто бы не покупал её. Если бы она разрабатывала только системы, люди воспринимали бы её, как слугу. Hо так, как она сочетает в себе все эти вещи, люди думают, что это боги! И не прилагая услилий она без труда побеждает.

__kot2
__kot2
21.04.2025 11:58
LVV>Кидайте идеи, как теперь обучать программированию ?
можно это делать в железе на роботах. для того, чтобы понять, что не так идет, нейросетка должна видеть. пока у нее это слабо получается
Janus
Janus
21.04.2025 12:53
Здравствуйте, LaptevVV, Вы писали:

LVV>Кидайте идеи, как теперь обучать программированию ?



Не нужно учить тех кто не хочет учиться ! или попал в Вуз случайно. Больше отчисляйте и все наладится.
Я понимаю что вы заложник системы , много отчислять нельзя — надо педагогическому составу зарплату платить
LaptevVV
LaptevVV
21.04.2025 01:12
J>Не нужно учить тех кто не хочет учиться ! или попал в Вуз случайно. Больше отчисляйте и все наладится.
J>Я понимаю что вы заложник системы , много отчислять нельзя — надо педагогическому составу зарплату платить
Вы отстали от жизни.
Подушевое финансирование.
Поэтому руководство встает стеной против отчислений.
И ходит оно к преподам по самого 4 курса н отчисленное.
Или отчисленное с 3-го курса и восстановленное на 2-й...
И даже отчисленное с 4-го курса и восстановленное на тот же 2-й...
Janus
Janus
21.04.2025 01:31
Здравствуйте, LaptevVV, Вы писали:

LVV>Вы отстали от жизни.

LVV>Подушевое финансирование.
LVV>Поэтому руководство встает стеной против отчислений.
LVV>И ходит оно к преподам по самого 4 курса н отчисленное.
LVV>Или отчисленное с 3-го курса и восстановленное на 2-й...
LVV>И даже отчисленное с 4-го курса и восстановленное на тот же 2-й...

Я в курсе. Это главная беда нашего образования . Родители хотят диплом любыми способами .
А потом мы удивляемся , и чего у нас образование такое плохое
была идея ввести в дипломы строку типа "получен на платной основе" , но ВУЗы встали на дыбы .
У вас платники учатся в отдельных группах ?
LaptevVV
LaptevVV
21.04.2025 02:45
LVV>>Подушевое финансирование.
LVV>>Поэтому руководство встает стеной против отчислений.
LVV>>И ходит оно к преподам по самого 4 курса н отчисленное.
LVV>>Или отчисленное с 3-го курса и восстановленное на 2-й...
LVV>>И даже отчисленное с 4-го курса и восстановленное на тот же 2-й...

J>Я в курсе. Это главная беда нашего образования . Родители хотят диплом любыми способами .

J>А потом мы удивляемся , и чего у нас образование такое плохое
J>была идея ввести в дипломы строку типа "получен на платной основе" , но ВУЗы встали на дыбы .
J>У вас платники учатся в отдельных группах ?
По-разному бывает. Бывает, что платник лучше бюджетника. Но редко.
Дело не в платниках, а именно в том, что не выгоняют.
Студенты просто расслабляются до невозможности.
Если можно не учиться — не учатся.
Это же обыкновенные очень средние школьники были.
Самые мотивированные-то уезжают в центр. ЕГЭ же...
Но пока не было гопоты, мы справлялись.
А сей час приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.
И частенько и не хочет.
Даже в МГУ студенты используют гопоту для домашних работ
(инфа из первых рук — от моего выпускника, у которого дочь в МГУ учится)
Miroff
Miroff
21.04.2025 03:58
Здравствуйте, LaptevVV, Вы писали:

LVV>Даже в МГУ студенты используют гопоту для домашних работ

LVV>(инфа из первых рук — от моего выпускника, у которого дочь в МГУ учится)

Я тебе сейчас глаза открою, ты только не упади: они и на семинарах ИИ используют
Stanislaw K
Stanislaw K
22.04.2025 06:11
Здравствуйте, LaptevVV, Вы писали:

LVV>Но пока не было гопоты, мы справлялись.

LVV>А сей час приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.
LVV>И частенько и не хочет.

Попробуйте ввести практику телесных наказаний.

LVV>Даже в МГУ студенты используют гопоту для домашних работ

LVV>(инфа из первых рук — от моего выпускника, у которого дочь в МГУ учится)

ИИ это только инструмент. Бесполезный без понимания принципов.

Разделите поток на "ремесленников" и "инженеров".
Janus
Janus
22.04.2025 07:38
Здравствуйте, LaptevVV, Вы писали:


LVV>А сей час приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.

LVV>И частенько и не хочет.

На мой взгляд ,вы зря потеряете время. Пытаться что-то сделать с человеком который не умеет и не хочет, неблагодарное занятие.
Выставьте им 3 и занимайтесь с теми, кто действительно хочет учиться.
velkin
velkin
22.04.2025 08:43
Здравствуйте, Janus, Вы писали:

LVV>>А сейчас приходится перидумывать, как все-таки научить того, кто самостоятельно не умеет.

LVV>>И частенько и не хочет.
J>На мой взгляд, вы зря потеряете время. Пытаться что-то сделать с человеком который не умеет и не хочет, неблагодарное занятие.
J>Выставьте им 3 и занимайтесь с теми, кто действительно хочет учиться.

Так никто не хочет учиться. Можешь сразу заодно и школы закрыть. Думаешь школьники хотят учиться? А не будет школьников, не будет мяса и для высших учебных заведений. Я даже больше скажу, школьники и учащиеся ВУЗов не хотят учиться, а учителя не хотят учить. То есть учеников заставили прийти учиться прямым приказом или давлением общества. А учителям тупо за это платят. Сколько учителей будут учить бесплатно?

Этот банкет оплачивается за счёт государства или за счёт родителей учеников. А как же платные курсы для взрослых? А вот здесь может заплатить сам человек, но не потому, что хочет учиться, а потому что ему обещали зарплату в 300-600 тысяч рублей сразу после прохождения курса за 150 тысяч рублей. Сейчас дураков уже меньше, но развод изначально в том, что цель не образование, цель зарабатывать деньги.

Искусственная мотивация вроде субъективных оценок это путь в никуда. Так даже тот кто хотел учиться не будет учиться. Просто всем на это было десятилетиями наплевать. Кому учитель ставит оценку, ученику который не может учиться, или сам себе потому что не умеет учить?

А знаешь, что будет, если от результата оценок будут зависеть зарплаты учителей? Учителя не станут нормально учить, просто будут выставлять выше оценки. То есть всё решают деньги, а не желание учиться или учить, потому что мало тех кто хочет учиться без давления сверху вроде родителей и общества в лице государства выдающего дипломы и на основе их выстраивающего ограничения, и учить без мотивации сверху вроде денег.

И снова вопрос, а разве учителя в тех же ВУЗах не делают то, что изложено в совете, то есть клали болт на учеников и просто выставляют им оценки? Тогда к чему те же стенания по чатгопоте, не учили раньше, не стоит и начинать. Просто имитируем как и раньше учебную деятельность, ставим оценки. А технологии, которые реально могут обучать людей со временем создадут и без таких горе учителей.

Я привёл реальный способ учиться для всех, это карточки интервальных повторений. Но какой учитель будет их составлять? Да никакой. Все дружно это проигнорируют, особенно учителя. Потому что всё за деньги, потому что за эффективность никто не отвечает.

Если завтра Путину придёт в голову уволить всех государственных учителей и обнулить государственные дипломы, вся система образования рухнет, потому что под ней нет реального фундамента.
Osaka
Osaka
22.04.2025 06:06
V>А знаешь, что будет, если от результата оценок будут зависеть зарплаты учителей? Учителя не станут нормально учить, просто будут выставлять выше оценки.
Потому что надо зависимость зарплаты учителей не от оценок учеников, а от _зарплаты_ учеников!
Sinclair
Sinclair
24.04.2025 01:27
Здравствуйте, velkin, Вы писали:

V>Так никто не хочет учиться.

Хотят. У нас — хотят.
Есть и те, кто не хочет — и деканат их отчисляет, только в путь.
К нам (преподавателям) ходят каждый семестр с напоминанием писать докладные на тех, кто много пропускает.
Потому что их технически проще отчислить до сессии за нарушение дисциплины, чем потом мучиться с созывом комиссий для трёх пересдач, бронированием аудиторий, и прочих ненужных активностей (без которых отчисление можно оспорить юридически).
Ни малейших попыток спасать студентов деканат и ректорат не делают. Скорее наоборот — "мы вывесили расписание пересдач в подвале старого корпуса в виде аттача к малоизвестной странице в редкопосещаемом разделе факультетского сайта, кто не прочёл — сам виноват".

Но в каждой группе, где я преподаю, есть люди, которые прямо хотят. Ходят, задают вопросы. Матерятся, но решают задачи. Делают больше, чем задано. Спорят с преподавателем — про всё, от мелочей в формулировках задач, до преимуществ разных языков, уместность разных конструкций, и целых философских категорий.
Pavel Dvorkin
Pavel Dvorkin
21.04.2025 03:33
Здравствуйте, LaptevVV, Вы писали:

LVV>Кидайте идеи, как теперь обучать программированию ?


LVV>Кто что предложит ?


А все так же, как и раньше.

Основы языка — давать упражнения. И не особо беспокоиться о том, что "им помогут". Сейчас тем, кто не тянет, может "помочь" ИИ, ну а раньше ЕИ в виде однокурсников . Ну и черт с ним, пусть.

А потом давать серьезную задачу и контролировать ход ее выполнения.

Я обычно говорил студентам — "меня не столько интересует конечный результат, сколько процесс. Я хочу видеть, как Вы делаете первые шаги в этом проекте, как реагируете на мои замечания, как развивается проект дальше и т.д. А если Вы весь семестр ничего не будете делать, а за неделю до зачета принесете код, который хоть на выставку посылай — я его просто и смотреть не буду". Будут настаивать — найду что-нибудь, что докажет, что он сам код не писал.

С этим реально бороться ни ИИ, ни ЕИ не может. ИИ — просто не сможет делать изменения по моим замечаниям. Ну а ЕИ сможет, но только если фактически будет играть ту же роль, что и обучаемый студент, то есть в течение семестра делать ошибки, исправлять их, двигаться дальше, и при этом должен будет помнить, что он должен многое из того, что он знает, "забыть", иначе я быстро пойму, что программу пишет другой человек.

Ну и еще. Программирование — не математика, единственного решения тут обычно нет. Возможны серьезные вариации. Так что попытки списывания для серьезных задач тоже не так уж сложно обнаружить.
LaptevVV
LaptevVV
23.04.2025 05:31
PD>А потом давать серьезную задачу и контролировать ход ее выполнения.
Пример серьезной задачи покажи, пожалуйста.

Я тут постил про наши курсовые. Сравнимо ?
Pavel Dvorkin
Pavel Dvorkin
23.04.2025 10:01
Здравствуйте, LaptevVV, Вы писали:

PD>>А потом давать серьезную задачу и контролировать ход ее выполнения.

LVV>Пример серьезной задачи покажи, пожалуйста.

Ниже один из вариантов. Всего их было 8.
Язык — Java, без фронтенда, но с тестами.
Курсивом — мой комментарий, студентам не дается.

LVV>Я тут постил про наши курсовые. Сравнимо ?


Решай сам

Спецкурсы.

1. Введение

Учебным планом факультета предусмотрено, что некоторые курсы для студентов являются курсами по выбору (спецкурсы). Студент в течение учебного года обязан посетить указанное количество спецкурсов и сдать по ним зачет или экзамен, но какие именно курсы посещать, а какие нет — решает он сам. Студент может посетить бОльшее количество спецкурсов, чем требуется по учебному плану; по “лишним” спецкурсам он может сдавать зачет/экзамен или нет — по своему усмотрению. Преподаватели факультета заранее объявляют список своих спецкурсов, чтобы студенты могли выбрать те, которые они намерены посещать.
Для того, чтобы преподаватели могли делать объявления о своих спецкурсах, а студенты записываться на них, требуется сервер, на котором и будет храниться вся необходимая информация. Руководство факультета обратилось к Вам с просьбой разработать такой сервер.

Руководство факультета предполагает, что высказанные им требования к правилам добавления спецкурсов и записи на них являются логичными и непротиворечивыми. Так ли это в действительности или нет — должно выясниться в процессе разработки и пробной эксплуатации сервера. Если в ходе разработки появится необходимость корректировки тех или иных пунктов задания, то этот вопрос должен обсуждаться совместно представителями заказчика и разработчика с внесением в случае необходимости изменений в техническое задание. Не исключено, что по результатам пробной эксплуатации появится необходимость внесения каких-то дополнений в техническое задание.
Этот пункт дан для того, чтобы я при необходимости мог внести небольшое изменение, если мне, например, захочется убедиться в авторстве

Вам предстоит разработать версию сервера, в которой все его данные должны храниться в оперативной памяти.

2. Описание системы.

Преподаватели , объявляющие спецкурсы должны зарегистрироваться на сервере. При регистрации они указывают

фамилию, имя и отчество (последнее — если имеется)
кафедру, на которой работают
должность
логин и пароль для входа на сервер.

Студенты , желающие записаться на спецкурс должны зарегистрироваться на сервере. При регистрации они указывают

фамилию, имя и отчество (последнее — если имеется)
курс
группу
логин и пароль для входа на сервер.

Введенные при регистрации данные изменению в дальнейшем не подлежат. Преподаватели и студенты не могут регистрироваться два или более раза на сервере.
Зарегистрированный на сервере преподаватель или студент может покинуть сервер. В этом случае для студента отменяются все его записи на спецкурсы, которые он уже сделал, а для преподавателя отменяются все его спецкурсы и записи на них всех студентов.
Преподаватель может добавить спецкурс. При добавлении спецкурса он указывает название спецкурса, курс обучения, начиная с которого студенты могут посещать спецкурс (например, если указано 3, это значит, что студенты 1-2 курса не принимаются),количество часов в неделю (должно быть четным)

Студент может записаться на спецкурс, если он удовлетворяет требованиям по курсу обучения

Преподаватель в любой момент может получить
список всех студентов, записавшихся на некоторый его спецкурс
список всех студентов, записавшихся на хотя бы один спецкурс из некоторого списка его спецкурсов
список всех студентов, записавшихся на все его спецкурсы

Студент в любой момент может получить
список всех спецкурсов некоторого преподавателя
полный список всех спецкурсов, на которые он может записаться
список спецкурсов, на которые он записан.
LaptevVV
LaptevVV
23.04.2025 12:53
PD>>>А потом давать серьезную задачу и контролировать ход ее выполнения.
LVV>>Пример серьезной задачи покажи, пожалуйста.
PD>Ниже один из вариантов. Всего их было 8.
PD>Язык — Java, без фронтенда, но с тестами.
Курс 2 или 3 ?
Pavel Dvorkin
Pavel Dvorkin
23.04.2025 01:28
Здравствуйте, LaptevVV, Вы писали:

LVV>Курс 2 или 3 ?


Третий

Часть 1. Однопоточный вариант сервера, тесты вызывают сервер напрямую
Часть 2. Многопоточный вариант сервера (использование потокобезопасных коллекций и/или блокировок), тесты вызывают сервер напрямую
Часть 3. То же, но вместо самописной "БД" на основе коллекций — SQL сервер
Часть 4. То же, но прикрутить REST и в тестах вызывать сервер по HTTP.

Это и был мой основной курс. Плюс, как я писал , упражнения на разные элементы языка.
Философ
Философ
23.04.2025 01:42
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Часть 3. То же, но вместо самописной "БД" на основе коллекций — SQL сервер


Угу, садизм с БД без СУБД у вас тоже есть.
И как оно? Я точно знаю, что ALTER TABLE после этого адским колдунством выглядит, но я никогда не был на месте преподавателя.
Pavel Dvorkin
Pavel Dvorkin
23.04.2025 01:49
Здравствуйте, Философ, Вы писали:

Ф>Угу, садизм с БД без СУБД у вас тоже есть.


Какой там садизм! Просто создание своего класса с коллекциями. Чтобы научились с ними реально работать. С обычными и потокобезопасными. Ну и Apache коллекциями.

Ф>И как оно? Я точно знаю, что ALTER TABLE после этого адским колдунством выглядит, но я никогда не был на месте преподавателя.


Нормально. Убирают эту псевдо-БД, делают иную имплементацию DAO, которая обращается к MySQL серверу. Основные классы почти без изменений.
Silver_S
Silver_S
21.04.2025 06:50
Здравствуйте, LaptevVV, Вы писали:

LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.

LVV>И на нем обучать всем основным концепциям.

Сомнительно. Если лабы не про навороты языка, а про алгоритмы. То переводить алгоритмы с одного языка на другой проще, чем их придумывать. Будут просто переводить.
А тем, кто интересуется программированием может оказаться интереснее осваивать известные языки, а не "временные".
Тогда уже не для всех временный язык, а только для бездельников, как наказание.
AlexGin
AlexGin
22.04.2025 05:37
Здравствуйте, LaptevVV, Вы писали:

LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.


Почему столько хайпа вокруг ИИ?
Я месяц-полтора назад приобрёл новый ноут — ASUS. Без установленной OS.
Девайс при инсталляции Windows10/11 не видел SSD. Сразу замечу, что компьютеры я собирал уже 30 лет назад.
Я полез советоваться насчет ногого ноута с ИИ...
Какой только чуши мне этот истукан не советовал! Влезть внуть и убедиться, что SSD на месте Так BIOS его находит.
Наконец, на youtube нашел русского блогера — который просто объяснил — какой чек-бокс в BIOS выставить.
После этого — всё стало на свои места...
hi_octane
hi_octane
22.04.2025 09:22
AG>Какой только чуши мне этот истукан не советовал! Влезть внуть и убедиться, что SSD на месте Так BIOS его находит.
AG>Наконец, на youtube нашел русского блогера — который просто объяснил — какой чек-бокс в BIOS выставить.
AG>После этого — всё стало на свои места...

И это тоже временно. Следующее поколение GPT посмотрит всех блоггеров, послушает все подкасты и будет знать и про эту галочку тоже.
Stanislaw K
Stanislaw K
23.04.2025 06:07
Здравствуйте, hi_octane, Вы писали:

AG>>Какой только чуши мне этот истукан не советовал! Влезть внуть и убедиться, что SSD на месте Так BIOS его находит.

AG>>Наконец, на youtube нашел русского блогера — который просто объяснил — какой чек-бокс в BIOS выставить.
AG>>После этого — всё стало на свои места...

_>И это тоже временно. Следующее поколение GPT посмотрит всех блоггеров, послушает все подкасты и будет знать и про эту галочку тоже.


а её уже отменят!
student__
student__
23.04.2025 01:10
Здравствуйте, LaptevVV, Вы писали:
LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.
LVV>Домашние задания в этом варианте — бесполезны.

Никогда списывание или платно выполненные лабы по программированию не являлись препятствием для контроля уровня усваиваемости.
Не понимаю, почему ИИ долже что-то изменить в этом плане.
При сдаче лабы надо просто садиться со сдающим студентом за комп, и задавать вопросы о коде.
В простейшем случае, "объясните каждую строку кода, что она делает".
Потом можно задавать вопросы типа "если я вот в этой функции заменю вот эту строку на мою вот такую, что будет?".
Дальше, если студент объясняет всё как надо, в пределах изложенного материала (или того, что студент должен был освоить самостоятельно),
ка-ка-я ра-зни-ца, понял он код сам или при помощи ИИ или третий человек сделал ему лабу за деньги?

Чтобы
student__
student__
23.04.2025 01:16
Здравствуйте, student__, Вы писали:
__>При сдаче лабы надо просто садиться со сдающим студентом за комп, и задавать вопросы о коде.

Чтобы уменьшить преподавательскую нагрузку, можно делать такие сессии только один раз за курс.
Т.е. вот, например, в курсе 10 лаб.
9 лаб могут быть компонентами финальной 10й лабы.
10я лаба использует результаты всех предыдущих.
Приемку лабы с объяснениями от студентов делать только при сдаче последней, 10й лабы.

Помню, когда сдавали лабы по паскалю в универе, препод безошибочно определял, что чел сделал лабу не сам, и даже знал, кто из группы настоящий автор.
Видимо, по стилю кодирования (наименование переменных и проч.).
student__
student__
23.04.2025 01:25
Здравствуйте, student__, Вы писали:
__>Приемку лабы с объяснениями от студентов делать только при сдаче последней, 10й лабы.

В некоторых ВУЗах в Гемании ещё такая система (возможно, это только в TU или FHS), что финальный балл по курсу только на 80% (или 90% — на усмотрение профессора, может быть и 100%) складывается из результатов финального экзамена по этому курсу. А оставшаяся доля оценки складывается из того, как качественно выполнялась домашка.
Если без ошибок и в срок, то можно надеяться, что на экзамене достаточно выполнить очень небольшое количество заданий, чтобы уже получить проходной балл.

Соотв., если повысить вес домашек в финальном балле, а среди домашек учитывать только последюю, 10ю лабу, у студентов будет стимул разобраться в течение семестра, что же делает их код, чем ставить всё только на финальный экзамен.
Sinclair
Sinclair
24.04.2025 01:19
Здравствуйте, LaptevVV, Вы писали:

LVV>Кидайте идеи, как теперь обучать программированию ?


LVV>Я вижу только один путь: создать свой собственный язык программирования, которого нет в сети.

LVV>И на нем обучать всем основным концепциям.
LVV>А потом уже переходить к общеизвестным языкам. И в этом случае уже с применением ИИ.

LVV>Если сразу учить народ на С/С++/Java/JS/C#/Go — они не делают лабы сами, а просто генерят в ИИ.

LVV>Домашние задания в этом варианте — бесполезны.

LVV>Кто что предложит ?

Не, чё сразу язык-то. Пусть для начала выведут свой аналог лямбда-исчисления.
Изобретут свою императивную машину, докажут её эквивалентность Машине Тьюринга.

Придумают классификацию формальных языков. Докажут эквивалентность некоторых из этих классов автоматным языкам, МП-автоматным языкам.
Родят все необходимые виды семантики (аксиоматическую, операционную, денотационную) языков программирования вообще и типов данных в частности.

Потом надо дать возможность вывести из общих соображений принципы дизайна языков программирования.
Лучше не подталкивать их в каких-то фиксированных направлениях вроде логического, императивного, функционального программирования — пусть всё сами.

Вот после этого уже пускай изобретают свой ЯП, для, естественно, самодельной виртуальной машины (ах да, я забыл дать им возможность изобрести виртуальную машину — стековую, регистровую, стеково-регистровую).

Придумывают способ разбора этого языка, механики оптимизации, порождения целевого кода.
Вывод типов пускай сделают. Если переизобретут Хиндли-Милнера — отлично, если что-то другое придумают — и того лучше.


А так — ничего не поменялось. Можно подумать, преподаватели филологии все остались без работы сразу после выхода ворда со встроенной проверкой орфографии и грамматики.
Оужас, как же мы теперь будем отличать тех, кто умеет согласовывать числа и падежи от симулянтов? Они же свои тексты набивают в ворде, и он им там мало того, что подчёркивает красными и синими волнами — он же ещё и автозамену предлагает!

Нет, просто теперь можно давать много задач студентам. Не десять лабораторных, а пятьдесят или сто
Потому что раньше на задачу "напиши парсер арифметических выражений" уходило 40 часов работы, потом 4, потом 2, а теперь — 10 минут.
Значит, таких задач можно давать в 12 раз больше. Иллюстрировать более широкий набор концепций, чем "давайте напишем примитивный однопроходный компилятор убогого подмножества Паскаля".
LaptevVV
LaptevVV
24.04.2025 03:04
S>Нет, просто теперь можно давать много задач студентам. Не десять лабораторных, а пятьдесят или сто
S>Потому что раньше на задачу "напиши парсер арифметических выражений" уходило 40 часов работы, потом 4, потом 2, а теперь — 10 минут.
S>Значит, таких задач можно давать в 12 раз больше. Иллюстрировать более широкий набор концепций, чем "давайте напишем примитивный однопроходный компилятор убогого подмножества Паскаля".
Не, немного не так.
Мой выпускник, у которого дочка учится в МГУ, ей сказал: если ИИ за тебя лабы делает, значит и работать он будет вместо тебя.
Задача же в том, чтобы они ПОНИМАЛИ, а не просто педалили код.
Поэтому есть мысль за лето сваять свой язык с минимально необходимыми типичными свойствами.
И на нем учить первачков.
Третий-то курс — понятно... Там уже либо умеют, либо нет.
А первый и начало второе — это надо как-то им в головы вложить основные концепции.
Даже ИИ "знает", что "повторение — мать учения"
Но надо, чтобы не ИИ за них делал, а они сами.