Колективний проект як активний метод навчання програмування (реферат)

Реферат на тему:

Колективний проект як активний метод навчання програмування

Сьогодні інформаційні технології впроваджуються практично до усіх
галузей виробництва, науки, техніки, освіти, культури, мистецтва. У той
же час зростають вимоги до існуючого та нового програмного забезпечення.
Тому зараз, як і раніше, залишається актуальним питання підготовки
фахівців у галузі комп’ютерних наук, зокрема програмістів. Рівень
підготовки інженера програміста, з одного боку, повинен відповідати
сучасним темпам розвитку ІТ-індустрії, з іншого – при прийомі на роботу
керівники організацій і підприємств звертають увагу на такі якості як
ініціативність, здатність до самоосвіти, уміння налагоджувати
міжособистісний стосунок, впевненість у собі. Причому фахівець, що має
досвід практичної роботи, має певні переваги. У цьому контексті для
програміста важливе значення має досвід участі у розробці програмного
забезпечення. Відомо, що великі програмні проекти, як правило,
виконуються групою розробників.

Таким чином, сучасна система освіти повинна надати майбутньому
інженеру-програмісту можливість отримати досвід колективної роботи над
створенням програмного продукту.

Розуміючи необхідність формування і розвитку у майбутніх програмістів
уміння працювати в колективі і працювати із замовником розробники
документу «Рекомендації з викладання інформатики в університетах» радять
включати до навчального плану завершальний проект, що включає складну
задачу, проектування і розв’язок якої бере на себе невеликий
студентський колектив. Цей проект найчастіше планується на останній рік
навчання…» [1; 2; 3].

Російські педагоги також включають до навчального процесу створення
проекту [4;5].

Аналіз чинних тимчасових державних стандартів і навчальних планів деяких
ВНЗ нашої країни з напрямів підготовки „Комп’ютерні науки» і „Прикладна
математика» показує, що навчання програмування майбутніх
інженерів-програмістів обмежується часто вступним курсом з програмування
та курсом із об’єктно-орієнтованих програмування. Як правило, на
лабораторних практикумах цих дисциплін студенти розв’язують невеликі
навчальні задачі, тексти програм яких не перевищують 150-200 рядків. В
окремих випадках навчальних плани деяких ВНЗ у циклі вибіркових
дисциплін містять курс з інженерії програмного забезпечення. На старших
курсах державними стандартами передбачене виконання курсових,
кваліфікаційних і дипломних робіт. Традиційно ці види робіт передбачають
лише індивідуальну роботу студента. Відзначимо, що навчальні плани з
підготовки фахівців у галузі комп’ютерних наук передбачають виробничу
практику після третього курсу навчання. Звичайно, під час цієї практики
студенти знайомляться з існуючим на підприємствах та установах
програмним забезпеченням і його супроводом. До розробки програмного
забезпечення студентів, як правило, не залучають з різних причин:
короткотривалість практики; задачі, що вимагають вирішення, достатня
складність для студентів тощо.

На основі здійсненого аналізу можна зробити висновки:

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

При підготовці майбутніх інженерів-програмістів не передбачено такі види
учбової діяльності, які були б спрямовані на формування у студентів
умінь і навичок колективної роботи над спільним програмним продуктом.

Ми вважаємо, що в навчальний процес повинен бути включений таких видів
навчальної діяльності, який допоможе студентам, майбутнім програмістам,
здійснити перехід від написання невеликих програм до створення
програмного продукту, що передбачає колективну роботу.

Розробка програмного забезпечення пов’язана з двома важливими і тісно
взаємозалежними поняттями – ”проект” і ”команда”. Програмний проект —
«це не тільки програми, але і вся супутня документація, а також
конфігураційні дані, необхідні для коректної роботи програм» [6].
Розробка такого проекту передбачає побудову структури програмного
продукту, визначення функцій кожного з розробників проекту і, нарешті,
створення кінцевого продукту.

На нашу думку, перші кроки до набуття досвіду колективної розробки
програмного забезпечення доцільно робити вже на молодших курсах
навчання, а саме, при вивченні основ програмування [7]. Крім того, такий
вид навчальної діяльності повинен спонукати студентів до самостійної
творчої роботи і глибокого і усвідомленого вивчення курсу програмування,
який є базовим у підготовці інженерів-програмістів.

Для перевірки зазначеної гіпотези в Черкаському національному
університеті нами було проведено педагогічний експеримент. Студентам
1-го курсу спеціальності «Програмне забезпечення автоматизованих систем»
на початку другого семестру вивчення курсу основ програмування було
запропоновано об’єднатися в мікрогрупи по 2-4 особи для розробки
власного програмного проекту і продемонструвати його після завершення
вивчення дисципліни. Кожний з учасників проекту мав був виконати свою
частину роботи, за яку ніс відповідальність перед групою. Причому всі
рішення з проекту повинні були прийматися з відома всіх учасників групи.
Завершений програмний продукт всі групи мали подати після закінчення
вивчення курсу з основ програмування. Враховуючи важливість і складність
цього виду навчальної діяльності, нами було відведено на це 20% балів за
рейтингового системного оцінювання знань, умінь і навичок студентів.

???????I?нь складності проекту, лише коригував цей вибір, при цьому
коригування мало виключно рекомендаційний характер. Виявилося, що з
огляду на вікові особливості, майже кожна група, реалізовувала як проект
власну версію якої є ”Pеверсі”, ”Snake”, ”Вантажник” тощо.

Кожен проект мав відповідати основним показникам якісного програмного
забезпечення:

Ефективність (швидкість виконання, обсяг необхідної пам’яті);

зручність у використовуванні (наявність дружнього інтерфейсу і
необхідної документації);

надійність (безвідмовність, захищеність і безпека);

— зручність супроводу (можливість удосконалення і модифікації продукту
при внесенні змін до проекту).

Розробка велася мовами Pascal або С у відповідних інтегрованих
середовищах розробки фірми Borland.

Кожен проект спирався на методи побудови алгоритмів, що вивчаються, і
передбачав розробку власного алгоритму. Розробка інтерфейсу користувача
вимагала від студентів самостійного вивчення роботи з графікою,
організації взаємодії з периферійними пристроями на низькому рівні.

Такий вид навчальної діяльності змінює традиційні ролі студента і
викладача. При розробці колективного проекту студенти вільні у виборі
мовних засобів, у розподілі обов’язків кожного члена групи, у виборі
темпу роботи над проектом. Студентам надається можливість самостійно
встановлювати послідовність засвоєння нових знань для реалізації власних
ідей. Викладач займається тільки корекцією роботи студентів, спрямовуючи
їх зусилля. При цьому дії викладача маютьрекомендаційний характер. Крім
того, для надання консультації і контролю над процесом роботи викладач
періодично призначав зустріч групі розробників. Така співпраця
взаємовигідна: студенти вимушені регулярно працювати над проектом, а
викладач може відстежувати процес розробки.

Демонстрація проектів та їх захист відбувалися публічно, тобто у
присутності всіх студентів. У студентів кожної мікрогрупи була
можливість порівняти власну розробку з розробками інших груп.

Оцінювання якості проектів і внесок кожного студента (розробника) до
проекту здійснювала комісія. Досвід показав , що до складу комісії,
окрім викладачів, які читають курс, доцільно включати «сильних»
студентів. Члени комісії повинні були оцінити проект в цілому:
актуальність теми, завершеність проекту, алгоритмічну складність, обсяг
виконаної роботи, якість призначеного для користувача інтерфейсу,
документування, надійність. Крім того, комісія визначала підсумковий бал
кожного з учасників колективної розробки на основі виконаної частини
проекту.

Участь студентів в роботі комісії такого типу дозволяє, на наш погляд,
формувати у них уміння оцінювати витрати часу на розробку програмного
забезпечення, розвивати критичне мислення, що, у свою чергу, необхідне у
професійній діяльності при плануванні масштабної розробки.

Важливим виявилося і те, що у студентів значно підвищився інтерес до
лекційного курсу і, відповідно, зріс рівень засвоєння теоретичного
матеріалу. Студенти на лекціях одержували відповіді на питання, які
цікавили їх: методи побудови ефективних алгоритмів, вибір найбільш
відповідних структур даних для вирішення задач, фундаментальні
алгоритми, про можливості обчислювальної системи, про різні алгоритми
розв’язування однієї й тієї ж задачі – швидких або економних з погляду
оперативної пам’яті.

У результаті проведеного експерименту можна стверджувати, що розробка
колективного проекту дозволяє підвищити пізнавальну активність
студентів, систематизувати і поглибити теоретичні знання, одержані з
курсу основ програмування.

Така форма навчання сприяє розвитку у студентів таких умінь і навичок:

уміння формувати свої думки та ідеї;

здійснення усних презентацій як у формальній, так і в неформальній
обставинах;

навички роботи із спеціальною літературою; розуміння і конструктивне
обговорення виступів інших; складання технічної документації (опис
структури проекту, алгоритмів).

Це виховує такі якості особистості:

розуміння відповідальності за виконання своєї частини проекту;

спілкування з колегами з професійної діяльності;

уміння працювати у колективі.

Одним з важливих результатів проведеного експерименту є перехід від
розв’язування невеликих навчальних задач до розробки закінченого,
об’ємного, програмного продукту з розвиненим інтерфейсом з одного боку,
і усвідомлення своїх можливостей з іншого боку є для студентів сильним
стимулом до подальшого навчання. Крім того, можливість роботи у
колективі над програмним проектом на ранніх етапах навчання формує у
студентів уявлення про майбутню професійну діяльність.

На підставі проведеного педагогічного дослідження можна зробити висновок
про доцільність доповнення робочої програми з основ програмування для
майбутніх інженерів-програмістів таким видом навчальної діяльності як
розробка колективного проекту.

ЛІТЕРАТУРА

Дейкстра Э. Заметки по структурному программированию // Дал У., Дейкстра
Э., Хоор К. Структурное программирование. – М.: Мир, 1975. – 247 с.

Цейтин Г.С. О профессионализме в программировании. – СПб.: ЛГУ,
математико-механический факультет, рукопись. – 1989.

Рекомендации по преподаванию информатики в университетах: Пер. с англ. –
СПб., 2002. – 372 с.

Лебедев Г.В., Кушниренко А.Г. Программирование для математиков: Учебное
пособие для вузов. – М.: Наука. Гл. ред. физ.-мат. лит., 1988. – 384 с.

ПолатЕ.С.ВопросыИнтернетобразования. HYPERLINK
«http://vio.fio.ru/vio_03/cd_site/Articles/art_l_l.htm»
http://vio.fio.ru/vio_03/cd_site/Articles/art_l_l.htm

Соммервилл И. Инженерия программного обеспечения. 6-е изд.: Пер. с англ.
– М: Издательский дом «Вильяме», 2002. – 624 с.

Гришко Л.В. Коллективный проект как практический прием обучения будущих
программистов // Информационные технологии в учебном процессе. Четвертый
международный научно-методический семинар. – Одесса, 2003. – С. 189-191.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *