Собираюсь завтра прочитать в г. Ломоносов небольшую лекцию "Программирование без математики".
В ней мы постараемся коротко и ясно показать, что такое 1) программа, 2) математика и 3) программирование без математики.
Начнём с программы.
1. Программа
Изобретатель программы, русский просветитель и петербуржец С.Н. Корса́ков, так описал своё изобретение:
Письменность стала первой главной основой общества. Программа станет второй главной основой общества и совершенной второй письменностью (1832, Корсаков).
Слова Корсакова сбылись наполовину - программа прочно заняла место "второй главной основы общества". Будущее программы - стать "совершенной второй письменностью". Не для себя, а для общества.
- Программа - это совершенная вторая письменность.
Программа всегда оставалась письменностью, как Золушка всегда оставалась собой: в своей комнате, на кухне, незнакомкой на балу и невестой на своей свадьбе с принцем.
Сейчас программа в третьем состоянии - незнакомка на балу. Вот и давайте с ней познакомимся.
Письменность - первая главная основа общества. Она позволила обществу накапливать и передавать знания самого разного вида, и обеспечила все современные блага.
Благодаря письменности мы живём в городах, ездим на машинах, покупаем еду и товары в магазинах, одеты не в звериные шкуры и собрались сегодня 23 января 2025 года в библиотеке им. Рубакина.
У письменность есть много прекрасных свойств, кроме одного - она никогда не была совершенной.
- Совершенство - это соединение слова и дела.
Когда всё, что можно сказать о каком-то предмете, оказывается выполнено, или совершено, - такая вещь называется "совершенной".
Письменность не соединяет слово и дело, поэтому не даёт совершенства.
Программа соединяет и даёт.
Распишем рождение совершенства по ступеням:
- Дело описывает речь. Речь - это слово.
- Речь отражается в расчёт. Каждая мысль - в своё выражение расчёта. Отражённый расчёт - это "втора", "второй голос", "двухголосье".
- Расчёт разбирается в столбцы узлов, записанные ямками. Ямки + столбцы = ямцы.
- Ямцы управляют работой умственной машиной.
- Умственная машина выполняют описанную умственную работу - обработку сведений. Слово превращается в дело.
Раньше совершение слова и совершенство письменности обеспечивал человек.
Теперь человеку стала помогать программа.
Давайте кратко рассмотрим пример самой первой программы, созданной Семёном Николаевичем Корсаковым в Петербурге в 1829-1834 годах - Гомеоскоп, или по-русски Знакозор.

Распишем рождение совершенства по ступеням:
- Дело описывает речь. Речь - это слово.
- Речь отражается в расчёт. Каждая мысль - в своё выражение расчёта. Отражённый расчёт - это "втора", "второй голос", "двухголосье".
- Расчёт разбирается в столбцы узлов, записанные ямками. Ямки + столбцы = ямцы.
- Ямцы управляют работой умственной машиной.
- Умственная машина выполняют описанную умственную работу - обработку сведений. Слово превращается в дело.
Раньше совершение слова и совершенство письменности обеспечивал человек.
Теперь человеку стала помогать программа.
Давайте кратко рассмотрим пример самой первой программы, созданной Семёном Николаевичем Корсаковым в Петербурге в 1829-1834 годах - Гомеоскоп, или по-русски Знакозор.
(продолжение - на лекции завтра, и здесь, но позже.)
Комментарии
Обязательно осветите тему использования ИИ в создании программ. Может оказаться, что скоро такого количества разных программистов и не понадобится.
ПС. Что то мне вспомнилась советский отдел бухгалтерии на предприятии - множества столов, женщин, счёты, папки дело.
Здравствуйте, я 1С. ФНС
Обязательно обдумайте использование ИИ в жизни. Может оказаться, что такого количества грамотных и не понадобится.
Здравствуйте из любой библиотеки ))
https://www.tadviser.ru/index.php/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F:%D0%9A%D0%B0%D0%BA_%D0%B8%D1%81%D0%BA%D1%83%D1%81%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D0%BB%D0%BB%D0%B5%D0%BA%D1%82_%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B0%D0%B5%D1%82_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D1%82%D1%8C_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
Это любопытный вопрос, но начнём мы с другого. ИИ - на десерт, или "заверните с собой".
Искуственный идиот регулярно выдаёт простые очевидные неправильные решения. В частности, предложенные ИИ решения хоть сколь-либо нетривиальных задач требуют на порядок больше усилий по рецензированию когда и тестированию решения, чем аналогичное решение, выданное человеком средней квалификации.
С приветом к вам, действующий инженер по разработке программного обеспечения.
1С, ведь, это не только бухгалтерия
Именно мой друг. Заменяет огромное количество работников. А много вещей делает самостоятельно даже без участия бухгалтера или начотдкадров или склад.
Главное в программировании - не написать программу, а отладить для конкретных условий применения.
Это - процесс, связанный с пробами и ошибками, с обучением пользователей и иногда с полным изменением постановки.
Тут и естественному интеллекту не так уж и просто, а ИИ просто не сможет уделить этому много времени.
Да и не понимает он теток, для которых пишется программа.
Программирование без математики и без выполнения программы на компьтере
Обычно в таких случаях программируют сразу голову слушателя.
А на какую аудиторию это рассчитано?
Совсем юных гуманитариев?
Им будет это интересно?
От 10 до 75. Ожидается равномерное распределение возрастов. Постараюсь соответствовать.
И Вам тоже вопрос: что такое математика?
Программа или алгоритм?
Насколько нас учили, в программе математики и нет никогда.
А зачем алгоритм?
Задача разделяется на мелкие блоки, пишутся ф-ии, потом все собирается.
Зачем алгоритм? )))
патамушта если ты не знаешь как решить поставленную перед тобой проблему, ты никогда не напишешь никакой программы.
Алгоритм - описание способа решения некоей проблемы. Ты можешь писать программу на каком нибудь языке или даже в машинных командах прямо "из головы". Это значит что алгоритм у тебя в голове уже есть.
А то что ты предъявил - это один из способов писания программ по алгоритмам, называется метод последовательных приближений или уточнений.
Согласен, скрипач не нужен, ибо:
задача сама себя разделяет, функции сами себя пишут... а алгоритм? а алгоритм в этой схеме на хер не нужен
Алгоритм можно составить только для типовой задачи.
час от часу... во-первых обратите внимание на мою толстую шутку юмора по поводу возвратной частицы "-ся"
во-вторых, что значит "можно"? то есть можно и не составлять? тогда зачем силы тратить?
и почему только для типовой? и в какой момент задача становится на столько "типовой", что удостаивается чести быть отмеченной алгоритмом?
Мы с Вами о каких-то разных алгоритмах разговариваем. Вы логику с совокупностью точно заданных правил решения некоторого класса задач или набора инструкций, описывающих порядок действий исполнителя для решения определённой задачи не путаете?
но позвольте, мы с глаголами ещё не разобрались, пока все ваши высказывания не аналитичны, я не могу ни соглашаться с ними не опровергать их, могу только поддерживать лёгкую светскую беседу
Зачот!
программа = логика
Полагаю, что программа это лишь перевод (в философском смысле) алгоритма в машинные коды.
Практически: программа в широком смысле - это пригодное для автоматического получения исполняемого кода представление алгоритма. Кстати, не обязательного непосредственно исполняемого "на железе", то есть именно машинных кодов. Примеры последнего - Java и Python: в обоих случаях исходные тексты вообще говоря преобразуются в некое промежуточное представление, которое уже исполняется виртуальной машиной. Хотя оба могут быть докомпилированы до машкодов.
Итого: при наличии компилятора и исходный текст - программа.
Я, в общем, именно про это и говорю!
У меня незаконченное высшее по программированию, и потом я занимался философскими аспектами перевода как «отображения отображений».даже статью нацарапал для «Вопросов философии».
Так что смиренно полагаю, что немного вопрос понимаю.
Да я буквально в целях терминологического уточнения: не в машинные коды. Или, как минимум - не непосредственно. Считайте, что докопался до столба.
Но я это делал исключительно из лучших побуждений, правда-правда!
Понял-понял!
Вы абсолютно правы!
Я потом перечитал-увидел, что неточно сформулировано, но уже поздно править было.
Математика в программировании нужна только при использовании каких-то утончённых алгоритмов. К примеру, гуманитарии успешно программируют на PHP, а выпускники колледжей пишут игры. По большому счёту для программирования не нужна высшая математика и, соответственно, высшее образование.
За исключением специфических программ специально для математиков и физиков. Например при полёте в космос главные математики.
Не только, написание простейшей игры в 3D, уже требует хотя бы базового знания. Формулы объемных фигур - шара, куба и тп не сможешь выразить для компьютера не применяя математику (готовые движки не в счет). В 2D проще, но и там даже простейшие расчеты никто не отменял.
В школьной программе же есть стереометрия
В школьной программе
Как преподающий предмет "Информатика" в учреждении среднего технического образования, и имея выборку только за последние полгода могу вам сказать следующее:
Поступающие дети даже в табличном редакторе не работали, и не знают что это такое. Это не говоря уже о том чтобы рассчитать сумму выручки при продажах за месяц (цена и количество известны) даже на листочке. Они просто тупо не могут подумать, как это рассчитать, то есть, какая должна быть формула (формула? а это еще что за НЁХ?). И это при том, что каждый ходит по одному разу в день магазин возле дома.
И это выпускники 9-х классов. И это - математика базового уровня.
Когда спрашиваешь их - а что вы делали на уроках информатики? Ее преподавать начинают сейчас, судя по учебникам, с третьего ТБМ класса! За 6 лет ведь можно чему-то научиться.
Они отвечают - нам в учебнике давали параграф, мы его переписывали.
У меня боооольшой вопрос к преподавателям, которые их обучали. Причем даже прошлый курс был более менее нормально подготовлен. В этом году вообще швах.
Слышал, что в России в 2024 при поступлении на средне-техническое образование был какой-то неимоверный конкурс и поэтому значительная часть поступила на платное.
Вращение фигур в трехмерном пространстве строится через перемножение матриц. Это линейная алгебра, подраздел высшей математики.
Матрицы 3х3, ну еще обратную матрицу нужно уметь считать. Вместо курса алгебры достаточно взять формулу из учебника. Наверное, еще формулы из аналитической геометрии могут понадобиться. Большинство выпускников вузов наверняка ничего из приведённого выше не помнят, да и самые сложные темы из школьной математики помнят только если их дрючили высшей математикой на младших курсах. Т.е. в любом случае понадобится лезть в учебник
Чтобы залезть в учебник, надо хотя бы знать, что оно там есть и как называется... Иначе придется, либо консультироваться со знающими людьми, либо перелопачивать все учебники начиная с 3 класса.
А то вон, автор статьи решил, что можно одной философией заменить все математические знания в программировании.
Напоминает мне другого философа, который требовал создать вместо нормальной физики - суверенную физику. Дугин - вроде бы.
ИМХО, у многих философов существует комплекс неполноценности перед реальной научной работой, который они сублимируют преувеличением необходимости знания философии
Технически матрица поворота-масштабирования-сдвига - это 4х4-матрица специального вида.
Нет, я не занимался ничем околоигродельным, а равно и программированием шейдеров уже более десяти лет.
Предполагаю, что речь шла о пользователях
графическихигровых движков: для них математика действительно не очень необходима. В конце концов, в движок заложена "вся" физика, так что он сам посчитает за пользователя и выдаст результат. Магия-с!Это вам не трассировка лучей в динамической сцене с движущимися в общем смысле слова объектами - низменной наукой пусть авторы движков морочатся!
Если область программирования не связана с обработкой сигналов, данных, распознаванием, трассировкой и многими другими интересными вещами...
Если речь о практике, а не научной работе, человек может сам что-то подучить и исполнить чужую идею не имея высшего образования. Я знаю такие примеры, причём не один. Это в научном программировании ты должен доказать, что твоя программа быстрее и точнее конкурентов, а для обычных заказчиков - работает и ладно.
Если "чужую идею", то это не программист, а кодер. Большая разница.
Например, отрисовка линии условного терминатора и зоны зари на картфоне в ГИС "Панорама" - это научная работа? А чтобы в высочайших приполярных областях это тоже работало?
Задача, на самом деле, элементарная для студента, знакомого с курсом аналитической геометрии. То есть буквально для закончившего 1 курс некоторых факультетов.
Как по Вашему мнению - возможно описать/создать алгоритмы коллективного поведения децентрализованной самоорганизующейся системы без использования математики и ее методов? ))) Часто в быту это называют "роевым интеллектом"...))) Я бы не стал так принижать ее роль в программировании.. )))
Конечно, можно. Сложность системы эмержентна и математикой обычно не описывается кроме простейших случаев, да и на практике нужно получить нужные феномены и численно охарактеризовать, а аналитическое описание невозможно и ненужно. А одиночные объекты из системы описываются школьной математикой вроде пороговых функций.
Грубо говоря, для описания взаимодействия двух биллиардных шаров достаточно школьного курса, а поведение большого числа шаров можно описывать натурфилософски (хотя есть теория биллиарда Синая)
математика в программировании не нужна. Математика нужна для решения задач и составления алгоритмов.
Писание программ по алгоритмам не предполагает математики.
на phpconf у Marcus`a спросили как они используют php в google. Он ответил, что у них есть страничка, через которую они пиццу заказывают, так вот она написана на php
Для
формошлепов,извините фронтендеров так-то и не надо. Бэкендеру неплохо уже представлять себе, хотя бы, что такое сложность алгоритма и как она прикидывается. Ну а программируя обработку данных нейросетями, вполне себе неплохо представлять и как это все работает и что такое все эти метрики. Нет, можно и без этого (и даже многие инфоцыгане в достоинство курсов по нейросетям своих это ставят), но это уже из области "техномагии" будет - не прошло такое заклинание, будем пробовать вот это. У меня старший параллельно изучает вышку и нейросети, вполне себе и производные и линейна алгебра нужны и понятно для чего. Это не касаясьВ принципе проблема есть при изучении высшей математики перед переходом к предметной области, нихрена бывает непонятно - нафига вот это вот все. Я вот помню в матане на первом курсе не понимал - ну нахрена раскладывать некую функцию в ряд Фурье, а пошла теория колебаний, да нелинейные системы с гармониками - и стало как-то проясняться
Да и понятие "программист" довольно изменилось. 20 лет назад приносят чемодан - АЦП 3-канальный по COM-порту с компом промышленным Husky 16 под MS-DOS общается, вот, дохнет комп, тыжпрограммист, перепиши пром.компа программу на КПК с Palm OS, а то через месяц - в поля, катодную защиту трубопроводов тестировать, а новый прибор стоит 10 000 ойро (ну вот так вот ТЗ было сформулировано). Ну, источник напряжения, тестер, программку для перехвата общения по COM-порту написал, протокол обмена расколол (Das ist unmoglich! писала наивная немчура из Weilekes GmbH
), API Palm OS изучил, книжку по катодной защите трубопроводов прочитал, в предметную область - въехал, программу написал по вечерам в свободное от работы время за $1000 и за месяц и, что характерно, работала несколько лет нормально в полях в тысячах км от цивилизации! Математики,правда, совсем малость была - как усреднять и выбросы отбрасывать, да переменное напряжение мерить. Интересно, как нынешние манагеры от программирования расписали бы эту задачу - какой коллектив и бюджет бы вышел 
Мне поздно,76. Похоже ИИ писал.
Страницы