вівторок, 12 квітня 2016 р.

Робота над колективним проектом

Сьогодні інформаційні технології впроваджуються практично до усіх галузей виробництва, науки, техніки, освіти, культури, мистецтва. У той же час зростають вимоги до існуючого та нового програмного забезпечення. Тому зараз, як і раніше, залишається актуальним питання підготовки фахівців у галузі комп'ютерних наук, зокрема програмістів. Рівень підготовки інженера програміста, з одного боку, повинен відповідати сучасним темпам розвитку ІТ-індустрії, з іншого – при прийомі на роботу керівники організацій і підприємств звертають увагу на такі якості як ініціативність, здатність до самоосвіти, уміння налагоджувати міжособистісний стосунок, впевненість у собі. Причому фахівець, що має досвід практичної роботи, має певні переваги. У цьому контексті для програміста важливе значення має досвід участі у розробці програмного забезпечення. Відомо, що великі програмні проекти, як правило, виконуються групою розробників.
Таким чином, сучасна система освіти повинна надати майбутньому інженеру-програмісту можливість отримати досвід колективної роботи над створенням програмного продукту.
Розуміючи необхідність формування і розвитку у майбутніх програмістів уміння працювати в колективі і працювати із замовником розробники документу «Рекомендації з викладання інформатики в університетах» радять включати до навчального плану завершальний проект, що включає складну задачу, проектування і розв'язок якої бере на себе невеликий студентський колектив. Цей проект найчастіше планується на останній рік навчання .» [1; 2; 3].
Російські педагоги також включають до навчального процесу створення проекту [4;5].
Аналіз чинних тимчасових державних стандартів і навчальних планів деяких ВНЗ нашої країни з напрямів підготовки „Комп'ютерні науки" і „Прикладна математика" показує, що навчання програмування майбутніх інженерів-програмістів обмежується часто вступним курсом з програмування та курсом із об'єктно-орієнтованих програмування. Як правило, на лабораторних практикумах цих дисциплін студенти розв'язують невеликі навчальні задачі, тексти програм яких не перевищують 150-200 рядків. В окремих випадках навчальних плани деяких ВНЗ у циклі вибіркових дисциплін містять курс з інженерії програмного забезпечення. На старших курсах державними стандартами передбачене виконання курсових, кваліфікаційних і дипломних робіт. Традиційно ці види робіт передбачають лише індивідуальну роботу студента. Відзначимо, що навчальні плани з підготовки фахівців у галузі комп'ютерних наук передбачають виробничу практику після третього курсу навчання. Звичайно, під час цієї практики студенти знайомляться з існуючим на підприємствах та установах програмним забезпеченням і його супроводом. До розробки програмного забезпечення студентів, як правило, не залучають з різних причин: короткотривалість практики; задачі, що вимагають вирішення, достатня складність для студентів тощо.
На основі здійсненого аналізу можна зробити висновки:
1 Існує розрив між невеликими навчальними задачами, що вирішуються на курсах з основ програмування і об'єктно-орієнтованого програмування та порівняно великим програмним проектом, що виконують студенти у рамках курсової роботи (і тим більше, кваліфікаційної чи дипломної).
2 При підготовці майбутніх інженерів-програмістів не передбачено такі види учбової діяльності, які були б спрямовані на формування у студентів умінь і навичок колективної роботи над спільним програмним продуктом.
Ми вважаємо, що в навчальний процес повинен бути включений таких видів навчальної діяльності, який допоможе студентам, майбутнім програмістам, здійснити перехід від написання невеликих програм до створення програмного продукту, що передбачає колективну роботу.
Розробка програмного забезпечення пов’язана з двома важливими і тісно взаємозалежними поняттями – ”проект” і ”команда”. Програмний проект - «це не тільки програми, але і вся супутня документація, а також конфігураційні дані, необхідні для коректної роботи програм» [6]. Розробка такого проекту передбачає побудову структури програмного продукту, визначення функцій кожного з розробників проекту і, нарешті, створення кінцевого продукту.
На нашу думку, перші кроки до набуття досвіду колективної розробки програмного забезпечення доцільно робити вже на молодших курсах навчання, а саме, при вивченні основ програмування [7]. Крім того, такий вид навчальної діяльності повинен спонукати студентів до самостійної творчої роботи і глибокого і усвідомленого вивчення курсу програмування, який є базовим у підготовці інженерів-програмістів.
Для перевірки зазначеної гіпотези в Черкаському національному університеті нами було проведено педагогічний експеримент. Студентам 1-го курсу спеціальності "Програмне забезпечення автоматизованих систем" на початку другого семестру вивчення курсу основ програмування було запропоновано об'єднатися в мікрогрупи по 2-4 особи для розробки власного програмного проекту і продемонструвати його після завершення вивчення дисципліни. Кожний з учасників проекту мав був виконати свою частину роботи, за яку ніс відповідальність перед групою. Причому всі рішення з проекту повинні були прийматися з відома всіх учасників групи. Завершений програмний продукт всі групи мали подати після закінчення вивчення курсу з основ програмування. Враховуючи важливість і складність цього виду навчальної діяльності, нами було відведено на це 20% балів за рейтингового системного оцінювання знань, умінь і навичок студентів.
Завдання пропонованих проектів були різноманітні: створити графічну модель руху планет навколо Сонця, електронний калейдоскоп, згенерувати датчик випадкових чисел для обчислення площ і об'ємів фігур методом Монте-Карло, побудувати дошку Гальтона для демонстрації законів теорії ймовірності, реалізувати гру «Хрестики-нуллики» на нескінченному полі тощо. Змістовна частина проектів мала творчу спрямованість. Мікрогрупа самостійно обирала проект. Допускалися і заохочувалися завдання, сформульовані самими студентами. Викладач, оцінюючи рівень складності проекту, лише коригував цей вибір, при цьому коригування мало виключно рекомендаційний характер. Виявилося, що з огляду на вікові особливості, майже кожна група, реалізовувала як проект власну версію якої є ”Pеверсі”, ”Snake”, ”Вантажник” тощо.
Кожен проект мав відповідати основним показникам якісного програмного забезпечення:
- Ефективність (швидкість виконання, обсяг необхідної пам'яті);
- зручність у використовуванні (наявність дружнього інтерфейсу і необхідної документації);
- надійність (безвідмовність, захищеність і безпека);
- зручність супроводу (можливість удосконалення і модифікації продукту при внесенні змін до проекту).
Розробка велася мовами Pascal або С у відповідних інтегрованих середовищах розробки фірми Borland.
Кожен проект спирався на методи побудови алгоритмів, що вивчаються, і передбачав розробку власного алгоритму. Розробка інтерфейсу користувача вимагала від студентів самостійного вивчення роботи з графікою, організації взаємодії з периферійними пристроями на низькому рівні.
Такий вид навчальної діяльності змінює традиційні ролі студента і викладача. При розробці колективного проекту студенти вільні у виборі мовних засобів, у розподілі обов'язків кожного члена групи, у виборі темпу роботи над проектом. Студентам надається можливість самостійно встановлювати послідовність засвоєння нових знань для реалізації власних ідей. Викладач займається тільки корекцією роботи студентів, спрямовуючи їх зусилля. При цьому дії викладача маютьрекомендаційний характер. Крім того, для надання консультації і контролю над процесом роботи викладач періодично призначав зустріч групі розробників. Така співпраця взаємовигідна: студенти вимушені регулярно працювати над проектом, а викладач може відстежувати процес розробки.

Немає коментарів:

Дописати коментар