ИТ и Матан


#1

Многие студенты ИТ недооценивают значимость мат. анализа. Мы с @bravit не раз это обсуждали. Что ж эта тема посвящается таким студентам.

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

Рецепт не использовать плавучку хорош, но не всегда продуктивен. Имейте ввиду!


#2

Прямо понравилось @RS дублировать мои ссылки :slight_smile:


#3

Надо же, я тоже после прочтения решил, что на форуме эта статья будет полезна… Меня опередили)


#4

Из Computing Curricula:

Мы полагаем, что для студентов, специализирующихся в информатике, предпочтительнее потратить меньше времени на математический анализ, но больше на дискретную математику или другие темы, более востребованные практикой информатики. Однако, во многих учебных заведениях факультеты информатики не могут повлиять на структуру программы по математике, что не позволяет факультету добиться достаточной гибкости в этом вопросе.


#5

Там ещё порблема в том, что не тому учат на матане. Сходимости это пожалуйста, я обеими руками за. Но традиционно тратится много времени на бесхитростные вычислительные аспекты: подсчёты пределов, взятие производных и интегралов. А вот в теории вычислимости, например, очень важно понятие несчётности, и для представления с плавающей точкой неплохо бы понимать, что вообще такое вещественные числа. Но эти темы (счётные и несчётные множества, диагонализация, определение вещественных и, желательно, p-адических чисел) практически не рассматриваются, как я понимаю.


#6

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

Вспоминаю свой личный опыт: будучи отличником, я только в аспирантуре с ужасом понял, что термин “непрерывная функция” означает то, что её график можно нарисовать не отрывая карандаша от бумаги. А всё потому, что лекции у нас начинались не с интуитивного введения в термины, а с “Определение. Пусть эпсилон больше нуля, тогда…” - и пошло-поехало. А суть пришла позже и как-то сам я до всего доходил.

Вспоминаю также кошмарное преподавание теории вероятностей: “Рассмотрим семерку (блаблабла), где то-то - вероятностное пространство, то-то мера” - и т.д. В то время казалось, что всё связанное с вероятностью, - это вот эти самые пространства.

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


#7

Во-первых, я считаю, что у нас достаточно очень приличных преподавателей мат анализа. Во-вторых, я отметил не отсутствие знаний по предмету у студентов, а нежелание разбираться в этом предмете. Повторюсь:


#8

Я думаю, нет, я практически уверен, что нежелание разбираться напрямую связано с формальным преподаванием и нежеланием подстраивать курс под целевую аудиторию.

Мы почему-то всегда исходим из того, что виноват студент, а преподаватель чист, квалифицирован и держит планку.

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


#9

Я так никогда не говорил! Хотя могу про себя сказать … :imp:

И потому многие вещи связанные с ИТ останутся для них недоступными. Посмотрите как на том же хабре народ отписался. Грамотно и при этом видно, что люди ИТ-шники.

Студенты пусть выбирают, что хотят, мое дело лишь намекнуть. Имеющий уши, да услышит!


#10

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

Больше всего мне понравилось описание символов Ландау (О-большое, о-малое), операции с ними. Это позволяет аккуратно вычислять сложность алгоритмов, и вообще проводить оценки. Было приятным разложение $e$, в школе нам её подавали как волшебную константу. В общем, моё мнение таково, что нужно стараться рассказывать историю развития математики и необходимость построения математического аппарата.

В моём прошлом ВУЗе нам преподавали курс достаточно интересно. Также можно было спокойно подойти к преподавателю и проконсультироваться. Кстати, упоминая недавнюю новость скажу, что у ребят ведут очень сильный курс по матанализу преподаватели СПбГУ (Кохась, например), одновременно очень объемный курс по дискретной математике, которая в некоторых местах уходит и в алгоритмы и структуры данных, и линейная алгебра с тензорным исчислением, а после УМФ (на два курса), и это в порядке нормального там. Также как и у ИТ, ведётся архитектура (на первом курсе), языки программирования во втором семестре в виде C++ / Java / Haskell, после которого все поголовно болеют монадами, математическая логика, теория алгоритмов (3/4). И прочие курсы. Выходят очень сильные ребята. Да, учиться гораздо сложнее, чем на ИТ, но… они действительно крутые ребята.


#11

Могу поделиться опытом. В конце весеннего семестра я читаю лекцию по представлению чисел в машинах: целых знаковых и с плавающей точкой — прикладникам и итэшникам. На мой взгляд, там может помогать матанализ и теория чисел, которая прикладникам вообще не читается, а на ФИИТ читается под названием МОЗИ весь второй курс. Во всяком случае, эта лекция намного более «математична», чем все остальные лекции курса (за исключением, может, ещё одной: по помехоустойчивым кодам).

Поразительно, но факт: все три года, пока я это читаю, эффект такой: прикладникам заметно интересней и они заметно более активны в ответах на вопросы и отвечают правильней, чем итэшники.

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

  • и то, что студенты изначально неправильно замотивированы, то есть приходят сюда, считая, что тут готовят программистов, а всё не имеющее непосредственного очевидного отношения к программированию считают чем-то вроде пятого колеса,

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

Я должен сказать ещё и то, что первая причина мне кажется более глубокой, потому я напишу в основном про вторую :smile: Мне кажется, читать матанализ и алгебру с теорией чисел, которые были бы привязаны к информатике, очень сложно или невозможно. Это будет уже не математический курс, много времени, потраченного, скажем, на примеры из информатики, будет отобрано от обсуждения ключевых математических концепций. А времени всегда мало. Нынешняя ситуация с полным отсутствием таких примеров тоже неправильна: нужно их вводить, но в ограниченном количестве.

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

Резюме по второй причине такое: математика первична, фундаментальна и она не обязана всё время подтверждать, что её плоды кому-то нужны. А вот в соответствующих профессиональных дисциплинах стоит обращать внимание на связи с математикой: этого лекторы часто не делают. С другой стороны, и тут я вставлю единственную конструктивную идею, лекторам по математике нужно было бы выдать набор, скажем, из пяти мотивирующих примеров, которые им нужно в течение семестра показать студентам. Эти примеры должны составить те, кто разбирается в информатике.

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

Про первую причину я не знаю, что сказать. Я считаю, что сдвиг в сознании в сторону программирования подогревается ещё и гигантским количеством занятий по программированию по сравнению с другими дисциплинами на первом курсе. То есть мы сразу даём понять, что тут главное как бы. Я потихоньку с этим смиряюсь: поскольку у нас нет учёных в области информатики, то и готовить мы будем в лучшем случае программистов с большим арсеналом языков и технологий, как ни крути, так что и пусть будет всё так, как есть. А информатиков (которые могут, тем не менее, идти работать профессиональными программистами, как показывает практика) будут готовить в Питере, потому что у них есть настоящие учёные в области информатики.


#12

Я этого делать не люблю, но буду говорить прямо (<имеет право на жёсткое несогласие>):

Без примеров применения непосредственно на практике, отличники, которые учат то, не знаю что, за тем не знаю зачем, выглядят очень глупо. Можно тут говорить про интерес, но нельзя же одинаково любить все предметы. Некоторые просто учатся, потому что “надо”. И потому что “баллы”.

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

Буду говорить за себя, но думаю, у многих так. Я пришла на факультет для того, чтобы потом работать в обычной фирме на должности обычного программиста. С узкой направленностью я уже была определена ДО поступления. Но ничего более подходящего, чем размытое “Фундаментальная информатика и ИТ” в Ростове, я не нашла. Как ни ругали заграницу, но правильно делают, что дают ребенку узкую направленность. Учить с интересом то, чем он потом хочет заниматься. Он всё равно не будет другим заниматься. Интересы не меняются, а лишь добавляются новые. По себе могу сказать, даже если я учу немотивированно(чтоб не вылететь) какой-то предмет и, не обижайте, совершенно честно сдаю на 5, то всё равно в скором времени всё забываю. Потому что всё, что не используется регулярно, забывается. Я всё время обучения пытаюсь проводить параллели с тем, что из того, что уже проходили, будет использоваться на работе. Но из-за недостатка жизненного опыта не всегда получается. В итоге учеба превращается в сдачу сессий. И страха перед тем, что я ничего почти не знаю о реальной практике. Да, у меня есть “база”. На которую после 6 лет учебы можно “нарастить”. Но хочется уже выпуститься специалистом. Начального уровня, но специалистом. Вплоть до умения оформлять документы и тонкостями законодательства о мире ИТ. Я понимаю, что это Университет и прочее, но если создадут какой-то институт или пусть даже пту, где будут учить именно этому, я туда пойду. Не будем летать в облаках, просто приведу примеры из жизни моих знакомых. Основная часть выпускников работают как было сказано выше обычными прогерами. Не в гугл, не разработчиками стандартных библиотек, не какими-то низкоуровневыми прогерами, не пишут свои операционные системы и т.д. Такие есть, но их единицы. Некоторая относительно большая часть вообще пошли не по профессии. Всякими логистами, экономистами, менеджерами, администраторами и т.д. Не знаю почему. Поливайте меня грязью, но это моё мнение, и оно такое, потому что само собой таким сформировалось, потому что никто его не корректировал. Буду счастлива, если кто-то убедит, что я глубоко ошибаюсь. Так это я к чему:

Просто нужно перед каким-то курсом в общем расширенно рассказать где и кем это может быть использовано. И все. Не нужны эти примеры перед каждой темой или теоремой, просто в общем зачем вообще нужен этот курс ВСЕМ. Не потому, что это используется в другой науке, по которой у вас в дальнейшей будет аж 2 экзамена. Не потому, что это нужно для глубокого понимания как происходит сложение на очень низком уровне. Я могу этого и не знать, и быть отличным специалистом (или даже лучшим) в своей области. Нельзя знать всё. Нужно знать нужное.


#13

Я внесу свои три копейки в эту дискуссию. Как уже отмечалось, есть 2 проблемы:

  1. студенты и 2) профессура. Одни “не хотят учиться”, а другие “не хотят адаптироваться”. На мой пессимистичный взгляд ситуация плохая и лучше она не станет.
  2. Качество студентов становится объективно хуже. Ничего с этим не сделаешь. Их, студентов, не хватает, берут всех, конкурс низкий, в школе ЕГЭ, о качестве школы в среднем я не буду говорить. Да и бывшие институты и техникумы стали университетами и тоже чему-то и как-то учат. Какая-то часть студентов вообще не понимает, зачем она тут, какая-то представляет себе все обучение по-другому (интересно откуда только это знание появилось), какая-то часть просто не может учиться, ну а какая-то часть учится.
  3. Все, что происходит, не может не сказаться и на профессуре. Сто раз писали про непрестижность, про зарплаты, про условия, про невероятную, чудовищного объема нагрузку на преподавателя, на засилье бюрократии. И все это помножено на много лет. Ну вот приходит условный препод в аудиторию и видит, что никто собственно учить его предмет не хочет, а частично и не может, ну и что, можно выворачиваться, объяснять теорему Гейне на пальцах, ну а можно делать это так, как было 30 лет назад.

Вот, написал это все зачем-то, такое, неполиткорректное. А про матанализ я вот что хочу сказать. Так жить нельзя, не хочется бросать камень, но никакого прогресса я не вижу, не вижу адаптации под слабых студентов, не вижу адаптации под появление мощных средств типа Maple и прочих. Вот @Admin привел элементарное определение непрерывной функции, так там же полно всего такого, что можно объяснить элементарно, а потом строго.


#14

А может надо добавить на ИТ немножко часов мат. анализа в дисплейных классах? Чтобы Maple как раз использовать. Во втором семестре, например.


#15

Вот интересно, студенты, жалующиеся на плохие математические курсы и лайкающие эти жалобы, вообще прочли статью, с которой началась тема и поняли, почему сходится не к 5, а к 100…

А ещё по поводу плавающей точки вспомнил историю. Когда я вёл ассемблер у магистров ИТ и там была плавающая точка, я развлекался так: писал, что 0,(9) = 1 и начинал выпытывать, согласны ли студенты или нет и почему.


#16

А вот что такое число $\sqrt{3}$ и вообще не рациональные числа?


#17

Я уже писал выше, что сожалею об отсутствии подробного обсуждения вещественных чисел на матане. Говорил об этом студентам на последней лекции по плавающей точке. Кстати, тут интересная история: ведь раньше это была неотъемлемая часть курса, и во многих учебниках она есть. Но при сокращении часов оставили много всякой ерунды, а это выбросили.


#18

Я точно так развлекался в классическом лицее. Но ребята, которые ко мне ходили чаще в Москву уезжали, чем на ИТ поступали.

@Lyubov, а я вот из Вашего поста понял только, то что Вы боитесь, что Вас обольют грязью, а за что, так и не понял.


#19

Вставлю и свои два слова в тред - очень уж вкусным кажется. Следующее - исключительно ИМХО, не претендую на истину. Расскажу свое мнение о сабже по окончании бакалавриата.

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

Для начала, выделю курсы, в которых матан таки был в некотором его виде.

  1. Собственно, “Математический анализ”. Матана за его пределами на первом курсе не было.

  2. “Кратные интегралы и ряды”, которые тоже по сути матан. Не пригодились ни в каком виде более нигде. Лишь совсем чуть - в курсе ЦОС, но там вводилось заново - ибо по известным причинам уровень матана у нас хромал, и делать это В.Д. таки пришлось(ряды Фурье). Полезное там что-то было, но ощущения таковы, что можно было бы сократить раза в три, выпилить сотни, тысячи совершенно не пригодившихся лекций, и оставить три-четыре.

  3. “Дифференциальные и разностные уравнения”. Не пригодились вообще нигде. Ни разу. Зачем они были нужны, мне по-прежнему не ясно, а столько времени уж прошло.

  4. “Теория вероятности”. Был. На уровне первого курса, первого семестра где-то. Начала.

  5. “Физика”. Вопреки всеобщему мнению, матан там был не нужен. Совсем. Диффуры были максимально простого вида, таковые решаются в школе методом научного тыка.

  6. “Цифровая обработка сигналов”. Матан был, достаточно объемный. На зачет надо было написать пару сверток и чего-то похожего на них в виде программы. Что именно - не вспомню. Я бы сказал - мало. Полезный выхлоп этого курса и сейчас используется нами в магистратуре, так что твердый плюс матану за этот предмет. Еще очевидным плюсом были постоянные привязки к существующим технологиям в мире ИТ. Вот с кого пример брать надо.

  7. “Теория кодирования”. Матан был. В очень небольших количествах, в основном - алгебра. На самом деле этот курс можно не считать.

  8. “Методы оптимизации и ИО”. Капли, в основном - алгебра. См. 7.

  9. “Вычислительная математика”. Ну, тут сам бог велел.

  10. “ТИ и криптография”. Был матан, был. В основном - алгебра. см. 7.

Итог: из 27 экзаменов и 42 зачетов(69 всего) хоть как-то коснулись матана в 10 курсах, из которых 3 представляли собой матан ради матана, а в остальных(кроме ЦОС) его касались на самом базовом уровне, курс какой-нибудь “высшей математики” на каком-нибудь геофаке вполне бы удовлетворил их требования. Итак, окончательный вердикт - эти три(занявшие на деле 2 года) надо объединить в один год, посмотреть на курсы, которые читаются на ФИИТ, и выбрать темы для обсуждения на матановых курсах исходя из того, что потом потребуется. Неприятно понимать, что 2 года лекций матана в 80% своего объема были потрачены впустую, а ощущения, что это не так - нет. Напоминаю, все субъективно.


#20

А вот слабо составить список конкретных тем матана, которые пригодились? Пусть как в анекдоте про интеграл и шляпу из лужи. Интересно же.