May 25th, 2020

Бритоголовый и С1-97

Второе поколение

Вот еще – хочу сознаться, что зря я гнобил TU D-stadt, и даже там на факультете информатики можно научиться чему-то полезному, если вам повезет, конечно. Дело в том, что вводный курс по информатике, с программированием на Java, читают два разных преподавателя – раньше в четные годы это был Prof. Dr. Johannes Furnkranz (ссылки на его курс можно найти у меня), сейчас курс на основе сделанного Furnkranz’ем читает более молодой преподаватель, Prof. Dr. Christian Reuter. А если повезет, и вы поступите на факультет информатики в нечетный год – то курс с формально тем же содержанием читает Prof. Dr. Karsten Weihe (в отличие от предыдущих, заслуживший страничку в немецкой википедии) – и это совершенно другое дело!

Нет, формально оба преподавателя читают примерно одно и то же – но возьмем тот же пример с определением, является ли строка палиндромом. Самостоятельная ценность у этой задачи близка к нулю – но она прекрасно демонстрирует, как писать нетривиальные циклы и обращаться к элементам массива по индексу (да еще и с возможностью “попасть” на off-by-one error). В лекциях и домашних заданиях курса господина Weihe прослеживается какое-то понимание того, зачем нужны все эти задания, и что за ними стоит на самом деле; если же посмотреть на “альтернативный” курс – то иногда возникает впечатление, что автор заданий, типа того же палиндрома, держал перед глазами список “типовых задач”, да так и не понял его.

Что же такое происходит, и чего нам ждать в будущем? У меня есть на этот счет довольно злобная теория – дело в том, что со сменой поколений в преподавании computer science исчезает и понимание сути материала. Вот возьмем какую-нибудь не менее “популярную” учебную задачку – не надоевшие всем палиндромы, а, скажем, структуры данных. Реализовывали ли вы стек на базе массива? А на базе списка? Пожалуй, если дочитали до этого места – для вас это не пустые слова. Предположим, реализацию стека на базе массива вы увидите и так (собственно, “стек вызовов” так и делается в большинстве более-менее адекватных систем) – но зачем делать это на базе списка? Да и вообще, откуда такая любовь к связным спискам, это же совершенно бестолковая и никому не нужная структура данных? Если вы засомневались – почему же списки никому не нужны? – постарайтесь вспомнить, когда они вам последний раз пригодились за исключением изучения информатики и программистских “технических” собеседований.

А ведь если подумать – то связные списки – это “естественный” для Lisp-подобных языков способ организации данных, да и аппаратная их поддержка – не так уж и сложна (примером чему служат всевозможные “Lisp-машины”). Ничто не мешает рассматривать их, как вполне равноправные с массивами (которые имитируют обычную память с линейной адресацией) “элементарные” структуры данных – и строить на их основе что-то более сложное. Но многие ли в “нашем поколении”, полностью захваченном обычными фон-неймановскими компьютерами, могут себе представить “альтернативные” варианты? Многие ли могут понять теоретическую важность других способов организации памяти, чем очевидный “массив из int8_t”? Да и рассуждать о способах построения алгоритмов – скажем, об “индуктивных функциях” или доказательстве правильности рекурсивных функций, имея под рукой такую структуру данных, как список, очень удобно (хотя никто не мешает делать это в “императивном” духе).

И возвращаясь к “смене поколений” – если “старики” еще понимают, чему соответствуют все эти нетривиальные штуки в курсе “информатики”, то новое поколение действует “по инерции”, понимая свою задачу скорее в “начетническом” ключе – если те же списки или палиндромы встречаются в курсе, то достаточно предъявить некоторое количество задач, где как-то фигурируют эти понятия (при этом совершенно теряя суть происходящего). Худший же вариант – рассказать о списках на примере встроенного в Java интерфейса List – встречается, на мой взгляд, пугающе часто.

PS Интересно, а бывают ли учебные курсы Java, где в качестве примеров разбираются реальные классы из JDK? Тот же java.lang.String – прекрасное наглядное пособие для изучения массивов, например :)

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

Какой качественный наброс

Довольно забавную ситуацию можно было наблюдать в этот понедельник – Партия прямой демократии опубликовала на хабре почти безобидный текст:

https://habr.com/ru/company/analogbytes/blog/503552/

Ну казалось бы – никаких “наездов”, просто процитирован текст некоего документа, с которым предлагается согласиться на одном из официальных сайтов г. Москвы, и приведена инструкция, как с этим жить, исходя из требований 152-ФЗ. Но нет, почему-то материал получил внезапный всплеск интереса (не скрою, под соусом “мэрия Москвы будет 10 лет слать вам рекламу” можно и не такое устроить), был пропиарен даже Навальным (что особенно смешно), и где-то ближе к вечеру по разного рода телеграм-каналам начали распространяться “опровержения”. “Гениальный” шаг со стороны связанных с ДИТом пиарщиков, увеличивший посещаемость, пожалуй, в разы.

В понедельник, в 9:00 свой комментарий дал глава ДИПРа Фурсин, разумеется, в духе “все в соответствии с законом”:

https://tass.ru/moskva/8553717

Собственно, с этим никто и не спорит – да, все в соответствии с законом, пользователь сам предоставляет свои персональные данные и осознанно ставит галочку. Чуть позже, вероятно, проснулись более осознающие ситуацию пиарщики и посоветовали не разгонять тему, сама вскоре потухнет (ситуация “глава московского департамента комментирует наброс анонимусов на хабре” – это вообще что-то невообразимое) – но “выстрелили” еще пара телеграм-каналов в духе “а мне нечего скрывать, мой телефон и так в открытом доступе”.

Что показывает вся эта история? Ни чиновники, ни граждане, ни авторы телеграм-каналов (впрочем, последним простительно) так и не осознали принятый 14 лет назад 152-ФЗ. Точнее, осознали – но на уровне того, что в лесу живет бабайка, и если перед походом в лес не сказать волшебное заклинание – бабайка подскочит и больно укусит за жопу. В роли бабайки выступает Роскомнадзор (да, он следит в том числе и за соблюдением 152-ФЗ), в роли “укусит за жопу” – статья 13.11 КоАП. Волшебное заклинание же – текст “согласия на обработку персональных данных”, которое можно найти в интернете (а уж там-то в “типовом документе” чего только не понаписали). Что ж, развитием магического сознания удовлетворен. Скоро начнут мазать лоб кровью черного петуха и ритуально приносить Роскомнадзору в жертву девственниц, это вполне логичный следующий шаг.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Бритоголовый и С1-97

Кстати, еще про магическое мышление

Три с половиной совершенно несвязанных между собой эпизода – от которых будет смеяться любой юрист.

Для начала – все про те же персональные данные. “Околооборонное” предприятие решило сделать современную проходную, разогнать бабок из ВОХРы и поставить турникеты с электронными карточками и проверкой отпечатков пальцев. Перед запуском системы решили собрать необходимую для этого макулатуру – в частности, каждый из сотрудников предприятия подписал “согласие на обработку биометрических персональных данных”, которое включало в себя вагон разрешений, вплоть до “трансграничной передачи”. Напомню, что предприятие околооборонное, со всей полагающейся паранойей.

Схожую историю наблюдал с одним сколковским стартапом, которому при найме сотрудников захотелось подписать с ними NDA. Текст бумажки о “неразглашении конфиденциальных данных”, больше подходящий ликероводочному заводу, нашли то ли в каком-то “справочнике бухгалтера”, то ли вообще на каком-то левом интернетовском сайте. Про ликероводочный завод – не шутка, к конфиденциальной информации были отнесены “купажные листы”. Надо ли говорить, что, допустим, исходного кода программ в этом NDA не было? Да, специально для [info]sish – остальных телодвижений, предусмотренных 98-ФЗ, тоже не предприняли.

Из более приземленного – вы когда-нибудь покупали автомобиль “с рук”, без участия в этом автосалонов? Видели у регистрационного подразделений ГИБДД ряд ларьков с вывеской “оформление ДКП”? Почему-то сограждане верят, что оформленный ИП Ивановым П. С. за 500 рублей “договор” (с проставлением печати этого самого ИП Иванова П. С. в ПТСе) имеет какую-то большую юридическую силу, чем составленный продавцом и покупателем самостоятельно. Для большего счастья граждане вписывают в эту бумажку волшебную сумму 250 000 рублей – чтобы налоги не платить.

В общем, любые правовые отношения у нас сводятся к маханию руками с криками “Ахалай-махалай”.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).