На мой взгляд имеет смысл говорить о двух уровнях понимания математики:
Базовый, о котором я тут и говорю. Он позволяет понимать "математические вставки" в инженерных текстах (оценки сложности в книгах по алгоритмам, статистические оценки в книгах про оптимизацию запросов к БД, основы линейной алгебры в текстах про графику). Это - некоторый минимум, без которого будет сложновато.
Серьезный уровень математической культуры. Позволяет читать тексты по theoretical computer science (теория типов, математическая логика, численные методы).
Мой тезис заключался в том, что если базового уровня нет, то лучше его приобрести, и лишь после этого погружаться в программирование - иначе затрачиваемые усилия будут приносить не очень много отдачи. Но вовсе не обязательно иметь серьезный уровень, чтобы стать неплохим программистом.
Для того, чтобы понять "все слова" в формальном определении O или o (во всяком случае, в применении к функциям натурального аргумента, что и требуется обычно в теории алгоритмов) достаточно знания того, что такое функция, неравенство и натуральные числа. Это, в общем, проходят в классе 7-8. Чтобы вникнуть в суть определения, нужно иметь определенную математическую насмотренность - как и любая практика, математика должна немного "интериоризироваться", чтобы ее можно было применять без больших усилий. К 10-11 классу такая интериоризация и происходит - человек обычно уже умеет решать содержательные задачи (уравнения, неравенства) по указанным выше темам, отходя достаточно далеко от базовых определений. Поэтому я и выделил этот уровень в качестве базово необходимого.
На мой взгляд имеет смысл говорить о двух уровнях понимания математики:
Базовый, о котором я тут и говорю. Он позволяет понимать "математические вставки" в инженерных текстах (оценки сложности в книгах по алгоритмам, статистические оценки в книгах про оптимизацию запросов к БД, основы линейной алгебры в текстах про графику). Это - некоторый минимум, без которого будет сложновато.
Серьезный уровень математической культуры. Позволяет читать тексты по theoretical computer science (теория типов, математическая логика, численные методы).
Мой тезис заключался в том, что если базового уровня нет, то лучше его приобрести, и лишь после этого погружаться в программирование - иначе затрачиваемые усилия будут приносить не очень много отдачи. Но вовсе не обязательно иметь серьезный уровень, чтобы стать неплохим программистом.
Для того, чтобы понять "все слова" в формальном определении O или o (во всяком случае, в применении к функциям натурального аргумента, что и требуется обычно в теории алгоритмов) достаточно знания того, что такое функция, неравенство и натуральные числа. Это, в общем, проходят в классе 7-8. Чтобы вникнуть в суть определения, нужно иметь определенную математическую насмотренность - как и любая практика, математика должна немного "интериоризироваться", чтобы ее можно было применять без больших усилий. К 10-11 классу такая интериоризация и происходит - человек обычно уже умеет решать содержательные задачи (уравнения, неравенства) по указанным выше темам, отходя достаточно далеко от базовых определений. Поэтому я и выделил этот уровень в качестве базово необходимого.
К меня стойкое ощущение, что этот текст писала нейросеть...