Можно ли информатика, обучавшегося традиционному программированию, переучить на алгебраическое?
Материал из 0x1.tv
Содержание
Аннотация
- Докладчик
- Николай Непейвода
В связи с тем, что на переднем крае компьютинга диагностировано объективное исчерпание технических возможностей, возникают вопросы о том, что будет дальше и в области железа, и в области программирования?
Уже сейчас для суперкомпьютеров на гибридной базе (процессоры разного типа, работающие в одном устройстве: сеточные, видео, для быстрого поиска информации) программирование на клонах С++ с дополнительными возможностями ручного распараллеливания и указаний об укладке программы на процессоры становится мучительным мазохистским процессом. Но все попытки что-то изменить наталкиваются на «агрессивное невежество» (термин не мой) программистов.
Таким образом, еще раз подтверждается диагноз: человек, который изучал в вузе языки программирования, а не концепции информатики, ничего нового в жизни уже знать не пожелает. Он будет добавлять чисто технические сведения о конкретных инструментах, но работать тем же топором, который ему дали.
Но намечается еще более радикальный поворот: переход и на уровне аппаратуры, и на уровне алгоритмики, и, соответственно, на уровне программирования от численного моделирования к структурному. При таком подходе программа становится алгебраической структурой. и данные нечисленными. В докладе будут показаны элементарные, но полностью выходящие за рамки традиционной парадигмы, примеры алгебраических программ[1].
Возникает вопрос: может ли человек, которого учили по традиционной схеме, быть переучен на структурное алгебраическое описание систем и программирование? Почти никогда.
И причина здесь не только в курсах программирования. Само фундаментальное математическое образование здесь должно быть иным, о чем я уже неоднократно говорил. Оно должно базироваться на алгебре и логике.
Возникает вопрос: а как же совместить фундаментализацию с катастрофическим падением уровня студентов? (Добили-таки школьное образование и добивают вузы). Ответ прежде всего в том, что на самом деле эта ситуация явилась вызовом для нашего привычного стиля изложения фундаментальной науки и прикладных аспектов. Если мы выживем в ней, то придется находить новые способы подачи и того, и другого. И прежде всего необходимо тесно увязывать курсы друг с другом и давать не сумму начитанных сведений, а строго отобранный базис, на который можно затем проектировать множество новых знаний.
А искусство проекции нужно тоже отрабатывать сразу же: показывая самые абстрактные вещи во взаимосвязи с конкретными, а когда рассказываются конкретные, сразу же давая несколько вариантов их представления, чтобы отучить от зашоренности взгляда. Таким образом, нужны новые фундаментальные и прикладные курсы, причем базисные курсы ни в коем случае не должны привязываться к конкретике традиции, зато к конкретике жизни и ее многообразию. Скажем, программировать лишь на С++ или Java — формировать тех, кто никогда не сможет и не захочет думать иначе, как в терминах битов, команд и последовательных процессов. Поэтому очень полезный опыт на первом же курсе был бы переписывание практически всех программ на языках разных стилей (и заодно показ того, когда получается уродливо и не стоит впихивать программу в другую парадигму).
Видео
Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.
Слайды
Примечания и отзывы
- ↑
- [1] Nepejvoda N. N. Reversivity, Reversibility and Retractability Third international Valentin Turchin Workshop on metacomputation Переславль 5–9 июля 2012 ISBN978-5-901975-28-6 p 203–216.
- [2] Непейвода Н. Н. Абстрактные алгебры различных классов программ. Аппликативные Вычислительные Системы 3-я международная конференция АВС 2012 Москва, Институт «ЮрИнфоР-МГУ», 14–15 декабря 2012 г. ISSN 2304-7283. Стр. 103–128.
- [3] Непейвода Н. Н. От численного моделирования к алгебраическому РАСО’2012 т. 1 М.: 2012 ISBN 978-5-91450-122-5 стр. 93–103.
Plays:2822 Comments:0