УДК 004:378.147.88
Радковский С.А., Коваленко Г.В.
ИСПОЛЬЗОВАНИЕ ФРЕЙМВОРКА STREAMLIT ДЛЯ СОЗДАНИЯ ВИРТУАЛЬНЫХ ЛАБОРАТОРНЫХ РАБОТ В ВИДЕ ВЕБ-ПРИЛОЖЕНИЙ
Radkovsky S.A., Kovalenko G. V.
USING THE STREAMLIT FRAMEWORK TO CREATE VIRTUAL LABORATORY WORKS IN THE FORM OF WEB APPLICATIONS
Введение
Веб-приложения представляют собой один из наиболее удобных способов демонстрации результатов работы в области анализа и моделирования данных. Тем не менее, создание таких приложений требует определенного опыта в веб-разработке, что может отпугнуть некоторых разработчиков. Фреймворк Streamlit решает эту проблему, позволяя легко создавать приложения при знании Python. Он берет на себя сложные задачи по созданию и компоновке веб -элементов, позволяя разработчику сосредоточиться на данных и методах их обработки. Streamlit может
использоваться для разработки виртуальных лабораторных работ, особенно когда необходимо быстро развернуть прототипы или предоставить простые интерактивные интерфейсы для демонстрации данных и визуализаций.
Анализ последних исследований и публикаций
81хеатН1 имеет широкий круг применения, в том числе и для создания виртуальных лабораторных работ [1-4].
Однако у этого фреймворка есть как преимущества, так и недостатки.
Преимущества Streamlit
1. Простота и скорость разработки: Streamlit позволяет быстро создавать интерактивные веб -приложения без необходимости в сложном программировании фронтенда (HTML, CSS, JavaScript). Логику и интерфейс можно писать на Python, что упрощает процесс разработки, особенно для небольших команд.
2. Интерактивность и визуализация данных: Streamlit поддерживает мощные инструменты визуализации (например, Matplotlib и Plotly), что позволяет создавать интерактивные графики и визуализации, важные для образовательных целей.
3. Интеграция с библиотеками Python: Фреймворк легко интегрируется с популярными библиотеками для обработки данных и машинного обучения (NumPy, SciPy, Scikit-learn), что дает возможность создавать продвинутые модели.
4. Поддержка интерактивных виджетов: Streamlit позволяет добавлять кнопки, ползунки и поля ввода, что дает возможность пользователям экспериментировать с параметрами в реальном времени.
5. Бесплатное развертывание и хостинг: Streamlit предлагает возможности развертывания на своей
платформе Streamlit Cloud, что удобно для тестирования или использования небольшими группами студентов.
Недостатки Streamlit:
1. Ограниченная гибкость интерфейса: Streamlit не подходит для создания сложных многоуровневых пользовательских интерфейсов; его виджеты могут ограничивать возможности кастомизации.
2. Неоптимальность для крупных приложений: фреймворк лучше всего подходит для прототипов или небольших приложений; при масштабировании могут возникать проблемы с производительностью.
3. Отсутствие поддержки многопользовательского режима: Streamlit не поддерживает параллельную работу большого количества пользователей, что может быть ограничением для больших курсов.
4. Ограниченные возможности бэкенда: Streamlit не предназначен для выполнения длительных фоновых задач или сложной серверной логики.
Ограниченная интеграция с LMS и базами данных: для полноценной интеграции с образовательными платформами могут потребоваться дополнительные разработки.
В то же время существует значительное количество примеров применения Streamlit.
Цель работы_
Streamlit может быть отличным выбором для разработки прототипов виртуальных лабораторных работ и простых учебных приложений, особенно когда требуется быстрая разработка и базовая интерактивность. Например, его можно использовать для создания интерактивных демонстраций
физических процессов или визуализации данных.
Рассмотрим возможности
фреймворка Streamlit для создания интерактивного интерфейса, который позволяет пользователям
взаимодействовать с приложением в процессе выполнения лабораторных работ. Для этой цели необходимо разработать специальное приложение с модульной архитектурой, где каждый модуль выполняет конкретные функции и отвечает за различные этапы работы программы.
Таким образом, целью
исследования является, разработка приложения на базе фреймворка Б^еашШ моделирующего отдельные алгоритмы и модели функционирования электропитающей аппаратуры
применяемой в системах автоматики и телемеханики на железнодорожном транспорте.
Основная часть
Работа приложения начинается с основного модуля (./app.py), который отвечает за динамическую генерацию страниц и инициализацию параметров сессии. В этом модуле используются следующие функции:
page: принимает путь к файлу Python или функцию, которая служит источником данных для генерации страницы.
navigation: организует навигацию между страницами, определяя доступные разделы и управляя их отображением.
Элементы и виджеты,
определенные в основном файле, становятся общими для всех страниц, что упрощает создание согласованного интерфейса. Использование функций page и navigation позволяет эффективно организовывать многопользовательские приложения в Streamlit с четкой
навигацией между разделами. Однако есть некоторые ограничения:
1. Путь к файлу страницы должен быть относительным к основному модулю или находиться в папке pages/. Неправильный путь приведет к ошибке загрузки.
2. Набор доступных страниц может обновляться при каждом перезапуске приложения, что создает динамическую навигацию.
3. Вызов функции navigation возможен только один раз за выполнение приложения и должен осуществляться из основного файла.
4. Элементы и виджеты из основного файла доступны на всех страницах.
Модули приложения
В качестве аргументов функции page используются следующие модули:
1. Модуль авторизации (autorizatoin.py): получает от пользователя личные данные (ФИО и название группы) и сохраняет их в параметрах состояния сессии «session_state». Это позволяет вести журнал выполнения лабораторных работ для каждого студента, включая данные о ходе выполнения и результаты ответов на контрольные вопросы.
2. Модуль выбора лабораторной работы (lab_select.py): формирует список дисциплин и соответствующих лабораторных работ. Список дисциплин хранится в файле discipline.json, который представляет собой словарь с парами «наименование дисциплины» - «код дисциплины». Лабораторные работы формируются на основе вложенных каталогов с названиями вида «lab_NN» (где NN - номер лабораторной работы), расположенных по адресу./discipline_dir/{код дисциплины}/. Выбранные данные сохраняются в
параметрах состояния сессии
«sessюn_state».
3. Модуль визуализации
лабораторной работы (lab_visual.py):
становится доступным после выбора лабораторной работы в предыдущем модуле и выполняет следующие этапы:
Выводит теоретические сведения о лабораторной работе из файла ./discipline_dir/{код дисциплины}/1аЬ_^ N}/about_lab_{NN} .м.
Динамически импортирует модули из файлов типа ./discipline_dir/{код дисциплины}/lab_{NN}/lab_{NN}.py, которые содержат функции для визуализации и математической модели лабораторной установки. Эти функции обеспечивают вывод схем, изменение входных параметров, расчет
исследуемых значений, формирование графиков и сохранение результатов в журнале выполнения лабораторных работ (при наличии авторизации). Динамический импорт осуществляется с помощью пакета трогШЬ, что особенно актуально, когда имена модулей неизвестны до момента выполнения.
Выводит контрольные вопросы из файла./di sci pline_di г/ { код_дисциплины } /1 ab_{NN}/test_1ab_{NN}.txt и оценивает ответы пользователя, сохраняя результаты в журнале выполнения (при наличии авторизации).
Структура каталогов и файлов проекта представлена на рис. 1.
Рассмотрим работу программы на примере исследования нагрузочной характеристики однофазной мостовой схемы выпрямителя без сглаживающего фильтра.
Для моделирования работы указанной схемы выпрямителя определим основные факторы, которые оказывают влияние на его работу:
.{Корневой каталог приложения}/ I ^РР' Р¥
—Шттиш I—ЗшЛаыж
|--радев/
I—яитШшт I--
I—/аь ттШ
--сИзарИпесИг/
I—{Шдшжмты 1}
--1аЬ_01/
|--дШ$_1аЬ_01.М
|--lab_01.py
|--confjab_01.jsm
I--Г
I--pJtWk-Ol.pßg
--lab 02/
# Основной файл проекта
# Журнал выполнения лаб. работ
# Словарь дисциплин
# Каталог страниц проекта
# Модуль страницы авторизации
# Модуль страницы выбора лаб. работы
# Модуль страницы визуализации лаб. работы
# Кяшмж с тшш дшштош
# Каталог дисциплины № 1
# Ттртшше тЗтт
# Модуль шшшш и шшшййжшш шёш
# Файл конфигурации
#$Ш£ттржмтишржмм #0шяяяШшш1шйшттш
# ШтмяглШмтт§>№§жы№02
I I--1аЬ_Ш/
I —Шд дижшлиш 2}
I--Шд МШКШШ-N}
# Каталог с файлами лаб. работы № МЫ
# Каталог дисциплины № 2
# Каталог дисциплины № Ы
Рис. 1. Структура каталогов и файлов проекта
1. Тип нагрузки
Активная нагрузка: подключение активной нагрузки (например, резистора - см. рис. 2) приводит к работе выпрямителя с фиксированным уровнем
пропорционально этому току. Увеличение тока нагрузки ведет к снижению выходного напряжения из-за падения напряжения на внутренних сопротивлениях (сопротивление
тока, и выходное напряжение трансформатора и диодов).
Рис. 2. Схема однофазного мостового выпрямителя без сглаживающего фильтра
Индуктивная нагрузка: нагрузки с индуктивной составляющей (например, катушки) вызывают дополнительные потери и изменяют форму выходного тока. При увеличении индуктивности дросселя ток через диоды будет нарастать плавно, что может привести к уменьшению среднего выходного напряжения и увеличению пульсаций.
Емкостная нагрузка: при подключении емкостной нагрузки (например, конденсатора) выпрямитель может работать в режиме с прерывистыми токами, что также влияет на выходное напряжение и пульсации. С увеличением емкости конденсатора уменьшаются пульсации, но при этом может возникнуть разрывность тока
2. Изменение сопротивления нагрузки
Увеличение сопротивления
нагрузки приводит к уменьшению тока, что может вызвать увеличение выходного напряжения до
определенного предела. Однако при слишком высоком сопротивлении выпрямитель может перейти в режим холостого хода, где выходное напряжение будет близким к значению без нагрузки
3. Температура и другие внешние факторы
Изменения температуры
окружающей среды могут влиять на параметры диодов и трансформатора, что также сказывается на характеристиках выпрямителя.
Примем, что температура окружающей среды неизменна и к выпрямителю подключена активная нагрузка.
По второму закону Кирхгофа падение напряжения на нагрузке можно представить в виде выражения:
где йв - внутреннее сопротивление выпрямителя;
Е0х - выпрямленное напряжение при холостом ходе.
Ток нагрузки определяется из выражения:
(2)
Выпрямленное напряжение при холостом ходе определяется из выражения:
^Ох — ^о + + АЕХ + ДЬ^х
(3)
где падения напряжений на элементах схемы выпрямителя представлены как:
АЕГ - на активном сопротивлении трансформатора;
ДЕ,
на
реактивном
сопротивлении трансформатора;
Д£"всх - на диодах в схеме выпрямителя.
Внутренне сопротивление
выпрямителя определим по нагрузочной характеристике:
RB — ^
в д/0
(4)
и„ — Ei
0х
L • Ru
(1)
Нагрузочная характеристика
выпрямителя представляется в виде прямой линии и строится на основе двух ключевых точек:
1. Точка холостого хода: /0 = 0; Я0 = Я0х (выходное напряжение при отсутствии нагрузки);
2. Номинальная нагрузка: /0; £"0 (выходное напряжение при заданной нагрузке).
Для определения значений йв и Я0х необходимо выполнить частичный расчет элементов выпрямителя [3] (расчетом габаритов магнитопровода трансформатора в данном случае пренебрегаем).
Е
н
°В+°Е
Для расчета выпрямителя примем следующие исходные данные:
выпрямленное напряжение Е0 = 12 В; мощность выпрямителя Р0 = 120 Вт; напряжение на первичной обмотке трансформатора щ = 220 В;
частота на первичной обмотке трансформатора f = 50 Гц;
Начнем расчет с определения выпрямленного тока при заданных
значениях напряжения и мощности. Формула для расчета тока выглядит следующим образом:
Р0 120
/0 = — =-=10 А
0 £о 12
Для расчета выпрямителя примем исходные данные, которые
представлены в табл. 1.
Рекомендуемые значения ßm., 5, цтр, кс, к
Таблица 1
Марка стали Марка стали Марка стали Марка стали S, а мм2 ^тр А:м для проводов марок ПЭЛ, ПЭВ, ПЭТ
Э310 Э320 Э330 0,95 0,97 Э340 Э350 Э360 0,75 0,88 Э310 Э320 Э330 0,93 0,95 Э340 Э350 Э360 0,75 0,88
341 342 343 0,89 0.93 344 345 346 0.82 0.89 £ о 1Л = £ 0 о 4 = £ о 1Л = £ 0 о 4 =
Толщина листа или ленты 0,35 - 0.5 мм 0,05 - 0,1 мм 0,2 - 0,35 мм 0,05 - 0,1 мм
р 1 габ, ВА Индукция ßm, Тл
f = 50 Гц f = 400Гц
10 1,1 1,2 1,0 1,15 4,8 7,2 0,85 0,78 0,22
20 1,26 1,4 1,08 1,33 3,9 6 0,89 0,83 0,26
40 1,37 1,55 1,13 1,47 3,2 5 0,92 0,86 0,28
70 1,39 1,6 1,14 1,51 2,8 4,2 0,94 0,88 0,3
100 1,35 1,6 1,12 1,5 2,5 3,8 0,95 0,9 0,31
200 1,25 1,51 1,02 1,4 2 3,1 0,96 0,92 0,32
400 1,13 1,43 0,92 1,3 1,6 2,5 0,97 0,94 0,33
700 1,05 1,35 0,83 1,2 1,3 2,1 0,97 0,95 0,34
1000 1,0 1,3 0,78 1,15 1,2 1,8 0,97 0,95 0,35
2000 0,9 1,2 0,68 1,05 1,1 1,5 0,97 0,95 0,36
4000 0,8 1,1 0,58 0,95 1 1,5 0,97 0,95 0,36
7000 0,72 1,02 0,5 0,87 1 1,4 0,97 0,95 0,37
10000 0,68 0,97 0,45 0,82 1 1,4 0,97 0,95 0,37
Далее, ориентировочное значение активного сопротивления обмоток трансформатора, приведенное к фазе вторичной обмотки, можно определить с использованием следующего выражения:
'rt
к?
£0
4 IS-/-B;
Яп-/п
(5)
где - коэффициент для расчета сопротивления трансформатора,
который для выбранной схемы равен 5.2;
5 - количество стержней 5т -максимальная индукция в
трансформатора, несущих обмотки. В сердечнике, которая определяется по данном случае выбрана стержневая данным из таблицы 1 . конструкция сердечников Для определения значения 5т
трансформатора, где s=2; примем марку стали Э350 и вычислим
габаритную мощность трансформатора:
Рёаь~123Л.\Ея 1о = 1.23-1.1^12-10 = 162.3 ВА
Для полученной мощности из Подставляя полученные значения в
табл. 1 методом интерполяции находим формулу 5, получим: значение Вт= 1.55 Тл
12 4 2-50-1.55
П-,- « 5.2----— • I-= 0.085Ом
п 10 • 50 • 1.55 ^ 12 • 10
Ориентировочное значение вторичной обмотки, можно определить с
индуктивности рассеяния обмоток помощью следующего выражения: трансформатора, приведенное к фазе
« • 5 ——---, 1 (6)
где - коэффициент, используемый для Для выбранной схемы выпрямителя этот расчета сопротивления трансформатора. коэффициент равен 6.4-10-36.4-10-3.
12 1 « 6.4 • 10-3 • 2----— ■ = 0.18 • 10-3Гн
5 10 • 50 • 1.55 4/2-50-1.55
1210
Падение напряжения на активном определим из выражения: сопротивлении трансформатора
Д£г « /0 • гСг = 10 • 0.085 = 0.85 В
Падение напряжения на активном определим из выражения: сопротивлении трансформатора
Д£х « 2 • /0 • / • = 2 • 10 • 50 • 0.18 • 10-3 = 0.18 В
Так как в рассматриваемой схеме &Еесх = 2 • АЕе
выпрямителя ток нагрузки
одновременно распределяется между где АЕе - падение напряжения на одном двумя диодами, то общее падение диоде. напряжения на диодах составит:
Падение напряжения на диоде АЕв обычно составляет около 0.7 В для кремниевых диодов, но может варьироваться в зависимости от типа используемых диодов. В данном расчете примем АЕв = 0.7 В.
АЕвсХ = 2 • 0.7 = 1.4 В
Подставляя вычисленные значения в формулу 3, находим выпрямленное напряжение при холостом ходе:
'0х
При выборе типа диодов определяем:
— среднее значение тока через
диод
_ /0 _ 10 _ /ое = 2 = Т =5 А
— амплитуду обратного напряжения на диоде
иобр = 1.57 • Еон = 1.57 • 14.43 = 22.65 В
Рассчитанным значениям /0е и иобр удовлетворяют параметры диода Д224А, имеющие значения: 10вд = 10 А и иобрд = 50 В.
Параметры диода Д224А будем использовать для контроля допустимого тока через диод и вывода соответствующего предупреждения в
^ = 12 + 0.85 + 0.18 + 1.4 =14.44 В
программе виртуализации лабораторной работы.
Изложенную методику переведем в код на языке python, при этом функции расчета параметров выпрямителя calc_param() и результатов измерений calc_u_i_on_load(r_load) при изменении нагрузки представим как методы класса SinglePhaseBridgeRectifier (рис. 3.1 и 3.2).
Интерфейс программы приведен на рис. 4. Изменяя положение ползунка, отражающего текущее значение сопротивления нагрузки, программа автоматически выполняет пересчет значений тока и напряжения на нагрузке. При нажатии на кнопку «Добавить в таблицу измерений» текущие значения сохраняются в списке расчетных напряжений и токов i_u_array и отображаются на графике (рис. 5).
import streamlit as st import numpy as np
■
import matplotlib.pyplot as pit
6
class SinglePhaseBridgeRectifier:
В """ Класс описывающий работу однофазной мостовой схемы выпрямителя """
9 # заданные параметры
U_in = 22В U Напряжение первичной обмотки трансформатора, В 11 f = 5Э -"- частота питающей сети, Гц
ЕВ = 12 S Выпрямленное напряжение, В IH = 10 ft Среднее значение выпрямленного тока, Д dEv =0.7 ft Падение напряжения на вентиле (SuodeJ, В
15
16 # расчетные параметры
E0_h =В it выпрямленное напряжение при холостом ходе Rv = 0 - внутреннее сопротивление выпрямителя
i_u_array = np.array([]) tf список расчетных напряжений и токов при изменяющейся нагрузке
20
21 # описание шаблона типа банных таблицы нагрузочной характеристики
dtype = np.dtype([ 23 С'1н , А', 1floatlfi15,
2ii C'Uh, V, 1 flcatlt1)
25 ])
Рис. 3.1. Установка начальных параметров выпрямителя
33 # Расчет параметров мостовой схемы выпрямителя без фильтра
Рис. 3.2. Инициализация класса и фрагмент функции расчета параметров
выпрямителя
Ваш аккаунт
Иван
Лабораторные работы Показать список Текущая лабораторная работа 1аЬ_02
О Теоретические сведения О Исследование нагрузочной
характеристики О Контрольные вопросы
Исследование нагрузочной характеристики мостовой схемы выпрямителя без фильтра
ÄVD3
-,TPr
VD2A 2iVD4
1'. П..
Сопротивление нагрузки Ом
U„
2" / \ /\ ! \т/2 /Т \зТ/2 2Т
0 1
J \ / V \ ( \
3
V
0 и \j
1.26 —•
|н. А UH.V 10 12
Добавить в таблицу измерений
Рис. 4. Интерфейс программы
Рис. 5 Интерфейс программы
Выводы
В данной статье представлен подход к структурированию
программных модулей и данных для организации виртуализации
лабораторных работ с использованием фреймворка Streamlit. Приведена модель расчета параметров выпрямителя и реализация интерфейса лабораторной
Список литературы
1. Streamlit для создания интерактивных веб-приложений - URL https://nuancesprog.ru/p/12293/ (дата обращения 08.11.2024).
2. Галерея приложений, созданных с использованием Streamlit библиотеки. -URL https:// streamlit.io/gallery?utm_source =chatgpt.com (дата обращения 08.11.2024).
3. Как Streamlit упрощает процесс превращения скриптов Python в общедоступные веб-приложения - URL https://www.easiio.com/ru/easiio-streamlit-python/?utm_source=chatgpt. com (дата обращения 08.11.2024).
4. Радковский, С.А. Создание виртуальных лабораторных работ с использованием Python библиотеки Streamlit / С.А. Радковский, А.О. Диков // Сборник научных трудов Донецкого института железнодорожного транспорта. - 2023. - № 71. - С. 40-50. -ISSN 1993-5579.
5. Источники электропитания на полупроводниковых приборах. Проектирование и расчет / под ред. Додика С.Д., Гальперина Е.И. - Москва: Советское радио, 1969. - 448 с.
6. importlib - Реализация importURL http://grep.cs.msu.ru/python3. 8_RU/ di gitology.tech/docs/python_3/library/importli b.html (дата обращения 08.11.2024).
7. Define multipage apps with st.
работы. Модульная архитектура обеспечивает гибкость и легкость расширения приложения, функции page и navigation упрощают организацию навигации и доступа к страницам, а пакет importlib предоставляет функции для динамической загрузки и перезагрузки модулей выбранной лабораторной работы во время выполнения программы.
References
1. Streamlit для создания интерактивных веб -приложений - URL https://nuancesprog.ru/p/12293/ (date of access: 08.11.2024).
2. Gallery of applications created using the Streamlit library. - URL https://streamlit.io/gallery?utm_source=ch atgpt.com(date of access: 08.11.2024).
3. Как Streamlit упрощает процесс превращения скриптов Python в общедоступные веб-приложения - URL https://www.easiio.com/ru/easiio-streamlit-python/?utm_source=chatgpt.com (date of access: 08.11.2024).
4. Radkovsky, S.A. Creation of virtual laboratory works using Python library Streamlit / S.A. Radkovsky, A.O. Dikov // Collection of scientific papers Donetsk Railway Transport Institute. - 2023. - № 71. - Pp. 40-50. -ISSN 1993-5579.
5. Power supply sources on semiconductor devices. Design and calculation/ under red. Dodika S.D. Galperina E.I. - Moscow: Soviet radio, 1969. - 448 p.
6. importlib - Реализация import -URL http://grep.cs.msu.ru/python3.8_RU/ digitology.tech/docs/python_3/library/imp ortlib.html (date of access: 08.11.2024).
7. Define multipage apps with st.
Page and st.navigation - URL https://docs.streamlit.io/develop/api-reference/navigation/ st.page (дата
обращения 08.11.2024).
Аннотации:
В данной статье представлен опыт использования фреймворка Streamlit для разработки интерактивных веб-приложений с образовательной направленностью. Рассмотрены преимущества и недостатки использования Streamlit, его возможности и ограничения в контексте создания виртуальных лабораторных работ.
Ключевые слова: фреймворк Streamlit, виртуальные лабораторные работы,
интерактивные веб-приложения, python, динамическая генерация страниц, навигация,
Сведения об авторах
Радковский Сергей Александрович
Федеральное государственное бюджетное образовательное учреждение высшего образования «Донецкий институт железнодорожного транспорта» (ДОНИЖТ), кафедра «Автоматика, телемеханика, связь и вычислительная техника», кандидат технических наук, доцент e-mail: serj [email protected]
Коваленко Геннадий Владимирович
Федеральное государственное бюджетное образовательное учреждение высшего образования «Донецкий институт железнодорожного транспорта» (ДОНИЖТ), кафедра «Автоматика, телемеханика, связь и вычислительная техника», студент,
e-mail: [email protected]
Page and st.navigation- URL https://docs.streamlit.io/develop/api-reference/navigation/st.page (date of access: 08.11.2024).
модульная архитектура, importlib, streamlitcloud.
In this article, we present our experience of using the Streamlit framework for developing interactive web applications with educational focus. We consider the advantages and disadvantages of using Streamlit, its capabilities and limitations in the context of creating virtual laboratory works.
Keywords: Streamlit framework, virtual laboratory works, interactive web applications, Python, dynamic page generation, navigation, modular architecture, importlib, streamlit cloud
Information abouttheauthors
Radkovsky Segrey Alexandrovich
Federal State-Funded Educational Institution of Higher Education "Donetsk Railway Transport Institute" (DRTI), Department 'Automation, Telemechanics, Communications and Computer Engineering',
Candidate of Technical Sciences, Assistant Professor
e-mail: serj [email protected]
Kovalenko Gennady Vladimirovich
Federal State-Funded Educational Institution of Higher Education "Donetsk Railway Transport Institute" (DRTI), Department 'Automation, Telemechanics, Communications and Computer Engineering', Student
e-mail: [email protected]