Отказ от обязательного требования к изучению матанализа позволит университетам привлекать всех этих людей более простым и методичным образом. Это не означает, что мы превратим университеты в ремесленные училища. Как и прежде, нам нужны ученые-теоретики в области точных наук, умеющие работать с математическим анализом, линейной алгеброй и дифференциальными уравнениями. Проблема состоит в том, что анализ слишком долго служил камнем преткновения на пути обучения мотивированных и отлично ориентирующихся в цифровом мире новаторов.
Университет Клемсона экспериментировал с изменением места математического анализа в своей учебной программе. Этот курс перестал быть обязательным для всех, кто не занимается точными науками в чистом виде. Проведенное в 2004 году исследование показало, что после изменения подхода и переноса занятий по математике на более поздние семестры было выявлено «статистически значимое улучшение показателя удержания студентов, изучающих инженерные науки» [98]
.Нам нужно больше подобных экспериментов. Нам нужно и радикальное новое мышление, которое позволит нам преодолеть ограничения прежней модели, доминировавшей в этой области в течение десятилетий.
Как могло получиться, что огромное количество людей, интересующихся программированием, пока не охвачено нашими ведущими учреждениями в области высшего образования? Возможно, это связано с тем, что мы не смогли развиться и продолжаем рассматривать компьютерные науки как точные, а не как новую дисциплину, охватывающую сразу несколько областей. И чем быстрее мы сможем отказаться от этого устаревшего мышления, тем лучше.
Информатика
Нил Гершенфельд
Информатика (
Существует множество вычислительных моделей: императивные / декларативные / функциональные языки,
И сейчас мы прилагаем поистине героические усилия для поддержания этой фикции. Программирование в наши дни напоминает праздное пребывание в «садах удовольствий» из фильма «Метрополис» Фрица Ланга: вы полностью уверены, что рабочие в цехах глубоко внизу будут в точности следовать вашим указаниям. Но на самом деле «снизу» все чаще слышен ропот. Множество взаимосвязанных «бутылочных горлышек», непопаданий в кэш, совпадений по времени цепочек тока, недостаточные бюджеты дата-центров и неэффективность параллельно работающих процессоров (и программистов) – вот лишь несколько причин этого.
У программ нет физических атрибутов типа пространства и времени, однако таковые имеются у «железа», на котором работают эти программы. Код, на базе которого работает та или иная программа, исполнительный скомпилированный код, и схемы, по которым он работает, совершенно не похожи друг на друга. Если вы посмотрите на географическую карту, то увидите в ней иерархическую структуру от города к штату и стране, однако геометрия представления не меняется в зависимости от масштаба. Почему мы не делаем того же самого в отношении программ?
Я склонен винить в создавшемся положении двух человек – Алана Тьюринга и Джона фон Неймана. Оба прославились исключительно важными с исторической точки зрения и довольно нетрадиционными исследованиями. Тьюринга интересовал вопрос принципиальной вычислимости. Машина, носящая его имя, задумывалась как теоретическая модель, а не как проект реально осуществимого эксперимента. У нее имелась головка, которая читала и записывала символы на бумажной ленте. И хотя это может показаться само собой разумеющимся, различие между сохранением физического состояния и взаимодействием его с другим состоянием носит нефизический характер. Разделение функций было разработано в элементах архитектуры фон Неймана. И хотя оно присутствует почти в каждом из сделанных в наши дни компьютеров, изначально оно не должно было стать универсальной истиной. Фон Нейман писал о нем в своем известном отчете о программировании, исходя из довольно ограниченных возможностей ранних компьютеров