30

Ну, с Днём программиста!

Каждый 256-й день года в России отмечают День программиста. В этом году праздник выпадает на 13 сентября. Этот день выбран неслучайно: 256 это 2 в 8-й степени — количество чисел (от 0 до 255), которое можно записать в 8‑битном байте.

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

Доктор экономических наук, профессор кафедры инженерной кибернетики НИТУ МИСИС Сергей Сергеевич Мишуров рассказал, как менялась профессия программиста, как за последние десятилетия IT-сфера преобразила наш мир и насколько многое изменилось от первых компьютеров до современных AI-систем.

Hello, world

Обычно, заводя разговор об истоках IT индустрии, мы мысленно переносимся в 1950-е годы. Но надо признать, что корни программирования уходят куда глубже. Уже в XIX веке английский математик Ада Лавлейс составила алгоритм для аналитической машины Чарльза Бэббиджа. Она предложила такие понятия, как «цикл» и «рабочая ячейка», которые используются в современном программировании. В память об этом в ряде стран День программиста отмечают 10 декабря, в день рождения графини Лавлейс.

Портрет Ады Лавлейс за авторством Альфреда Шалона

Портрет Ады Лавлейс за авторством Альфреда Шалона

Заметной вехой, которая отмечает достижения в программировании можно считать первый Чемпионат мира по шахматам среди компьютерных программ (WCCC) в 1974 году. Его победителем стала программа Каисса, созданная советскими математиками и программистами. Кстати, участники этой выдающейся для того времени разработки формировали и систему подготовки математиков и программистов в Университете МИСИС.

Медаль за 1-е место

Медаль за 1-е место

Другой знаковый пример влияния математической теории (вернее сказать математической логики) – соответствие Карри–Ховарда, которое показало, что доказательство теоремы в логике можно рассматривать как программу, а само утверждение – как тип этой программы. Этот «фундамент программы как доказательства» лег в основу современных функциональных языков и доказательных систем (List, Agda, а также современных языков работы с базами знаний: OWL, SPARQL, SWRL и др.), доказав глубокую связь между математикой и программированием.

Выдающиеся математики Уильям Ховард и Хаскелл Карри

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

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

Искусственный интеллект и большие языковые модели

Со временем менялись инструменты работы программистов. Появились высокоуровневые языки (Algol, Fortran, Pascal, Java, Python и др.), компиляторы и виртуальные машины.

Появление больших языковых моделей на основе методов ИИ породила явление вайб-кодинга — автоматической генерации программного кода средствами естественного языка.

Новая архитектура моделей ИИ, которую назвали «трансформер» с так называемым механизмом “внимания” (self-attention) может учитывать большой контекст при генерации ответов. На основе этой архитектуры созданы современные чат-боты, способные вести диалог на естественном языке, а также генерировать не только текст, но изображения, музыку и видео. На основе этих технологий появились модели, способные автоматически создавать программный код.

Университет МИСИС активно готовит студентов к новым реалиям. Институт компьютерных наук выпускает специалистов по ИИ, машинному обучению и big data. Например, магистерская программа «ИИ и машинное обучение», реализуемая кафедрой инженерной кибернетики НИТУ МИСИС совместно с ПАО «Сбербанк», обучает современным методам анализа данных и нейросетям, а бакалаврская программа «Алгоритмы и методы наукоёмкого программного обеспечения» включает курсы по программированию робототехнических систем и современным инструментам DevOps. Студенты участвуют в хакатонах и соревнованиях по программированию с первого курса, активно осваивают как классические методы, так и инструменты ИИ. За 5 лет существования Хакатон-клуба в вузе студенты выиграли более 30 млн рублей.

Кибербезопасность

В области криптографии 1970-е годы ознаменовались открытием асимметричного шифрования. В 1976 году Уитфилд Диффи и Мартин Хеллман впервые описали идею открытого ключа шифрования, вскоре после чего Рон Ривест, Ади Шамир и Леонард Адлеман представили алгоритм RSA. Это изобретение позволило безопасно обмениваться данными в интернете, сделав возможными онлайн-банкинг, электронную торговлю и защищённые мессенджеры.

Принцип действия

Гомоморфное шифрование позволяет выполнять произвольные вычисления над зашифрованными данными без их расшифровки. То есть, можно «шифровать и не расшифровывать»: сторонний сервер обрабатывает информацию (например, выполнить поиск или фильтрацию спама) и выдаёт результат, оставаясь в неведении о содержимом. Хотя FHE (полностью гомоморфное шифрование) пока производит вычисления сравнительно медленно, ведущие IT‑компании активно работают над его ускорением.

Квантовые вычисления

Недавно квантовый процессор Sycamore от Google на 53 кубитах выполнил задачу случайной выборки цепей примерно за 200 секунд, тогда как суперкомпьютеру для этого потребовалось бы порядка 10 000 лет. Это позволяет полагать, что в обозримой перспективе можно увидеть реальные сферы, в которых квантовый компьютер может существенно превзойти классический.

Квантовый процессор Sycamore

Квантовый процессор Sycamore

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

Для программирования квантовых компьютеров создаются специальные языки и фреймворки. Ведущие разработчики ПО уже представляют соответствующие инструменты для разработки, такие как язык Q#, программные библиотеки — Qiskit, Cirq от IBM и Google. Эти инструменты позволяют разработчику описывать квантовые схемы привычными конструкциями: например, Qiskit, даёт абстракции для создания квантовых цепочек, симуляции и связи с реальными квантовыми процессорами. Эти инструменты позволяют обучать студентов технологиям квантового программирования уже сейчас.

Наука | Научпоп

9.2K поста82.6K подписчиков

Правила сообщества

Основные условия публикации

- Посты должны иметь отношение к науке, актуальным открытиям или жизни научного сообщества и содержать ссылки на авторитетный источник.

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

- Научные статьи должны сопровождаться описанием исследования, доступным на популярном уровне. Слишком профессиональный материал может быть отклонён.

- Видеоматериалы должны иметь описание.

- Названия должны отражать суть исследования.

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


- Посты-ответы также должны самостоятельно (без привязки к оригинальному посту) удовлетворять всем вышеперечисленным условиям.

Не принимаются к публикации

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

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

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


Наказывается баном

- Оскорбления, выраженные лично пользователю или категории пользователей.

- Попытки использовать сообщество для рекламы.

- Фальсификация фактов.

- Многократные попытки публикации материалов, не удовлетворяющих правилам.

- Троллинг, флейм.

- Нарушение правил сайта в целом.


Окончательное решение по соответствию поста или комментария правилам принимается модерацией сообщества. Просьбы о разбане и жалобы на модерацию принимает администратор сообщества. Жалобы на администратора принимает @SupportComunity и общество Пикабу.