diff --git a/Practice_2024/.gitkeep b/Practice_2024/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Docker/.gitkeep b/Practice_2024/Docker/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Docker/IMG/.gitkeep b/Practice_2024/Docker/IMG/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Docker/IMG/img.png b/Practice_2024/Docker/IMG/img.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfca401a2c92d450c1b3f69b391a7117998f3da6
Binary files /dev/null and b/Practice_2024/Docker/IMG/img.png differ
diff --git a/Practice_2024/Docker/IMG/img_1.png b/Practice_2024/Docker/IMG/img_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..eff41e0eff647866afa399eeccd4f6f595a69776
Binary files /dev/null and b/Practice_2024/Docker/IMG/img_1.png differ
diff --git a/Practice_2024/Docker/IMG/img_2.png b/Practice_2024/Docker/IMG/img_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..8fa67e03d9e25132d3bd9c530510973d916aad27
Binary files /dev/null and b/Practice_2024/Docker/IMG/img_2.png differ
diff --git a/Practice_2024/Docker/IMG/img_3.png b/Practice_2024/Docker/IMG/img_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..101837104c3022a01914c2ffdc93295bb4afacf8
Binary files /dev/null and b/Practice_2024/Docker/IMG/img_3.png differ
diff --git a/Practice_2024/Docker/IMG/img_4.png b/Practice_2024/Docker/IMG/img_4.png
new file mode 100644
index 0000000000000000000000000000000000000000..70f9bb9b1dabe2f3174c69b8398b1c62df8e66a1
Binary files /dev/null and b/Practice_2024/Docker/IMG/img_4.png differ
diff --git a/Practice_2024/Docker/IMG/img_5.png b/Practice_2024/Docker/IMG/img_5.png
new file mode 100644
index 0000000000000000000000000000000000000000..2095919acd4613916879e1dfb18179024b711883
Binary files /dev/null and b/Practice_2024/Docker/IMG/img_5.png differ
diff --git a/Practice_2024/Docker/IMG/img_6.png b/Practice_2024/Docker/IMG/img_6.png
new file mode 100644
index 0000000000000000000000000000000000000000..69c649f64a3b1dfad7a4b2dbc23ffe38b18b18df
Binary files /dev/null and b/Practice_2024/Docker/IMG/img_6.png differ
diff --git a/Practice_2024/Docker/README.md b/Practice_2024/Docker/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a2ab900af53d396cc92894f6dbbbb37f15ad5723
--- /dev/null
+++ b/Practice_2024/Docker/README.md
@@ -0,0 +1,165 @@
+# Postgres и pgAdmin. Запуск из контейнера
+
+![](img/img_5.png)
+
+[Docker](https://www.docker.com/) — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации, контейнеризатор приложений. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть развёрнут на любой Linux-системе с поддержкой контрольных групп в ядре, а также предоставляет набор команд для управления этими контейнерами. 
+
+Также Docker имеет пакетный менеджер [Docker Compose](https://docs.docker.com/compose/), позволяющий описывать и запускать многоконтейнерные приложения. Конфигурационные файлы Compose описываются на языке YAML.
+
+## Установка Docker и docker-compose
+
+Для установки Docker перейдите по [ссылке](https://docs.docker.com/get-docker/), выберите свою систему и следуйте инструкциям.
+
+Для установки docker-compose перейдите по [ссылке](https://docs.docker.com/compose/install/), выберите свою систему и следуйте инструкциям.
+
+Проверка успешной установки Docker
+```bash
+docker run hello-world
+```
+
+В выводе будет следующая информация:
+> Hello from Docker!
+> 
+> This message shows that your installation appears to be working correctly.
+
+И ещё несколько информационных строк.
+
+![](img/img_4.png)
+
+На некоторых системах возникает проблема, с постоянным использованием `sudo` для запуска Docker, для решения предлагаю использовать следующий [гайд](https://github.com/sindresorhus/guides/blob/main/docker-without-sudo.md).
+Важно не забыть перелогиниться, как сказано в пункте 2 гайда.
+
+### Некоторые полезные команды:
+
+Список контейнеров:
+```bash
+docker ps
+```
+Список контейнеров, включая остановленные:
+```bash
+docker ps -a
+```
+Список образов:
+```bash
+docker image ls
+```
+Остановка контейнера:
+```bash
+docker stop <container id>
+```
+Удаление остановленного контейнера:
+```bash
+docker rm <container id>
+```
+Удаление всех остановленных контейнеров:
+```bash
+docker rm $(docker ps --filter status=exited -q)
+```
+Список всех запущенных сетей:
+```bash
+docker network ls
+```
+Удаление сети:
+```bash
+docker network rm <network id>
+```
+Удаление всех неиспользуемых образов (используйте аккуратно!):
+```bash
+docker image prune
+```
+
+
+## Запуск контейнеров
+Для запуска будем использовать [compose-файл](docker-compose.yml).
+
+Из директории, в которой находится `docker-compose.yml` в терминал вводим команду:
+```bash
+docker-compose up -d
+```
+
+Остановка контейнера:
+```bash
+docker-compose down
+```
+
+Для подключения к БД можно использовать как минимум 3 различных варианта подключения, ниже подробнее о таких способах, для работы можно использовать любой наиболее подходящий вам по духу, будь то командная строка, веб-интерфейс или IDE.
+
+## Подключение к БД
+
+### Подключение к БД из pgAdmin
+
+ * В контейнере `pgadmin` используется 2 переменные среды для входа: адрес электронной почты и пароль. 
+ * ВАЖНО: эти значения для обучающих примеров, и их никогда не следует использовать в рабочей среде. Измените их соответствующим образом, когда это необходимо.
+ * pgAdmin — это веб-приложение, и его порт по умолчанию — 80; мы сопоставляем его с 8080 на нашем локальном хосте, чтобы избежать возможных конфликтов.
+
+email: `admin@admin.com` \
+password: `root`
+
+Необходимо открыть pgAdmin, перейдя на `localhost:8080` в веб-браузере. Используйте для входа тот же адрес электронной почты и пароль, которые вы использовали для запуска контейнера.
+
+![](img/img_3.png)
+
+Щелкните правой кнопкой мыши `Servers` на левой боковой панели и выберите `Create` > `Server`...
+
+![](img/img_2.png)
+
+В разделе `General` укажите имя сервера.
+
+![](img/img_1.png)
+
+В разделе `Connection` добавьте то же имя хоста(контейнера), порт, БД, пользователя и пароль, которые вы использовали при запуске контейнера.
+Если ничего не изменялось в compose-файле, значения будут следующие: \
+Host name/address (имя контейнера): `postgres_db` \
+Port: `5432` \
+Maintenance database: `pg_db` \
+User: `postgres` \
+Password: `postgres`
+
+![](img/img.png)
+
+Нажмите Сохранить. 
+
+Теперь у нас есть полнофункциональный графический менеджер SQL, который мы можем использовать для задач администрирования базы данных и выполнения запросов.
+
+![](img/img_6.png)
+
+### Подключение к БД из DataGrip или DBeaver
+
+ * В контейнере `postgres_db` используется 4 переменные среды для подключения к БД. 
+ * ВАЖНО: эти значения для обучающих примеров, и их никогда не следует использовать в рабочей среде. Измените их соответствующим образом, когда это необходимо.
+
+Для подключения из IDE  можно использовать:
+
+Host: `localhost` \
+Port: `5432` \
+Database: `pg_db` \
+User: `postgres` \
+Password: `postgres`
+
+### Подключение к БД из cli
+
+Для подключения из cli необходимо войти в запущенный контейнер с помощью команды: 
+```bash
+docker exec -ti postgres_db psql -d pg_db -U postgres
+```
+
+`-ti` - имя контейнера. \
+`-U` - имя пользователя. \
+`-d` - имя БД.
+
+После чего можем вводить SQL-запросы, например команда:
+```postgresql
+select version();
+```
+Вернёт информацию об используемой версии PostgreSQL
+
+А команда:
+```postgresql
+select * from pg_catalog.pg_tables;
+```
+Отобразит список всех таблиц, имеющихся в БД.
+
+Для выхода используйте команду:
+```postgresql
+exit;
+```
\ No newline at end of file
diff --git a/Practice_2024/Docker/docker-compose.yml b/Practice_2024/Docker/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3fe0d93f2e42ee497cebaccc6a908dd7db73a108
--- /dev/null
+++ b/Practice_2024/Docker/docker-compose.yml
@@ -0,0 +1,33 @@
+version: "3.8"
+
+services:
+  db:
+    image: postgres:15-alpine
+    container_name: "postgres_db"
+    environment:
+      - POSTGRES_USER=postgres
+      - POSTGRES_PASSWORD=postgres
+      - POSTGRES_DB=pg_db
+      - POSTGRES_PORT=5432
+      - PGDATA=/var/lib/postgresql/data/pgdata
+    volumes:
+      - postgres_data:/var/lib/postgresql/data/pgdata
+    ports:
+      - "5432:5432"
+    restart: always
+#    env_file: # для хранения secrets правильнее использовать .env-файл
+#      - .env
+  pgadmin:
+    image: dpage/pgadmin4
+    container_name: "pgadmin"
+    environment:
+      - PGADMIN_DEFAULT_EMAIL=admin@admin.com
+      - PGADMIN_DEFAULT_PASSWORD=root
+    volumes:
+      - data_pgadmin:/var/lib/pgadmin
+    ports:
+      - "8080:80"
+
+volumes:
+  postgres_data:
+  data_pgadmin:
diff --git a/Practice_2024/Seminars/.gitkeep b/Practice_2024/Seminars/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_1/.gitkeep b/Practice_2024/Seminars/Seminar_1/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_10/.gitkeep b/Practice_2024/Seminars/Seminar_10/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_2/.gitkeep b/Practice_2024/Seminars/Seminar_2/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_3/.gitkeep b/Practice_2024/Seminars/Seminar_3/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_4/.gitkeep b/Practice_2024/Seminars/Seminar_4/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_5/.gitkeep b/Practice_2024/Seminars/Seminar_5/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_6/.gitkeep b/Practice_2024/Seminars/Seminar_6/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_7/.gitkeep b/Practice_2024/Seminars/Seminar_7/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_8/.gitkeep b/Practice_2024/Seminars/Seminar_8/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Practice_2024/Seminars/Seminar_9/.gitkeep b/Practice_2024/Seminars/Seminar_9/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/homework/README.md b/homework/README.md
index d2e295c819c1bd58623419990975132bc7e44984..6b4c5bb0096daf5a01c60e15d43b9dcf553d1252 100644
--- a/homework/README.md
+++ b/homework/README.md
@@ -11,12 +11,12 @@
 
 |  № ДЗ  |  Вес  |                      Темы                      |          Дедлайн           | 
 |:------:|:-----:|:----------------------------------------------:|:--------------------------:|
-|   1    | `0.?` |                Простые запросы                 | ??-0?-2023 21:00 GMT+03:00 |
-|   2    | `0.?` | Агрегации, группировки, соединения, подзапросы | ??-0?-2023 21:00 GMT+03:00 |
-|   3    | `0.?` |                Оконные функции                 | ??-0?-2023 21:00 GMT+03:00 |
-|   4    | `0.?` |                   CTE, Views                   | ??-0?-2023 21:00 GMT+03:00 |
-|   5    | `0.?` |     Functions, Stored Procedures, Triggers     | ??-0?-2023 21:00 GMT+03:00 |
+|   1    | `0.?` |                Простые запросы                 | 14-04-2024 21:00 GMT+03:00 |
+|   2    | `0.?` | Агрегации, группировки, соединения, подзапросы | 14-04-2024 21:00 GMT+03:00 |
+|   3    | `0.?` |                Оконные функции                 | 14-04-2024 21:00 GMT+03:00 |
+|   4    | `0.?` |                   CTE, Views                   | 15-05-2024 21:00 GMT+03:00 |
+|   5    | `0.?` |     Functions, Stored Procedures, Triggers     | 15-05-2024 21:00 GMT+03:00 |
 
 Указанные дедлайны являются **жесткими**.
 
-P.S.: выполнять и отправлять решения на проверку можно с момента публикации.
\ No newline at end of file
+P.S.: выполнять и отправлять решения на проверку можно с момента публикации.