1
0
Просмотр исходного кода

Merge branch 'master' of u20harchevn/ISRPO into master

ypv 5 дней назад
Родитель
Сommit
c866df182f

+ 142 - 0
Лекции/Gradle/gradle_Gutchanov.md

@@ -0,0 +1,142 @@
+## Что такое Gradle
+
+**Gradle** --- это современная система автоматизации сборки проектов.
+Проще говоря, это инструмент, который автоматически:
+
+-   компилирует код,
+-   подключает библиотеки,
+-   запускает тесты,
+-   собирает готовую программу или приложение.
+
+Gradle был создан компанией Gradle Inc. и впервые представлен в 2012
+году как более современная альтернатива старым системам сборки.
+
+------------------------------------------------------------------------
+
+## Зачем нужен Gradle
+
+Когда программист создает проект, ему нужно выполнять много технических
+действий:
+
+-   скачать зависимости (библиотеки),
+-   скомпилировать код,
+-   проверить проект на ошибки,
+-   собрать итоговый файл (.jar, .apk и др.).
+
+Gradle автоматизирует весь процесс.
+
+Пример команды:
+
+
+``` gradle
+    plugins {
+	id 'java'
+	}
+	dependencies {
+	implementation 'org.jetbrains.kotlin:kotlin-stdlib'
+	}
+```
+Gradle автоматически выполняет все необходимые действия.
+
+------------------------------------------------------------------------
+
+## Где используется Gradle
+
+Android-разработка:
+
+Gradle является официальной системой сборки для Android-приложений.
+
+Backend-разработка:
+
+Gradle используется для сборки серверных приложений на Java и Kotlin.
+
+Проекты на Kotlin и Java:
+
+Gradle активно используется вместе с современными инструментами
+разработки.
+
+------------------------------------------------------------------------
+
+## Как работает Gradle
+
+Gradle использует файл конфигурации:
+
+**build.gradle**
+
+Пример:
+
+``` gradle
+plugins {
+    id 'java'
+}
+
+dependencies {
+    implementation 'org.jetbrains.kotlin:kotlin-stdlib'
+}
+```
+
+Gradle читает этот файл и выполняет все указанные действия.
+
+------------------------------------------------------------------------
+
+## Преимущества Gradle
+
+### 1. Высокая скорость
+
+-   Инкрементальная сборка
+-   Кэширование
+
+### 2. Гибкость
+
+-   Использует Kotlin и Groovy
+-   Можно писать сложную логику
+
+### 3. Управление зависимостями
+
+-   Автоматически скачивает библиотеки
+
+### 4. Поддержка больших проектов
+
+-   Подходит для enterprise и многомодульных систем
+
+------------------------------------------------------------------------
+
+## Конкуренты Gradle
+
+Основные конкуренты:
+
+-   Apache Maven
+-   Apache Ant
+
+------------------------------------------------------------------------
+
+## Чем Gradle лучше Maven
+
+-   Быстрее сборка
+-   Более простой синтаксис
+-   Более гибкая настройка
+-   Меньше кода конфигурации
+
+------------------------------------------------------------------------
+
+## Чем Gradle лучше Ant
+
+-   Автоматическое управление зависимостями
+-   Более современный инструмент
+-   Проще использовать
+
+------------------------------------------------------------------------
+
+## Итог
+
+Gradle --- это мощный инструмент автоматизации сборки.
+
+Он позволяет:
+
+-   автоматически собирать проекты,
+-   управлять зависимостями,
+-   ускорять разработку,
+-   уменьшать количество ошибок.
+
+Gradle является современным стандартом сборки для Android, Java и Kotlin
+проектов.

+ 9 - 0
Лекции/Gradle/gradle_question.md

@@ -0,0 +1,9 @@
+Что такое Gradle?
+
+Для чего нужен Gradle?
+
+Как называется основной файл конфигурации Gradle?
+
+Где используется Gradle?
+
+Назовите одно преимущество Gradle.

+ 52 - 0
Лекции/Kotlin/Kotlin_Гучанов.md

@@ -0,0 +1,52 @@
+История создания: От внутренней боли к мировому господству
+
+История Kotlin — это не типичный рассказ о «лабораторном» языке. Это история о том, как инженеры решали собственные проблемы.
+
+- 2010 год: Команда JetBrains (создатели лучших инструментов для программистов) понимает, что писать огромные проекты на Java слишком долго и утомительно. Им нужен язык, который был бы лаконичнее Java, но полностью с ней совместим.
+    
+- Имя с карты: Язык назвали в честь острова Котлин в Финском заливе (недалеко от Кронштадта). Это был своего рода ответ Java, которая названа в честь острова Ява.
+    
+- 2017 год — Переломный момент: На конференции Google I/O Kotlin объявляют официальным языком разработки под Android. В зале стояли овации — это был редчайший случай, когда всё сообщество разработчиков единогласно поддержало выбор корпорации.
+    
+- Сегодня: Kotlin — это проект с открытым исходным кодом, который развивают тысячи людей по всему миру, а не только одна компания.
+    
+Кому и зачем нужен Kotlin: От смартфонов до Minecraft
+
+Многие думают, что Kotlin — это только про кнопки в телефоне. На самом деле его область применения огромна:
+
+1. Мобильные разработчики (Android & iOS)
+
+Для Android-разработчиков это «родной» язык. Но благодаря **Kotlin Multiplatform (KMP)**, теперь его учат и iOS-разработчики, чтобы не писать логику (работу с данными, авторизацию) дважды для разных систем.
+
+2. Backend-инженеры (Серверная часть)
+
+Крупные компании (Netflix, Uber, Сбер) переводят свои серверы на Kotlin. Почему? Потому что он работает на виртуальной машине Java (JVM), но позволяет писать код в 2-3 раза быстрее и с меньшим количеством багов.
+
+3. Game-разработчики и моддинг
+
+- Minecraft: Поскольку игра написана на Java, Kotlin стал идеальным инструментом для создания модов. Мододелы обожают его за то, что он позволяет превратить громоздкий код мода в короткие и понятные скрипты.
+    
+- Игровые движки: Существуют фреймворки (например, _LibGDX_ или _KorGE_), которые позволяют писать полноценные 2D и 3D игры полностью на Kotlin.
+    
+
+4. Data Scientists и Аналитики
+
+Kotlin постепенно заходит на территорию Python. Если вам нужно обрабатывать терабайты данных, строгая типизация Kotlin помогает избежать ошибок, которые в Python «вылетают» только через 5 часов работы программы.
+
+5. Студенты и новички
+
+Kotlin — отличный «первый язык». Он современный, он не дает совершать глупых ошибок (как C++) и сразу приучает к хорошему стилю программирования.
+
+Применение Kotlin в индустрии
+
+| Направление            | Что именно делают                                  | Главная «фишка» Kotlin для этой ниши                                                   |
+| ---------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------- |
+| **Android-разработка** | Создание любых приложений: от банков до соцсетей.  | Стандарт №1 от Google, полная поддержка всех системных функций.                        |
+| **Кроссплатформа**     | Одно приложение сразу для Android, iOS и Desktop.  | **Kotlin Multiplatform (KMP):** общий код для логики, нативный UI для каждой системы.  |
+| **Backend (Серверы)**  | Сложные системы сбора данных, микросервисы.        | Совместимость с Java-фреймворками (Spring) + легкие **Корутины** для высокой нагрузки. |
+| **Модинг игр**         | Создание модов для **Minecraft** и других JVM-игр. | Код мода становится в 2-3 раза короче и понятнее, чем на стандартной Java.             |
+| **Data Science**       | Математические вычисления, анализ графиков.        | Библиотека **KMath** и строгая типизация, защищающая от ошибок в расчетах.             |
+| **QA Automation**      | Написание автотестов для проверки программ.        | Удобный синтаксис (DSL), позволяющий писать тесты, которые читаются как обычный текст. |
+ Итог:
+
+Kotlin — это **швейцарский нож** в мире программирования. Если ты умеешь на нем писать, перед тобой открыты двери и в мобильную индустрию, и в разработку высоконагруженных банковских систем, и даже в создание игровых миров.

+ 9 - 0
Лекции/Kotlin/Вопросы_Гучанов

@@ -0,0 +1,9 @@
+1. Почему команда JetBrains решила создать язык Kotlin и какую проблему они хотели решить?
+
+2. Какое событие произошло в 2017 году на конференции Google I/O и почему оно стало переломным моментом для Kotlin?
+
+3. Что такое Kotlin Multiplatform (KMP) и какую проблему разработки он помогает решить?
+
+4. Почему Kotlin удобен для backend-разработки по сравнению с Java? Назовите минимум две причины.
+
+5. В каких областях, кроме Android-разработки, используется Kotlin? Назовите минимум три направления.

BIN
Лекции/TempleOS/HolyC.png


+ 256 - 0
Лекции/TempleOS/TempleOS_Gutchanov.md

@@ -0,0 +1,256 @@
+### Общая информация
+![Alt](TempleOS_logo.png)
+
+**TempleOS** — это уникальная операционная система, созданная программистом Терри А. Дэвис.  
+Разработка началась примерно в 2003 году и продолжалась более 10 лет. Первая публичная версия TempleOS появилась в 2013 году.
+
+TempleOS была написана полностью одним человеком без участия команды разработчиков, что делает её уникальным проектом в истории программирования.
+
+---
+
+### На чём написана TempleOS
+
+TempleOS написана на языке программирования **C** и специальном языке **HolyC**, который создал сам Терри Дэвис.
+
+HolyC — это язык, основанный на C, но адаптированный специально для TempleOS. Он используется для:
+
+- управления системой,
+    
+- создания программ,
+    
+- работы с графикой,
+    
+- разработки игр внутри системы.
+    
+
+![Alt](HolyC.png)
+Вся система, включая ядро, драйверы и программы, написана на этих языках.
+
+---
+
+### Как работает TempleOS
+
+TempleOS работает напрямую с оборудованием компьютера без использования других операционных систем.
+
+Она имеет:
+
+- собственное ядро,
+    
+- собственный загрузчик,
+    
+- собственную файловую систему,
+    
+- собственный компилятор.
+    
+
+Это означает, что TempleOS является полностью независимой операционной системой.
+
+TempleOS работает только в 64-битном режиме и запускается на компьютерах с процессорами архитектуры x86-64.
+
+---
+
+### Интерфейс TempleOS
+
+TempleOS имеет простой текстовый интерфейс:
+
+- чёрный фон,
+    
+- цветной текст,
+    
+- окно командной строки.
+    
+
+Также система поддерживает простую 2D-графику. Пользователь может рисовать изображения и создавать простые графические программы.
+
+---
+
+### Особенности TempleOS
+
+Главные особенности:
+
+- полностью написана одним человеком,
+    
+- содержит встроенный язык HolyC,
+    
+- имеет собственный компилятор,
+    
+- работает напрямую с оборудованием,
+    
+- не использует интернет и сетевые функции.
+    
+
+TempleOS занимает мало места и работает быстро благодаря простой структуре.
+
+---
+
+### Возможности TempleOS
+
+TempleOS позволяет:
+
+- писать и запускать программы,
+    
+- создавать простые игры,
+    
+- работать с файлами,
+    
+- изучать устройство операционной системы.
+    
+
+Система часто используется в образовательных целях для изучения принципов работы операционных систем.
+
+---
+
+### Историческое значение
+
+TempleOS является редким примером того, как один программист смог создать полноценную операционную систему с нуля.
+
+Этот проект показывает:
+
+- как работают операционные системы,
+    
+- как создаётся ядро системы,
+    
+- как программное обеспечение взаимодействует с оборудованием.
+    
+
+TempleOS стала известна среди программистов и энтузиастов операционных систем.
+
+---
+## Основные правила и ограничения TempleOS
+
+### 1. Отсутствие интернета и сетевых функций
+
+TempleOS **не поддерживает интернет, Wi-Fi или сеть вообще**.
+
+Причина:
+
+- упрощение системы,
+    
+- отсутствие угроз безопасности,
+    
+- полный контроль над системой.
+    
+
+В TempleOS нет:
+
+- браузера,
+    
+- сетевых драйверов,
+    
+- подключения к сети.
+    
+
+---
+
+### 2. Только один пользователь
+
+TempleOS рассчитана на **одного пользователя**.
+
+Нет:
+
+- учётных записей,
+    
+- паролей,
+    
+- системы прав доступа.
+    
+
+Вся система работает как один пользователь с полным доступом.
+
+---
+
+### 3. Отсутствие защиты памяти
+
+В TempleOS **нет разделения памяти и защиты процессов**.
+
+Это означает:
+
+- все программы имеют полный доступ ко всей памяти,
+    
+- нет ограничений между программами,
+    
+- система работает быстрее, но менее безопасна.
+    
+
+Это было сделано для максимальной простоты и скорости.
+
+---
+
+### 4. Работа только в Ring 0 (максимальный уровень доступа)
+
+Все программы работают в **Ring 0** — это самый высокий уровень доступа к процессору.
+
+В других системах (например Windows или Linux):
+
+- программы работают в ограниченном режиме,
+    
+- только ядро имеет полный доступ.
+    
+
+В TempleOS всё работает на максимальном уровне доступа.
+
+---
+
+### 5. Ограниченная графика: 640×480 и 16 цветов
+
+TempleOS использует фиксированное разрешение:
+
+- 640×480 пикселей
+    
+- 16 цветов
+    
+
+Это правило было установлено для:
+
+- простоты,
+    
+- стабильности,
+    
+- минимальной сложности системы.
+    
+
+---
+
+### 6. Отсутствие многозадачности в современном виде
+
+TempleOS использует **простую кооперативную многозадачность**.
+
+Это означает:
+
+- программы сами управляют своим выполнением,
+    
+- нет сложного планировщика задач.
+    
+
+Это делает систему проще.
+
+---
+
+### 7. Вся система распространяется как Public Domain
+
+TempleOS является **Public Domain**, то есть:
+
+- полностью бесплатна,
+    
+- не имеет лицензии,
+    
+- любой человек может использовать и изменять код.
+    
+
+---
+
+## Зачем были введены эти правила
+
+Главная цель этих правил:
+
+- сделать систему максимально простой,
+    
+- убрать сложные современные функции,
+    
+- создать понятную и быструю операционную систему,
+    
+- позволить изучать работу ОС без лишней сложности.
+  
+### Итог
+
+TempleOS — это операционная система, разработанная один человеком для одного человека с нуля на языках HolyC.

+ 14 - 0
Лекции/TempleOS/TempleOS_Questions.md

@@ -0,0 +1,14 @@
+Кто создал TempleOS?
+– Терри Айкхорн (Terry A. Davis).
+
+На какой операционной системе основан TempleOS?
+– TempleOS не основан на других ОС, это самостоятельная 64-битная операционная система.
+
+Какая основная цель TempleOS по замыслу создателя?
+– TempleOS создавался как «храм для общения с Богом», по словам Терри Айкхорна.
+
+На каком языке программирования пишутся программы для TempleOS?
+– На HolyC, специальном варианте языка C, разработанном для TempleOS.
+
+Какая уникальная особенность графического интерфейса TempleOS?
+– TempleOS использует воксельный и текстовый графический интерфейс с 16 цветами и без многозадачности, с прямым доступом к аппаратуре.

BIN
Лекции/TempleOS/TempleOS_logo.png


+ 132 - 0
Лекции/Vulkan/Vulkan_Gutchanov.md

@@ -0,0 +1,132 @@
+### Что такое Vulkan
+![Alt](Vulkan_logo.png)
+
+**Vulkan** — это современный графический API (интерфейс программирования), который используется для работы с графикой и видеокартой.
+
+Он позволяет программистам создавать:
+
+- игры,
+    
+- 3D-приложения,
+    
+- графические программы,
+    
+- виртуальную реальность.
+    
+
+Vulkan был разработан организацией Khronos Group и представлен в 2016 году.
+
+---
+
+### Зачем нужен Vulkan
+
+Когда создается игра или графическое приложение, программе нужно взаимодействовать с видеокартой.
+
+Vulkan помогает:
+
+- управлять видеокартой,
+    
+- ускорять работу графики,
+    
+- улучшать производительность,
+    
+- более эффективно использовать ресурсы компьютера.
+    
+
+---
+
+### Где используется Vulkan
+
+Vulkan применяется в разных областях:
+
+**1. Игры**  
+Многие современные игры используют Vulkan для высокой производительности.
+
+**2. Игровые движки**  
+Например, Unreal Engine и Unity поддерживают Vulkan.
+
+**3. Операционные системы**
+
+- Windows
+    
+- Linux
+    
+- Android
+    
+
+**4. Видеокарты**  
+Поддерживается видеокартами компаний NVIDIA и AMD.
+
+---
+
+### Как работает Vulkan
+
+Vulkan работает как посредник между:
+
+- программой
+    
+- и видеокартой
+    
+
+Он позволяет программисту напрямую управлять видеокартой, что делает работу быстрее и эффективнее.
+
+Программа отправляет команды через Vulkan, а видеокарта выполняет их.
+
+---
+
+### Преимущества Vulkan
+
+**1. Высокая производительность**  
+Vulkan работает быстрее, чем многие старые технологии.
+
+**2. Эффективное использование ресурсов**  
+Лучше использует процессор и видеокарту.
+
+**3. Кроссплатформенность**  
+Работает на разных операционных системах.
+
+**4. Современный стандарт**  
+Подходит для новых игр и приложений.
+
+---
+
+### Недостатки Vulkan
+
+- Сложнее в изучении
+    
+- Требует больше знаний программирования
+    
+- Более сложная настройка
+    
+
+---
+
+### Сравнение с другими API
+
+Главный конкурент Vulkan — DirectX, разработанный компанией Microsoft.
+
+Преимущества Vulkan:
+
+- работает на разных операционных системах,
+    
+- быстрее в некоторых случаях,
+    
+- более гибкий.
+    
+
+---
+
+### Итог
+
+Vulkan — это современный и мощный графический API.
+
+Он позволяет:
+
+- создавать быстрые игры,
+    
+- эффективно использовать видеокарту,
+    
+- улучшать производительность программ.
+    
+
+Vulkan является важной технологией для разработки современных игр и графических приложений.

BIN
Лекции/Vulkan/Vulkan_logo.png


+ 9 - 0
Лекции/Vulkan/Vulkan_questions.md

@@ -0,0 +1,9 @@
+Что такое Vulkan?
+
+Для чего нужен Vulkan?
+
+Кто разработал Vulkan?
+
+Где используется Vulkan?
+
+Назовите одного конкурента Vulkan.