瀏覽代碼

Merge branch 'master' of u23barsukova/ISRPO into master

ypv 2 月之前
父節點
當前提交
f8c8fb540a

+ 36 - 0
Лекции/AI/AI_Security_Barsukova.md

@@ -0,0 +1,36 @@
+# Безопасность и этика использования ИИ в разработке ПО
+
+Для новичка код, предложенный нейросетью, часто выглядит безупречно: он работает, проходит тесты и красиво оформлен. Однако **ИИ не понимает безопасность так, как её понимает инженер.** Нейросеть может предложить использовать устаревшую библиотеку с известной уязвимостью просто потому, что в её обучающих данных этот вариант встречался чаще всего.
+
+![](image4.png)
+
+Более того, существует **риск внедрения вредоносных инструкций:** если ИИ использует внешние данные для генерации кода, злоумышленник может подсунуть вредоносную инструкцию, которая заставит модель создать «черный ход» или отправить ваши пароли на сторонний сервер.
+
+## Юридический лабиринт
+
+Для опытных разработчиков **на первый план выходит вопрос авторского права.** ИИ обучался на миллионах строк открытого кода. Иногда он может выдать фрагмент, защищенный строгой лицензией, требующей раскрытия исходного кода всего вашего проекта. Если такой заимствованный код попадет в коммерческий продукт без проверки, это **может привести к многомиллионным судебным искам и потере интеллектуальной собственности.**
+
+## Согласование целей ИИ
+
+В центре этой темы стоит концепция AI Alignment (**согласование целей**). Это **настройка модели для соблюдения человеческих правил безопасности.** В контексте разработки это означает, что **модель должна не просто «решить задачу любой ценой», а сделать это безопасным, документированным и законным способом.** Согласованный ИИ откажется писать эксплойт или вредоносный скрипт, даже если его об этом очень настойчиво просить.
+
+![](image5.jpg)
+
+### Таблица 1. Сравнительная таблица рисков
+
+| Категория риска | Суть проблемы | Последствия для проекта |
+| -------- | -------- | -------- |
+| Технический | Использование устаревших или уязвимых методов. | Взлом системы, утечка данных. |
+| Юридический |	Нарушение лицензий. | Судебные иски, принудительное открытие кода. |
+| Логический | Галлюцинации ИИ: выдуманные функции и библиотеки. | Ошибки компиляции, нестабильная работа. |
+| Конфиденциальный | Попадание секретных ключей в историю запросов модели. | Доступ третьих лиц к серверам компании. |
+
+## Методы обеспечения безопасности проекта
+
+1. **Контроль разработчика:** человек остается финальным звеном проверки и несет юридическую ответственность за результат. 
+2. **Автоматизированное сканирование:** проверка предложенного кода специальными программами-анализаторами на наличие слабых мест. 
+3. **Конфиденциальность:** крупные компании уже внедряют «AI Policy», где прописано, какие данные можно отправлять в облако нейросети, а какие категорически нет.
+
+![](image6.jpg)
+
+Соблюдение этих норм **позволяет использовать скорость ИИ без ущерба для надежности проекта.** Умение проводить **аудит машинного кода становится обязательным навыком** профессионального разработчика.

+ 84 - 0
Лекции/AI/Chosing_an_AI_Barsukova.md

@@ -0,0 +1,84 @@
+# Новое поколение ИИ: Выбор мощных инструментов для разработки
+
+В современном программировании, когда проекты становятся большими и запутанными, **обычных возможностей нейросетей** **вроде GPT-4 уже может не хватать**. Для создания структуры целых приложений или поиска глубоких ошибок **программисты используют более серьезные инструменты — модели Claude 3.5 Sonnet и OpenAI o1**. Главное отличие этих решений в том, что они **могут удерживать в памяти очень много информации и умеют заранее планировать свои действия,** прежде чем написать первую строчку кода.
+
+![](image1.png)
+
+## Claude 3.5 Sonnet
+
+Модель Claude 3.5 Sonnet сегодня считается многими профессионалами лучшим «напарником» для программиста. Ее основное преимущество — это **огромное окно контекста,** которое можно сравнить с оперативной памятью компьютера. Если обычная нейросеть быстро «забывает» начало долгого разговора, то Claude **способна прочитать и понять десятки файлов вашего проекта одновременно.** Она **видит связи между разными частями программы** и редко предлагает решения, которые ломают логику в другом месте. **Код,** который пишет эта модель, **получается чистым и понятным,** что очень похоже на работу опытного человека.
+
+![](image3.png)
+
+## OpenAI o1
+
+Совершенно другой подход у модели OpenAI o1. Если Claude — это внимательный и быстрый исполнитель, то **o1 — это вдумчивый аналитик**. Это первая модель, которая **использует цепочку рассуждений**. Когда вы даете ей сложную задачу, она не отвечает мгновенно, а **берет паузу, чтобы «подумать»**. В это время нейросеть перебирает в уме разные варианты решения, проверяет их на ошибки и отсеивает те, что не работают. Это **делает её незаменимой при создании сложных математических алгоритмов,** где любая поспешность приводит к поломке всей программы.
+
+![](image2.png)
+
+### Таблица 1. Сравнение нейросетей
+
+| Параметр | GPT-4o | Claude 3.5 Sonnet | OpenAI o1 |
+| -------- | -------- | -------- | -------- |
+| Сильная сторона | Универсальность | Чтение больших проектов | Глубокая логика |
+| Стиль кода | Обычный | Чистый (как у профи) | Академически точный |
+| Режим работы | Чат | Работа с файлами | Режим «раздумий» |
+
+## Гибкость в подходе к разработке
+
+В итоге работа программиста сегодня — это умение правильно выбирать инструмент.** GPT-4 остается** хорошим **помощником для быстрых и простых вопросов.** **Claude 3.5 Sonnet** становится главным инструментом **при написании больших программ с нуля.** А модель **o1** выступает в роли эксперта, которого зовут **для решения самых запутанных и тяжелых задач.** Понимание этих различий помогает разработчику экономить время и создавать надежные программы.
+
+## Практическое сравнение реализации (C# / Java)
+
+Ниже представлен алгоритм расчета вклада с ежемесячным пополнением.
+
+### Вариант Claude 3.5 Sonnet
+Claude использует понятные имена переменных и соблюдает принятый стиль кодирования.
+```
+public static decimal CalculateSavings(decimal initialSum, decimal monthlyAdd, double annualRate, int years)
+{
+    // Claude выбирает decimal для точности в деньгах и использует цикл для наглядности
+    decimal monthlyRate = (decimal)annualRate / 12 / 100;
+    int months = years * 12;
+    decimal total = initialSum;
+
+    for (int i = 0; i < months; i++)
+    {
+        total = (total + monthlyAdd) * (1 + monthlyRate);
+    }
+
+    return Math.Round(total, 2);
+}
+```
+
+### Вариант OpenAI o1
+Вместо цикла o1 предлагает использовать формулу сложных процентов (аннуитета), что работает мгновенно даже при расчетах на 50–100 лет.
+```
+public static double CalculateInvestmentO1(double p, double pmt, double r, int t)
+{
+    // o1 использует формулу вместо цикла, что эффективнее для больших периодов
+    double n = 12; // количество пополнений в году
+    double ratePerPeriod = r / n / 100;
+    double periods = n * t;
+
+    // Математическая формула накопления (Compound Interest + Annuity)
+    double futureValueP = p * Math.Pow(1 + ratePerPeriod, periods);
+    double futureValuePmt = pmt * (Math.Pow(1 + ratePerPeriod, periods) - 1) / ratePerPeriod;
+
+    return futureValueP + futureValuePmt;
+}
+```
+
+
+### Вариант GPT-4o
+Самый простой вариант, который легко переписать под любую задачу, но требующий проверки на «граничные случаи».
+```
+double money = 10000;
+double add = 1000;
+double rate = 0.1; // 10%
+for (int i = 0; i < 60; i++) // 5 лет
+{
+    money = (money + add) * (1 + rate / 12);
+}
+Console.WriteLine(money);
+```

二進制
Лекции/AI/image1.png


二進制
Лекции/AI/image2.png


二進制
Лекции/AI/image3.png


二進制
Лекции/AI/image4.png


二進制
Лекции/AI/image5.jpg


二進制
Лекции/AI/image6.jpg


+ 9 - 0
Лекции/AI/Вопросы_2_Барсукова.md

@@ -0,0 +1,9 @@
+Почему код от нейросети, который проходит все тесты, может быть опасен? Он может содержать скрытые уязвимости или использовать устаревшие библиотеки, так как ИИ не осознает безопасность.
+
+Какую юридическую угрозу несет использование сгенерированного кода в коммерческих продуктах? Риск нарушения авторских прав и лицензий. Если ИИ выдаст код под строгой лицензией, это может привести к судебным искам и требованию раскрыть весь исходный код проекта.
+
+Что такое согласование целей в контексте разработки? Это настройка модели так, чтобы она решала задачу безопасным и законным способом, отказываясь создавать вредоносные скрипты даже по прямой просьбе пользователя.
+
+Какие три основных метода обеспечения безопасности проекта при работе с ИИ указаны в тексте? Личный контроль разработчика, автоматическое сканирование кода анализаторами, соблюдение политики конфиденциальности.
+
+Какой навык, согласно тексту, становится обязательным для современного профессионального разработчика в эпоху ИИ? Умение проводить глубокий аудит машинного кода, чтобы находить ошибки и уязвимости, которые не заметила нейросеть.

+ 9 - 0
Лекции/AI/Вопросы_Барсукова.md

@@ -0,0 +1,9 @@
+В чем заключается главное отличие моделей Claude 3.5 Sonnet и OpenAI o1 от обычных нейросетей? Они способны удерживать в памяти большой объем информации и планировать действия перед написанием кода.
+
+Какое ключевое преимущество модели Claude 3.5 Sonnet выделяют профессионалы? Огромное окно контекста, позволяющее анализировать десятки файлов проекта одновременно без потери логических связей.
+
+Какую уникальную технологию использует OpenAI o1 для решения сложных задач? Модель использует цепочку рассуждений — берет паузу, чтобы перебрать варианты и проверить их на ошибки перед ответом.
+
+Для каких целей лучше всего подходит модель GPT-4? Она остается эффективным помощником для решения быстрых и простых вопросов.
+
+Какую модель из текста целесообразно выбрать для создания сложного математического алгоритма? Модель OpenAI o1, так как она выступает экспертом в самых запутанных задачах и академически точна.

+ 34 - 0
Лекции/Vibe_Coding/Control_Methods_Barsukova.md

@@ -0,0 +1,34 @@
+# Vibe-Coding: методы сохранения контроля над кодом
+
+Признание проблемы когнитивного разрыва — это первый шаг к надежной работе. Если раньше главной была быстрая выдача кода, то теперь **важны правила проверки**. Основная цель заключается в том, чтобы **нейросеть оставалась лишь инструментом**, а **полное понимание** того, как всё устроено, **сохранялось в голове человека**.
+
+![](image6.png)
+
+## Разделение на части
+
+Когда нейросеть пишет сотни строк за раз, легко пропустить ошибку. **Процесс разработки должен строиться на разделении задач** на мелкие шаги и работе над отдельными функциями вместо целых разделов. Если смысл кода **нельзя понять за полминуты** обычного просмотра, такой **кусок нужно дробить** на еще более простые детали. Это помогает избежать появления запутанных мест и **делает всю систему прозрачной.**
+
+![](image5.jpg)
+
+### Таблица 1. Примеры формулировки запросов к ИИ
+
+| Слабый подход (Вайб-кодинг) | Сильный подход (Контроль) |
+| :--- | :--- |
+| «Напиши систему регистрации пользователей с базой данных» | «Напиши функцию валидации пароля. Требования: минимум 8 символов, одна цифра» |
+| «Исправь ошибку в этом коде, он не работает» | «Найди причину ошибки в логике этого цикла. Объясни, почему текущий подход вызывает сбой» |
+| «Сделай дизайн главной страницы как у Apple» | «Создай структуру главного блока на Flexbox. Логику адаптивности вынеси в отдельные CSS-переменные» |
+
+## Тестирование
+
+В условиях работы с машиной автоматические проверки становятся главным способом убедиться в правильности программы. **Написание тестов должно опережать создание самого кода**, что ставит для ИИ четкие границы. Основной упор делается на проверку логики и поведения программы в необычных ситуациях. **Работа не считается законченной, пока реализация не станет полностью ясной человеку**, даже если все тесты пройдены успешно.
+
+## Объяснение смысла и разбор решений
+
+Ценность представляет не сам готовый текст программы, а **понимание его структуры.** Общение с нейросетью должно включать этап **объяснения выбранных способов решения и разбор альтернатив**. Важно фиксировать, почему был выбран конкретный путь. Проверка кода в этом случае направлена не на поиск опечаток, а на анализ того, **насколько правильно и логично связаны между собой все части программы**.
+
+## Метод ручной доработки
+
+Для сохранения навыков необходима практика регулярного ручного улучшения кода. **Переделка** важных узлов программы своими руками **помогает поддерживать живую связь с проектом и лучше понимать его устройство.** Строгий контроль позволяет убирать лишние и сложные связи, которые ИИ часто создает в избытке. Это значительно **снижает риск** того, что одна маленькая правка в будущем приведет к поломке всего проекта.
+
+Преодоление когнитивного разрыва требует смены способа мышления. Профессионализм сегодня — это **умение быть строгим критиком, который видит всю картину целиком.** **Будущее разработки за теми**, кто использует ИИ для ускорения рутины, но **оставляет за собой полную ответственность** за каждое принятое решение.
+

二進制
Лекции/Vibe_Coding/image5.jpg


二進制
Лекции/Vibe_Coding/image6.png


+ 9 - 0
Лекции/Vibe_Coding/Вопросы_2_Барсукова.md

@@ -0,0 +1,9 @@
+В чем заключается основная цель использования нейросети в разработке? Основная цель — чтобы нейросеть оставалась лишь инструментом, а полное понимание устройства системы сохранялось в голове человека.
+
+Что нужно сделать, если смысл кода невозможно понять за полминуты просмотра? Такой кусок кода необходимо дробить на еще более простые детали, чтобы избежать запутанных мест и сделать систему прозрачной.
+
+Какое правило последовательности действий важно соблюдать при тестировании? Написание автоматических тестов должно опережать создание самого кода, чтобы выставить для ИИ четкие границы.
+
+Что, помимо готового текста программы, представляет особую ценность? Ценность представляет понимание структуры программы, объяснение выбранных решений и разбор альтернативных путей.
+
+Для чего необходима регулярная практика ручной доработки кода? Она нужна для сохранения навыков, поддержания живой связи с проектом и удаления лишних сложных связей, которые ИИ создает в избытке.