Category: образование

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

Еще про видосики

Меня тут “обрадовали”, что идея из предыдущего поста – соцсеточка без текста, только с видео – уже реализована и называется TikTok. Ну ладно, остается только порадоваться за китайцев. Кстати, то, что это уже придумано и сделано в Китае, совершенно неудивительно, в отличие, скажем, от нашей “самой читающей страны” и вообще всего “первого мира” с почти поголовной грамотностью, Китай пока что отстает, да и заодно китайские иероглифы не очень удобно печатать на клавиатуре, а вот снять видео на камеру смартфона – это всегда пожалуйста.

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

Это в “гипертекстовом” интернете для того, чтобы сделаться модным блоггером, достаточно уметь минимально грамотно писать и снимать котиков и сиськи на говнозеркалку, с “картиночным” инстаграмом чуть посложнее, но тоже можно обойтись без профессионального фотографа – а вот с видео так не получится. Осваивайте профессию режопера :)

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

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

Строители спутников

Девочка Саша, 9 лет, Троицкая средняя школа:

Дядя Игорь Пантелеймонов Игорь Николаевич, начальник сектора разработки и создания радиотехнических систем, средств НКУ и специальных комплексов, АО «Российские космические системы»:

Не знаю, как вам, а мне первый ролик гораздо больше нравится во всех отношениях (в том числе и по глубине проработки проекта и продуманности технических решений).

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

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

Про Agile

Навеяно беседами (раз, два) в фейсбуке, в которых железячники и к ним примкнувшие гнобят программистов за общую инфантильность и неспособность в предсказуемые сроки выдавать работающий результат. Так вот, хоть я и зарекся писать про TU D-stadt – что взять с убогих? – но не могу пройти мимо темы того, как в немецком программистском образовании освещены методологии разработки программного обеспечения. Их обзору посвящена целая лекция в конце первого семестра “общей информатики” (где учат в основном каким-то азам Java, да и тем плохо).

Краткое содержание лекции – “водопад это плохо, много ненужного бюрократизма, чуть получше – спиральная и V-модель, но истинное «наше все» – это гибкие методологии, Agile и прочий Scrum”. Под стать ей – и вопросы в итоговой экзаменационной работе – например, “назовите недостатки Waterfall model”. Напомню, что лучшее средство для того, чтобы студенты усвоили какую-то непреложную истину – вынести ее на экзамен, а в такой вот форме – будьте уверены, запомнят они именно недостатки.

Пожалуй, неправильно будет обвинять профессора в какой-то злонамеренности, он вроде бы хороший чувак, но ни дня не работал в “индустрии” – так что просто вынужден некритически пересказывать модные сейчас штуки про “гибкие методологии разработки”. Что получается на выходе – разумеется, такие же жизнерадостные программисты, обитатели страны розовых пони.

PS Да, что касается шуточек о том, что скоро курс информатики будут преподавать по материалам ebanoe.it. Уже! В Штатах в University of Massachusets Boston в рамках курса CS410 (Introduction to Software Engineering) читается лекция What to Expect from Tech Companies and their Hiring Processesразъясняется, что такое галера, гребцы, хрюши и все такое (нет, до такого еще не дошли – но скоро, очень скоро все будет!).

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

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

Чуть-чуть про обучение программированию

Вот говорят, что функциональное программирование – это непонятная фигня, что оно оторвано от жизни, все такое. Но чуваки, я сам лично видел, как девочка-филолог, особо компьютерами никогда не интересовавшаяся, самостоятельно “изобрела” конструкцию вроде лисповского map. А вот если верить лекциям Кушниренко для преподавателей (параграф 8) – к “изобретению” цикла человека надо специально подводить мелкими шажками.

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

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

Словарь корпоративных смыслов московской системы образования

На сайте “Московского центра развития кадрового потенциала образования” есть забавный раздел с литературой, а в нем – совершенно шедевральный “Словарь корпоративных смыслов“.

mosedu-dictionary

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

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

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

Еще немного про Java, обучение программированию и все такое

Продолжу недавнюю запись про определение палиндромов на Java. Для начала, поступило довольно обоснованное замечание, что “в старой Java” класс String был устроен так, что методы типа trim и substring не копировали буфер строки, а работали с тем же (благо в Java строки “иммутабельны”) – поэтому квадратичной сложности тут не будет и в целом есть даже шансы, что все это дооптимизируется до почти правильного решения.

Что могу возразить? Во-первых, курс называется не “недокументированные возможности старой джавы”, а “общая информатика”, и читается отнюдь не в ПТУ для быдлокодеров. Я не берусь сказать, как именно будет реализован строковый тип в том языке программирования, который станет основным для выпускников через пять лет – да и вообще, будет ли это Java или что-то еще. Во-вторых – во вводном курсе программирования более ценно не умение обращаться с готовыми методами из класса String, а умение работать с массивами, например. Задачки наподобие “определите, является ли строка палиндромом (без учета пробелов)” – это абсолютная классика задач на работу с одномерным массивом.

И вот тут мы переходим к следующей части – а в чем так сказать, педагогическая ценность этого задания? Выполнить несколько почти тривиальных шагов, засунув их внутрь цикла? Неплохо для обучения Java junior по современным понятиям, но… Более традиционные (и результативные!) подходы предполагают обучение программированию “сержантским методом” (в терминологии [info]ailev) – много-много мелких, но содержательных задач, часть из которых объясняется преподавателем, а часть – остается для самостоятельного решения. Палиндромы, strrev, все что угодно – самостоятельной ценности у этих задач может в общем случае и не быть (хотя надо быть всегда готовым написать собственный left-pad), но их должно быть много, и они должны иметь разную сложность.

В том курсе, о котором я пишу, “сержантским методом” и не пахнет – задач предлагается смехотворно мало, а часть из них – в духе немецкого программистского образования – больше похожи на тесты для умственно отсталых, вот в духе “есть листочек, на листочке нарисованы паровоз, пароход, печка и самолет, что лишнее?” От того, что задача сформулирована в виде “изобразите UML-диаграмму для классов SteamLocomotive, SteamBoat, Furnace, LocalhostFurnace, Plane, BF109, BF109G”, она не становится более интеллектуальной, а от написания 10-20 строчек кода в неделю Fundamental programming skills, обещанные в описании курса, не появляются.

Несколько лет назад ни один околопрограммистский срач не обходился без ссылки на Джоэля Спольски – не буду изменять хорошей традиции и даже приведу целый абзац из Perils of Java Schools:

OOP in school consists mostly of memorizing a bunch of vocabulary terms like “encapsulation” and “inheritance” and taking multiple-choice quizzicles on the difference between polymorphism and overloading. Not much harder than memorizing famous dates and names in a history class, OOP poses inadequate mental challenges to scare away first-year students. When you struggle with an OOP problem, your program still works, it’s just sort of hard to maintain. Allegedly. But when you struggle with pointers, your program produces the line Segmentation Fault and you have no idea what’s going on, until you stop and take a deep breath and really try to force your mind to work at two different levels of abstraction simultaneously.

Уж очень мне нравится тут фразочка про inadequate mental challenges – и хочу обратить внимание, что какое-то обучение возможно только тогда, когда решаемые задачи достаточно сложны (а в некоторых вариациях “сержантского метода” – когда в каждом задании есть настолько сложные задачи, что никто не может их решить). Здесь же в своем “упрощенчестве” докатились до предела – задачи настолько тупы, что их решение просто не дает никаких полезных знаний.

PS Между прочим, некоторое количество вполне себе содержательных задач по программированию вместе с азами ООП содержатся в простом задании – “напишите свою реализацию класса java.lang.String”, или некоторого его подмножества. Для развлечения – можно предложить написать две реализации – одну в стиле “старой Java”, без копирования строкового буфера в методах типа substring, а вторую – с копированием, и сравнить производительность.

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

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

А вот расскажите мне про кредиты на образование

Вот мы, конечно, любим смеяться по поводу американских студенческих кредитов, а вот что происходит у нас? Вот на днях увидел статейку о стоимости обучения на платных отделениях в ВУЗах Волгограда (не спрашивайте, почему именно Волгоград, просто случайно попало на глаза):

https://v1.ru/text/education/66148102/

Стоимость года обучения – от 100 до 200 тысяч рублей, и если сравнить ее со средней зарплатой по области – то получается не особо радужно:

https://v1.ru/text/gorod/66139447/

Получается, что год обучения в ВУЗе средней руки “стоит” от 3 до 6 средних месячных зарплат в регионе. Ну и с той же “программной инженерией” еще понятно, а вот куда деваться выпускникам со специальностью типа “Монументально-декоративное искусство” – хз, если честно.

Так вот, че как у нас в России со студенческими кредитами?

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

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

Вечер фейспалмов продолжается

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

palindrom

Так вот, сейчас студентов учат немного другому. Надо сначала выполнить метод trim(), отрезав от строки пробелы в начале и в конце, потом сравнить первую букву с последней, затем выполнить метод substring() и повторить это с обрезанной строкой. Прикольно, да? Не знаю, как у вас, а я не могу обойтись без слов “пиздец”, “охуеть” и “ебланы”, когда рассказываю об этом.

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

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

Адитья Бхаргава, Грокаем алгоритмы

Мельком просмотрел тут одну детскую книжку по “алгоритмам”.

bhargava-algorithms

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

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

Кратенькое резюме такое – неплохо для семиклассника, читающего под одеялом с фонариком журнал Ксакеп, для взрослого человека скорее бесполезно, в качестве справочника заменяется любым cheatsheet-ом вроде такого:

https://algs4.cs.princeton.edu/cheatsheet/

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

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

Это вам не МГУ!

Увидел тут ролик, где студенты ВШЭ протестуют против решения Ученого совета ВУЗа о “блокирующих оценках” (можно почитать , если кому интересно):

Что хочу сказать? Это действительно не МГУ – так как МГУшное “Положение о курсовых экзаменах и зачетах” всякой мелочной ерунды, в отличие от вышкинского “Положения об организации промежуточной аттестации…“, не содержит.

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