УДК 004.41/.42
А. А. КОНСТАНТИНОВ
ПРОЕКТО-ЦЕНТРИРОВАННОЕ ОБУЧЕНИЕ ПО НАПРАВЛЕНИЮ «ПРОГРАММНАЯ ИНЖЕНЕРИЯ»
Характеризуется проекто-центрированная модель обучения с точки зрения студентов УлГТУ, обучающихся по направлению бакалавриата «Программная инженерия». Материал основан на опыте реализации этой модели обучения кафедрой «Информационные системы» в рамках дисциплины «Численные методы» на факультете информационных систем и технологий (ФИСТ). Приведены результаты проектной работы и консолидированное мнение студента об эффективности модели.
Ключевые слова: академический программный продукт, профессиональный программный продукт, активное обучение, оценивание результатов обучения, вычислительные методы алгебры.
Введение
Мы живём в мире технологий и обилия цифровой информации, чтобы и дальше развивать информационные компьютерные технологии, нужны специалисты высокого профессионального уровня. Квалификация специалиста закладывается в стенах университета. Однако на первых порах студенты учатся лишь на сравнительно простых задачах, благодаря которым приобретают отдельные навыки и общие представления. Они выстраивают для себя базис для дальнейшего роста на первом году обучения. Если эта задача выполнена, то у них возникает естественное желание добиваться большего. Они ожидают, что второй и последующие годы учёбы будут отличаться переходом к более сложным учебным заданиям, которые дадут возможность усовершенствовать свои навыки, приблизить их к уровню, типичному для профессионалов.
Возникает вопрос: «Где получить опыт?» Естественно, ответ ожидают от преподавателей кафедры, понимающих устремления студентов.
Кафедра «Информационные системы» (ИС) в Ульяновском государственном техническом университете (УлГТУ) практикует свою собственную модель обучения.
Студенческий проект по направлению «Программная инженерия» - это разработка, реализация и всесторонние испытания «академического программного продукта» (АПП). Эта работа способствует развитию специалиста ещё на учебном уровне. Развитие навыков на этом уровне создаёт перспективы
© Константинов А. А., 2017
приближения к уровню, типичному для профессионального программного продукта (ППП).
Статья проф. И. В. Семушина [1] отвечает на вопросы ЧТО и КАК делают российские вузы в их стремлении доводить до зрелости вычислительные и программистские навыки у тех, кто осваивает программную инженерию.
Целью данной работы является обратная связь - консолидированный отклик студентов ФИСТ (кафедра ИС) как на указанную статью, так и на результат, какой они видят для себя от опоры на ту модель проекто-центрированного обучения (ПЦО), которая в статье И. В. Семушина представлена.
В данной публикации:
- раздел 1 интегрирует сведения о различных практиках обучения, основанных на проектах;
- раздел 2 характеризует то, какие выгоды получают студенты ФИСТ (кафедра ИС), благодаря практической реализации модели ПЦО в курсе «Численные методы»;
- заключительный раздел обобщает мнения студентов, обучающихся по направлению бакалавриата «Программная инженерия», о методике ПЦО в целом.
Материалом для данной работы послужил опыт создания реального академического программного продукта под названием «Стандартные алгоритмы ¿^-разложения со случайными или плохо обусловленными матрицами».
1. Проекто-центрированное обучение
Беспрецедентные возможности в науке, технологиях, инженерии и математике на пороге 21-го века поставили под вопрос классические
методики обучения типа «мел & разговор». Исследования в области образования затрагивают многие концепции, подходы и практики. Среди наиболее обсуждаемых тем в мире выделяются:
• Project-Based Learning, PjBL,or Project-Oriented Learning.
Ссылки на следующих авторов по этим темам известны по работе [1]: Heitmann 1996; Schachterle and Vinther 1996; Perrenet, Bouhuijs, and Smits 2000; Powell and Weenk 2000; Thomas 2000; Hadim' and Esche 2002; Liu and Hsiao 2002; Frank, Lavy, and Elata 2003; Mills and Treagust 2003; Semoushin, Tsyganova, and Ugarov 2003; Noguez and Espinosa 2004; Tien, Chu, and Liu 2004; Forcheri et al. 2007; McDermott, Nafalski, and Gol 0000; Lehmann et al. 2008; Bell 2010; Barge 2010; Davies, de Graaff, and Kolmos 2011; Sarper 2013; Stevens 2013; Wade 2013; Harrigan 2014; de Graaff, Farreras, and Arexolaleiba 2015.
Большое количество таких исследований свидетельствует о том, что в наши дни проекто-ориентированное обучение стало одним из наиболее активно внедряемых в практику образования студентов. Данную методику успешно вводят и применяют во многих высших учебных заведениях нашей страны и стран зарубежья.
Методика ПЦО ставит в центр обучения выполнение студентом сложного, трудоёмкого проекта. Именно такие проекты характерны для профессиональной деятельности. Перед студентом стоит задача продумать все требования, все детали проекта, оценить возможные варианты реализации и точно осуществить один из них, как на реальном проекте.
Обучение на основе проектов кардинально отличается от традиционных уроков, ориентированных на преподавателя. Теперь в центр процесса обучения ставят студента, рассчитывая, что он будет заинтересован, а значит, активен. Тщательно спланированное междисциплинарное обучение предполагает, что студент будет мыслить широко, не боясь выйти за рамки задания, а наоборот, будет привлекать к решению все те знания, которые он приобрёл ранее в предыдущих дисциплинах. Иначе полученные знания, будучи не востребованы ещё на «студенческой скамье», в студенческом проекте, не доживут до перспективы реальной жизни.
После выполнения проекта, студент получает большой опыт выполнения трудоёмких проектов.
По статистике 55% выпускников не могут решать реальные задачи. Данный подход к
обучению значительно снижает этот уровень.
Перейдём к практической составляющей модели проекто-центрированного обучения.
2. Практический опыт
Была поставлена задача: создать и отладить программу для решения системы линейных алгебраических уравнений вида Ax= f. Функционал программы описан ниже.
Данная задача выполнена в рамках лабораторной работы. Создано приложение, которое выполняет сложные вычисления с квадратными матрицами:
выполняет LU-разложения по компактной схеме Краута;
выполняет решение СЛАУ; находит определитель матрицы; находит обратную матрицу; вычисляет погрешность вектора решений и обратной матрицы;
выводит данные расчётов на форму, выполняет построение графиков и записывает все данные в файл.
Проект выполнен по дисциплине «Численные методы», на создание программы ушло примерно 24-36 часов. Для реализации проекта выбран язык программирования C#. Количество строк кода составило около 950-1000 строк, не считая комментариев и строк, созданных автоматически средой программирования Visual Studio. Программа содержит в себе несколько методов:
основной метод, который вызывает другие; метод генерирования матриц; метод LU разложения матриц, который состоит из таких, как метод поиска максимального элемента по строке и перестановки строк, метод факторизации, который выполняет все действия, согласно методу Краута;
метод решения СЛАУ, который состоит из методов нахождения промежуточных переменных и окончательных;
метод поиска обратной матрицы; метод вычисления определителя матрицы; метод подсчёта ошибок решения; метод подсчёта ошибок нахождения обратной матрицы;
метод вывода данных на форму.
Удобство программы определялось личными предпочтениями. Было сделано множество проверок и защит для удобства использования программы.
Производительность работы программы составляет:
до 0,001 секунды для матриц размерности от 2 до 20;
0,01 для матриц размерности от 20 до 40;
от 0,02 до 0,07 для матриц размерности от 40 до 60;
от 0,07 до 0,4 для матриц размерности от 60 до
80;
от 0,5 до 1,01 для матриц размерности от 80 до 100.
Для матриц большей размерности время, соответственно, больше.
В проекте обращено внимание на минимальное использование памяти компьютера. Разложение Ьи выполняется в том же массиве, где хранилась исходная матрица.
Интерфейс программы представлен двумя текстовыми полями, парой кнопок и переключателями. В программе можно ввести матрицу, сгенерировать случайным образом или выбрать одну из десяти плохо обусловленных матриц. Также имеется дополнительное текстовое поле для вывода подробных расчётов.
Отметим, что программа выводит очередную строку с данными по мере выполнения расчётов, каждый эксперимент выводится на новую строку.
При выборе опции «Случайная матрица» генерируются числа от -200 до +200. При выборе плохо обусловленной матрицы поле с десятью матрицами становится активным, и можно выбрать любую из десяти матриц.
Эти матрицы являются плохо обусловленными, так как для большинства из них расчёты производятся со значениями, близкими к нулю. Плохо обусловленная матрица близка к вырожденной, следовательно, её определитель близок к нулю. Для большинства матриц значение определителя уменьшается с невероятной скоростью, в зависимости от числа экспериментов, так что разрядности числа не хватает, чтобы представить его, и система его представляет как ноль.
В программе приходится задавать идеальный вектор решений, от него генерировать правую часть уравнений и затем сравнивать точное решение с тем, что получено программным путём. Соответственно, значения будут расходиться. В эту погрешность решения свой вклад вносит и неточность представления вещественных чисел в конечной разрядной сетке компьютера. Например, дробь 2/3 будет представлена как 0,666... 667. Если же говорить о вычислительном эксперименте в целом, то оказалось, что значения погрешностей расчёта вектора решений и обратной матрицы варьируются от Е-180 до Е+250. При этом малые погрешности типичны для режима «случайные матрицы», поскольку такие матрицы иногда оказываются хорошо обусловлены. Большие погрешности относятся только к режиму «плохо обусловленные матрицы» и вызываются тем, что определитель таких матриц и одновременно ведущие элементы
системы близки к нулю (в алгоритме возникает деление «почти на ноль»).
Программа должна быть сделана очень качественно и точно.
В результате выполнения данного проекта получен ценный опыт разработки крупных проектов. Данный лабораторный проект сравним по сложности с курсовым проектом. Хотя этот проект немного меньше по объёму, чем курсовой проект, но он значительно больше, чем обычная лабораторная работа.
Проекты такого типа требуют строгого распределения времени и точного следования запланированному графику выполнения заданий. Курсовые проекты, которые выполнялись до этого проекта, не требовали высокой точности вычислений, там акцент был сделан на функционал и удобство использования. Здесь же акцент в первую очередь сделан на точность расчётов, то есть на правильность реализации алгоритмов.
Заключение
Проекто-центрированный подход к обучению очень хорош с точки зрения практики [2, 3]. Данный метод желательно применять во всех высших учебных заведениях страны. Студенты получат большой опыт выполнения проектов, что положительно повлияет на профессиональную деятельность.
К сожалению, время, отводимое учебным планом бакалавриата на дисциплину «Численные методы», не позволяет в полной мере воспользоваться методикой ПЦО, детально разработанной в учебных пособиях [2] и [3]. У студентов нет возможности, ввиду ограничений времени, выполнить в течение семестра ещё два проекта по теме 2: «Положительно-определенные матрицы и разложения Холесско-го» и по теме 3: «Ортогональные преобразования». Поэтому широкие возможности этой методики остаются недоиспользованы.
В нашем случае данный подход имеет большое значение, так как практика очень важна для нашей специальности. Данный лабораторный проект положительно повлиял на навыки программирования, в особенности на качество написания программного кода. Математика - наука точная, если ошибка будет в программном коде, то она сразу обнаружится.
Мнение студентов третьего курса групп ПИбд и ИСЭпбд в большинстве случаев совпадает с мнением автора статьи. Студентам интересно выполнять проекты подобного типа.
Благодаря выполнению такого проекта, повышается правильность написания программного
кода, оттачивается навык экономии памяти компьютера, а также понижается риск допустить ошибку в будущем. Данный проект очень полезен с практической точки зрения, так как именно в процессе решения сложных и объёмных задач формируется навык программирования.
Благодарности. Автор считает своим приятным долгом поблагодарить коллег, кто внимательно прочитал данную статью, а также проф. Семушина И. В. как научного руководителя проекта и талантливого наставника.
10.1080/03043797.2017.1385594. To link to this article: http://dx.doi.org/10.1080/03043797.2017. 1385594.
2. Вычислительная линейная алгебра в проектах на C# : учебное пособие / И. В. Семушин, Ю. В. Цыганова, В. В. Воронина, В. В. Угаров, А. И. Афанасова, И. Н. Куличенко. -Ульяновск : УлГТУ, 2014. - 427 с.
3. Семушин И. В. Вычислительные методы алгебры и оценивания : учебное пособие. -Ульяновск : УлГТУ, 2011. - 366 с.
СПИСОК ЛИТЕРАТУРЫ
1. I. V. Semushin, J. V. Tsyganova, V. V. Ugarov & A. I. Afanasova (2017): The WHATs and HOWs of maturing computational and software engineering skills in Russian higher education institutions, European Journal of Engineering Education, DOI:
Константинов Андрей Алексеевич, студент группы ПИбд-31, кафедра «Информационные системы» УлГТУ.
Поступила 06.12.2017 г.