BSc: FTD.03 MFAI 2024 Python programming 2s

From IU
Jump to navigation Jump to search

Программирование на Python

Квалификация выпускника: бакалавр

Направление подготовки: 09.03.01 Информатика и вычислительная техника

Направленность (профиль) образовательной программы: Математические основы искусственного интеллекта

Программу разработал(а): Златанов Н.

1. Краткая характеристика дисциплины

Изучение дисциплины (модуля) «Программирование на Python» обеспечивает формирование и развитие компетенций обучающихся в области анализа данных, разработки алгоритмов, создания программных приложений, их применение для решения различных прикладных задач в рамках профессиональной деятельности.

2. Перечень планируемых результатов обучения

Целью освоения дисциплины (модуля) является формирование знаний, умений и навыков в рамках профессиональной деятельности, позволяющих успешно работать в избранной отрасли, а также обладать компетенциями, способствующими социальной мобильности, устойчивости и конкурентоспособности обучающегося в условиях современных рыночных отношений.

Задачами дисциплины являются введение в Python; рассмотрение управляющих конструкций и функций, а также работа с данными; изучение модулей и библиотек; рассмотрение объектно-ориентированного программирования; а также изучение практических проектов и применение Python.

Общая характеристика результата обучения по дисциплине

Знания: сформированы систематические знания предмета в полном объеме рабочей программы.

Умения: сформированы умения анализировать, сравнивать, классифицировать, обобщать, конкретизировать и систематизировать изученный материал, выделять в нем главное: устанавливать причинно-следственные связи.

Навыки (владения): сформировано владение навыками формулировки ответов; навыками свободного чтения результатов анализов и других исследований и решения ситуационных задач повышенной сложности; навыками работы с основной литературой и методами исследования большого объема, необходимого для практической деятельности; навыками соединения теоретических аспектов предмета с задачами практического значения.

3. Структура и содержание дисциплины

№ раздела Наименование раздела дисциплины (модуля) Содержание дисциплины (модуля) по темам
1. Модули и библиотеки Импортирование модулей и работа с библиотеками.

Стандартные библиотеки Python (math, datetime, os).

Установка и использование сторонних библиотек (например, NumPy, Pandas).

2. Объектно-ориентированное программирование (ООП) Основные понятия ООП (классы, объекты, наследование).

Создание и использование классов.

Инкапсуляция и полиморфизм.

3. Практические проекты и применение Python Разработка простых приложений (консольные и графические).

Основы работы с API и веб-разработки.

Введение в анализ данных и машинное обучение с использованием Python.

Итоговый проект: создание собственного приложения или анализа данных.

4. Методические и оценочные материалы

Задания для практических занятий:

п/п

Наименование раздела дисциплины (модуля) Перечень рассматриваемых тем (вопросов)
1. Модули и библиотеки Основы импорта модулей: стандартная библиотека Python.

Установка и использование сторонних библиотек с помощью pip.

Создание собственных модулей и пакетов.

Работа с числовыми данными: библиотека math.

Управление временем: библиотека datetime.

Файловая система и управление процессами: библиотека os.

Основы работы с NumPy: массивы и векторизация.

Анализ данных с помощью Pandas: работа с DataFrame.

Визуализация данных с использованием Matplotlib и Seaborn .

2. Объектно-ориентированное программирование (ООП) Создание и использование классов и объектов.

Наследование и полиморфизм.

Инкапсуляция и работа с приватными атрибутами.

Создание простого класса и работа с его атрибутами.

Методы класса и экземпляра.

Классы с параметризованными конструкторами.

Инкапсуляция: создание защищенных атрибутов и методов.

Полиморфизм через переопределение методов.

Полиморфизм через интерфейсы и абстрактные классы.

3. Практические проекты и применение Python Консольное приложение: Менеджер задач.

Графическое приложение: Калькулятор.

Консольное приложение: Игра «Угадай число».

Создание простого RESTful API с Flask.

Интеграция с внешним API: Получение данных о погоде.

Создание веб-приложения: Список задач с использованием Flask и SQLite.

Анализ и визуализация данных с использованием Pandas и Matplotlib.

Построение модели линейной регрессии для предсказания цен.

Классификация с использованием алгоритма K-ближайших соседей (KNN).

Создание веб-приложения для анализа и визуализации данных.

Разработка приложения для прогнозирования на основе машинного обучения.

Создание чат-бота для автоматизации задач.

Текущий контроль успеваемости обучающихся по дисциплине:

п/п

Наименование раздела дисциплины (модуля) Форма текущего контроля Материалы текущего контроля
1. Модули и библиотеки Устный / письменный опрос Устный / письменный опрос:

Как импортировать модуль в Python? Приведите примеры использования различных способов импорта (например, import, from ... import, import as).

Что такое пространство имен в контексте модулей? Как оно влияет на использование функций и переменных из импортированных модулей?

Как можно просмотреть список всех функций и переменных, доступных в импортированном модуле?

Как использовать библиотеку math для вычисления квадратного корня числа? Приведите пример кода.

Как получить текущую дату и время с помощью библиотеки datetime? Приведите пример кода, который выводит текущую дату в формате 'ГГГГ-ММ-ДД'.

Как использовать библиотеку os для работы с файловой системой? Приведите пример кода, который показывает, как создать новую директорию.

Как можно получить список файлов в определенной директории с помощью библиотеки os? Приведите пример кода.

Как установить стороннюю библиотеку с помощью pip? Приведите пример команды для установки библиотеки NumPy.

Как импортировать и использовать библиотеку Pandas для создания DataFrame? Приведите пример кода, который создает DataFrame из словаря.

Что такое NumPy массивы и как они отличаются от стандартных списков Python? Приведите пример создания NumPy массива и выполнения операций над ним.

Как можно использовать функции библиотеки Pandas для чтения данных из CSV файла? Приведите пример кода, который загружает данные из файла 'data.csv'.

Как можно проверить установленные библиотеки в текущем окружении Python? Приведите пример команды для получения списка установленных пакетов.

2. Объектно-ориентированное программирование (ООП) Устный / письменный опрос Устный / письменный опрос:

Что такое класс и объект в контексте объектно-ориентированного программирования? Приведите примеры на Python.

Объясните, что такое наследование. Как оно реализуется в Python? Приведите пример кода с использованием базового и производного класса.

Что такое инкапсуляция? Как она реализуется в Python, и какие модификаторы доступа существуют? Приведите примеры.

Что такое полиморфизм? Как он проявляется в Python? Приведите примеры использования полиморфизма с методами классов.

Как создать класс в Python? Приведите пример класса с атрибутами и методами.

Как создать объект класса и вызвать его методы? Приведите пример кода, демонстрирующий создание объекта и работу с его методами.

Как реализовать конструктор в классе? Объясните назначение метода __init__ и приведите пример его использования.

Что такое защищенные и приватные атрибуты в классах Python? Как они отличаются друг от друга? Приведите примеры.

Как можно переопределить методы в производном классе? Приведите пример, демонстрирующий переопределение метода родительского класса.

Как реализовать интерфейс с помощью абстрактных классов в Python? Приведите пример использования модуля abc.

Как реализовать метод __str__ в классе для кастомизации строкового представления объекта? Приведите пример кода.

Объясните, как использование ООП может улучшить структуру и читаемость кода по сравнению с процедурным программированием. Приведите примеры преимуществ ООП.

3. Практические проекты и применение Python Устный / письменный опрос Устный / письменный опрос:

Опишите процесс создания консольного приложения на Python. Какие основные компоненты должны быть включены? Приведите пример простого консольного приложения.

Как создать графический интерфейс пользователя (GUI) с помощью библиотеки Tkinter? Приведите пример кода, демонстрирующий создание простого окна с кнопкой.Что такое обработка событий в графических приложениях? Как это реализуется в Tkinter? Приведите пример.

Что такое API? Как использовать библиотеку requests для работы с RESTful API? Приведите пример запроса к публичному API.

Как реализовать простой веб-сервер на Python с использованием Flask? Приведите пример кода, демонстрирующий создание маршрута и обработку запросов.

Объясните, как обрабатывать данные, полученные из API, и сохранять их в формате JSON. Приведите пример кода.

Как загрузить и визуализировать данные с помощью библиотеки Pandas и Matplotlib? Приведите пример анализа простого набора данных.

Что такое машинное обучение? Опишите основные этапы процесса машинного обучения на примере задачи классификации.

Как использовать библиотеку Scikit-learn для создания модели машинного обучения? Приведите пример кода для обучения модели и её оценки.

Как выбрать тему для итогового проекта, связанного с анализом данных или разработкой приложения? Какие критерии следует учитывать при выборе темы?

Опишите этапы разработки итогового проекта: от идеи до реализации. Какие инструменты и технологии могут быть использованы на каждом этапе?

Как документировать и представлять итоговый проект? Какие элементы должны быть включены в презентацию или отчет о проекте?

Контрольные вопросы для подготовки к промежуточной аттестации:

п/п

Наименование раздела дисциплины (модуля) Наименование вопроса
1. Модули и библиотеки Как импортировать стандартные модули в Python? Приведите пример импорта модуля math и использования его функций.

Что такое библиотека datetime в Python? Объясните, как создать объект даты и времени, а также как использовать методы для форматирования и вычисления разницы между датами.

Опишите основные функции модуля os. Как можно использовать его для работы с файловой системой (например, для получения списка файлов в директории)?

Как установить стороннюю библиотеку с помощью pip? Приведите пример установки библиотеки NumPy и объясните, как проверить, что библиотека была успешно установлена.

Что такое библиотека Pandas и для чего она используется? Приведите пример создания DataFrame и выполнения базовых операций, таких как фильтрация данных.

Как импортировать только определенные функции из модуля? Приведите пример использования оператора from ... import ... для модуля math.

Какие преимущества предоставляет использование сторонних библиотек, таких как NumPy и Pandas, по сравнению со стандартными средствами Python для работы с массивами и таблицами данных?

Как можно использовать функции из стандартных библиотек и сторонних библиотек вместе? Приведите пример, где вы используете datetime для работы с временными метками в сочетании с Pandas для анализа данных.

2. Объектно-ориентированное программирование (ООП) Что такое класс и объект в Python? Объясните разницу между ними и приведите пример создания класса и его экземпляра.

Как реализуется наследование в Python? Приведите пример, где один класс наследует свойства и методы другого класса. Объясните, как можно переопределить методы родительского класса в дочернем классе.

Что такое инкапсуляция? Как в Python реализуются защищенные и приватные атрибуты класса? Приведите пример использования инкапсуляции в классе.

Объясните, что такое полиморфизм в контексте ООП. Приведите пример, где два разных класса имеют методы с одинаковым именем, но с разной реализацией.

Как можно создать метод класса и статический метод в Python? В чем разница между ними? Приведите примеры их использования.

Что такое конструктор в Python? Как он используется при создании объектов? Приведите пример класса с конструктором и его использованием.

Как можно реализовать абстрактные классы и методы в Python? Для чего они используются? Приведите пример абстрактного класса с одним абстрактным методом.

Как работают магические методы (или методы с двойным подчеркиванием) в Python? Приведите примеры использования таких методов, как __str__, __repr__ и __add__, для создания пользовательских классов.

3. Практические проекты и применение Python Опишите процесс разработки консольного приложения на Python. Какие основные шаги необходимо выполнить, начиная с идеи и заканчивая тестированием? Приведите пример простого консольного приложения.

Как создать графическое приложение на Python с использованием библиотеки Tkinter? Опишите основные компоненты интерфейса и приведите пример кода для создания простого окна с кнопкой.

Что такое API и как с ним работать в Python? Приведите пример использования библиотеки requests для получения данных из публичного API.

Объясните основные принципы веб-разработки с использованием Python. Какие фреймворки вы знаете и для чего они используются? Приведите пример простого веб-приложения с использованием Flask или Django.

Что такое анализ данных и какие библиотеки Python чаще всего используются для этой цели? Приведите пример простого анализа данных с использованием библиотеки Pandas.

Опишите основные этапы машинного обучения. Как можно использовать библиотеку Scikit-learn для создания и оценки модели? Приведите пример кода для обучения модели на простом наборе данных.

Как организовать итоговый проект по созданию собственного приложения или анализа данных? Какие ключевые аспекты необходимо учесть при планировании и реализации проекта?

Как провести визуализацию данных в Python? Какие библиотеки для этого используются и как создать простой график с помощью Matplotlib или Seaborn? Приведите пример кода для построения графика на основе набора данных.

Вопросы/Задания к промежуточной аттестации в устной/письменной форме:

Выберите правильный вариант огтвета.

1. Какой из следующих способов правильно импортирует только функцию sqrt из модуля math?

A) import math.sqrt

B) from math import sqrt

C) import math as sqrt

D) from math import *

Правильный ответ: B) from math import sqrt

2. Что выведет следующий код, если текущая дата — 2023-10-01?

352x89px

A) Текущую дату и время

B) Только текущую дату

C) Ошибка

D) Только текущее время

Правильный ответ: B) Только текущую дату

3. Какой метод модуля os используется для получения списка файлов в текущем каталоге?

A) os.listdir()

B) os.getfiles()

C) os.files()

D) os.dirlist()

Правильный ответ: A) os.listdir()

4. Какой из следующих методов библиотеки NumPy используется для создания массива из списка?

A) np.arraylist()

B) np.create_array()

C) np.array()

D) np.list_to_array()

Правильный ответ: C) np.array()

5. Какой код правильно устанавливает библиотеку Pandas с помощью pip?

A) pip install pandas

B) pip get pandas

C) install pandas

D) pip add pandas

Правильный ответ: A) pip install pandas

6. Какой результат будет получен при выполнении следующего кода?

260x72px

A) 120

B) 60

C) 30

D) Ошибка

Правильный ответ: A) 120

7. Какой метод модуля datetime позволяет получить разницу между двумя датами?

A) datetime.diff()

B) datetime.timedelta()

C) datetime.subtract()

D) datetime.compare()

Правильный ответ: B) datetime.timedelta()

8. Какой из следующих методов используется для чтения CSV файла с помощью библиотеки Pandas?

A) pd.read_csv_file()

B) pd.load_csv()

C) pd.read_csv()

D) pd.open_csv()

Правильный ответ: C) pd.read_csv()

9. Что произойдет при выполнении следующего кода?

275x80px

A) Создаст новую папку "new_folder"

B) Удалит папку "new_folder"

C) Ошибка, если папка уже существует

D) Ничего не произойдет

Правильный ответ: A) Создаст новую папку "new_folder"

10. Какой метод библиотеки NumPy позволяет вычислить среднее значение массива?

A) np.mean_value()

B) np.average()

C) np.median()

D) np.mean()

Правильный ответ: D) np.mean()

11. Какой из следующих вариантов кода правильно создает класс Animal с атрибутом species?

A) class Animal: def __init__(self, species): self.species = species

B) class Animal(species): pass

C) class Animal: species =

D) class Animal: def species(self): return species

Правильный ответ: A) class Animal: def __init__(self, species): self.species = species

12. Какой из следующих принципов ООП описывает возможность создания нового класса на основе существующего?

A) Инкапсуляция

B) Полиморфизм

C) Наследование

D) Абстракция

Правильный ответ: C) Наследование

13. Какой оператор используется для указания, что класс Dog наследует класс Animal?

A) extends

B) inherits

C) :

D) ->

Правильный ответ: C) :

14. Что произойдет, если в классе Car не будет метода __init__, а вы попытаетесь создать объект этого класса?

A) Ошибка

B) Объект будет создан с пустыми атрибутами

C) Будет вызван метод __init__ родительского класса

D) Объект будет создан с атрибутами по умолчанию

Правильный ответ: B) Объект будет создан с пустыми атрибутами

15. Какой из следующих методов позволяет скрыть атрибут класса от доступа извне?

A) Использование одного подчеркивания перед именем атрибута

B) Использование двух подчеркиваний перед именем атрибута

C) Использование ключевого слова private

D) Использование ключевого слова protected

Правильный ответ: B) Использование двух подчеркиваний перед именем атрибута

16. Какой из следующих примеров демонстрирует полиморфизм?

A) Разные классы имеют методы с одинаковыми именами

B) Один класс наследует другой

C) Класс имеет несколько конструкторов

D) Класс не имеет методов

Правильный ответ: A) Разные классы имеют методы с одинаковыми именами

17. Какой метод позволяет переопределить поведение оператора сложения для класса Vector?

A) __add__()

B) add()

C) plus()

D) __sum__()

Правильный ответ: A) __add__()

8. Какое значение будет у переменной x, если следующий код выполнен?

274x206px

A) 5

B) 10

C) 15

D) Ошибка

Правильный ответ: C) 15

19. Какой из следующих вариантов кода правильно создает абстрактный класс в Python?

A) class AbstractClass: pass

B) from abc import ABC, abstractmethod; class AbstractClass(ABC): @abstractmethod def method(self): pass

C) class AbstractClass: @abstractmethod def method(self): pass

D) class AbstractClass(abstract): pass

Правильный ответ: B) from abc import ABC, abstractmethod; class AbstractClass(ABC): @abstractmethod def method(self): pass

20. Что произойдет, если вы попытаетесь создать объект абстрактного класса без реализации всех его абстрактных методов?

A) Объект будет создан с ошибкой

B) Ошибка времени выполнения

C) Ошибка времени компиляции

D) Объект не может быть создан, будет вызвана ошибка

Правильный ответ: D) Объект не может быть создан, будет вызвана ошибка

21. Какой из следующих методов используется для отправки POST-запроса с помощью библиотеки requests в Python?

A) requests.get()

B) requests.post()

C) requests.send()

D) requests.put()

Правильный ответ: B) requests.post()

22. Какой модуль в Python позволяет создавать графические пользовательские интерфейсы (GUI)?

A) tkinter

B) matplotlib

C) flask

D) numpy

Правильный ответ: A) tkinter

23. Какой из следующих методов позволяет загружать данные из CSV-файла с помощью библиотеки pandas?

A) pd.load_csv()

B) pd.read_csv()

C) pd.import_csv()

D) pd.open_csv()

Правильный ответ: B) pd.read_csv()

24. Какой из следующих методов в библиотеке Flask используется для определения маршрута (route)?

A) @app.route()

B) @app.path()

C) @app.endpoint()

D) @app.url()

Правильный ответ: A) @app.route()

25. Что произойдет, если вы попытаетесь импортировать библиотеку numpy без ее установки?

A) Импорт пройдет успешно, но библиотека будет пустой

B) Будет вызвана ошибка импорта

C) Будет создана новая версия библиотеки

D) Импортируется стандартная библиотека

Правильный ответ: B) Будет вызвана ошибка импорта

26. Какой из следующих методов используется для создания модели линейной регрессии в библиотеке scikit-learn?

A) LinearRegression()

B) create_model()

C) build_regression()

D) fit_model()

Правильный ответ: A) LinearRegression()

27. Какой метод используется для визуализации данных в виде графика с использованием библиотеки matplotlib?

A) plt.show_graph()

B) plt.plot()

C) plt.visualize()

D) plt.draw()

Правильный ответ: B) plt.plot()

28. Какой из следующих форматов данных является наиболее распространенным для обмена данными между клиентом и сервером в веб-разработке?

A) XML

B) HTML

C) JSON

D) CSV

Правильный ответ: C) JSON

29. Что делает метод .fit() в контексте машинного обучения с использованием библиотеки scikit-learn?

A) Предсказывает значения на основе обученной модели

B) Обучает модель на предоставленных данных

C) Оценивает точность модели

D) Сохраняет модель на диск

Правильный ответ: B) Обучает модель на предоставленных данных

30. Какой из следующих шагов является первым при разработке собственного приложения на Python?

A) Написание кода

B) Определение требований и функционала

C) Тестирование приложения

D) Разработка документации

Правильный ответ: B) Определение требований и функционала

Перечень учебно-методического обеспечения дисциплины

Основная литература:

1. Сузи, Р. А. Язык программирования Python: учебное пособие / Р. А. Сузи. — 4-е изд. — Москва: Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2024. — 350 c. — Режим доступа: https://www.iprbookshop.ru/142310.html — ЭБС «IPRbooks».

Дополнительная литература:

1. Протодьяконов, А. В. Алгоритмы Data Science и их практическая реализация на Python: учебное пособие / А. В. Протодьяконов, П. А. Пылов, В. Е. Садовников. — Москва, Вологда: Инфра-Инженерия, 2022. — 392 c. — Режим доступа: https://www.iprbookshop.ru/124000.html — ЭБС «IPRbooks».

2. Raschka, S. Python Machine Learning. — Publishing House: Packt Publishing, 2016. — 430 p. — Режим доступа: https://portal.university.innopolis.ru/reading_hall/detail.php?ID=99020 — Электронный каталог научно-технической библиотеки АНО ВО «Университет Иннополис».

Методические указания для обучающихся по освоению дисциплины

Вид учебных занятий/деятельности Деятельность обучающегося
Лекция Написание конспекта лекций: кратко, схематично, последовательно фиксировать основные положения лекции, выводы, формулировки, обобщения; помечать важные мысли, выделять ключевые слова, термины. Обозначить вопросы, термины или другой материал, который вызывает трудности, пометить и попытаться найти ответ в рекомендуемой литературе. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия.
Практическое (семинарское) занятие При подготовке к семинарскому (практическому) занятию необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. На основании обработанной информации постараться сформировать собственное мнение по выносимой на обсуждение тематике. Обосновать его аргументами, сформировать список источников, подкрепляющих его.

Во время семинарского (практического) занятия активно участвовать в обсуждении вопросов, высказывать аргументированную точку зрения на проблемные вопросы. Приводить примеры из источниковой базы и научной и/или исследовательской литературы.

Устный/письменный опрос Отвечать, максимально полно, логично и структурировано, на поставленный вопрос. Основная цель – показать всю глубину знаний по конкретной теме или ее части.
Подготовка к промежуточной аттестации При подготовке к промежуточной аттестации необходимо проработать вопросы по темам, которые рекомендуются для самостоятельной подготовки. При возникновении затруднений с ответами следует ориентироваться на конспекты лекций, семинаров, рекомендуемую литературу, материалы электронных и информационных справочных ресурсов, статей.

Если тема вызывает затруднение, четко сформулировать проблемный вопрос и задать его преподавателю.

Практические (лабораторные) занятия Практические занятия предназначены прежде всего для разбора отдельных сложных положений, тренировки аналитических навыков, а также для развития коммуникационных навыков. Поэтому на практических занятиях необходимо участвовать в тех формах обсуждения материала, которые предлагает преподаватель: отвечать на вопросы преподавателя, дополнять ответы других студентов, приводить примеры, задавать вопросы другим выступающим, обсуждать вопросы и выполнять задания в группах. Работа на практических занятиях подразумевает домашнюю подготовку и активную умственную работу на самом занятии. Работа на практических занятиях в форме устного опроса заключается прежде всего в тренировке навыков применять теоретические положения к самому разнообразному материалу. В ходе практических занятий студенты работают в группах для обсуждения предлагаемых вопросов.
Самостоятельная работа Самостоятельная работа состоит из следующих частей: 1) чтение учебной, справочной, научной литературы; 2) повторение материала лекций; 3) составление планов устных выступлений; 4) подготовка видеопрезентации. При чтении учебной литературы нужно разграничивать для себя материал на отдельные проблемы, концепции, идеи. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
Дискуссия Публичное обсуждение спорного вопроса, проблемы. Каждая сторона должна оппонировать мнение собеседника, аргументируя свою позицию.
Контрольная работа При подготовке к контрольной работе необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме.
Тестирование (устное/письменное) При подготовке к тестированию необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме. Основная цель тестирования – показать уровень сформированности знаний по конкретной теме или ее части.
Индивидуальная работа При выполнение индивидуальной работы необходимо взять задание у преподавателя, ознакомиться с требованиями к выполнению работы, изучить поставленную проблему, найти решение проблемы. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. Оформить результаты работы.
Разработка отдельных частей кода Разработать часть кода, исходя из поставленной задачи и рекомендаций преподавателя. При выполнении работы рекомендуется обращаться к материалам лекций и семинарских (практических) занятий. Если возникают затруднения, необходимо проконсультироваться с преподавателем.
Выполнение домашних заданий и групповых проектов Для выполнения домашних заданий и групповых проектов необходимо получить формулировку задания от преподавателя и убедиться в понимании задания. При выполнение домашних заданий и групповых проектов необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме.