ДонНТУ Портал магістрів

Реферат за темою випускної роботи

Зміст

Вступ

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

Проблема нашої середньої освіти в області специфічної підготовки для факультетів наших ВНЗ (згідно підведеної статистикою в журналі «Велика Перерва» за 2004 рік), орієнтованих на підготовку комп'ютерних інженерів і програмістів полягає в тому, що не розглядається варіант того, що переважна маса абітурієнтів на момент надходження не має первісної бази знань, на наявність якої орієнтована університетська програма. Розглянемо статистику: до випуску доходить всього близько 50% від початкового складу, близько 20% відраховується з різних причин, і що залишилися 30% залишаються на повторний курс, у наслідку складаючи певний відсоток випускників. Здавалося б цифри прийнятні, але вони такі тільки в процентному співвідношенні (згадаймо потоки, від яких залишалося в результаті відрахувань 3-4 людини, історія сумна).

Задамося питанням, чому це так? Відповідь з'являється тут же - студенти не змогли розібратися у всіх тонкощах-превратностях всієї специфіки напряму комп'ютерної інженерії, зокрема в порушуваної області. Звернемо увагу, що не у всіх школах (початковий етап становлення всіх абітурієнтів) є кваліфікований педагог, здатний розповісти про всі достоїнства і тонкощах програмування хоча б на етапі написання найпростіших програм з розряду «Hello World» або «1 +1 = 2», і вже це відіграє значну роль в відсівання потенційних абітурієнтів для таких факультетів як КНТ і КИТА. Викладачі цих факультетів розраховують на наявність у студентів цих базових знань, які повинні бути закладені в їх свідомість в процесі шкільного навчання, проте на ділі ми маємо всього пару середніх шкіл (м. Донецьк), які ці знання дають, решта ж в кращому випадку показують своїм учням такі програми як «Черепашка» (малювання з здавна координат пера), «Алгол» і основи веб дизайну. Останній момент здавалося б чудовий, але на таких заняттях розповідають тільки як вивести на екран рядок і додати зображення.

Скажіть, є безліч посібників і самовчителів, але всі вони орієнтовані не цільову аудиторію старших класів та університетів, але моя думка, що цільовою аудиторією для таких курсів повинні ставати учні середніх класів, у яких досить вільного часу для збагнення і вдосконалення в цій області. Тут і з'являється перша проблема, як пояснити дітям віковій категорії 10-13 років те, що не завжди вдається дохідливо пояснити студентам?

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

Важливим пунктом інтерфейсу для поточної аудиторії так само є звуковий супровід. Мова тут йде не про музику, або звукових ефектах при натисканні клавіш, або сигналі про виведення помилки, а саме озвучування самої лекції. Знову ж таки, за статистикою школярі куди більше запам'ятовують з лекцій і пояснень на парах / уроках, ніж з підручників, які як правило всім лінь читати. У нашу еру технологій деякі особливо хитрі школярі навіть по літературі не читають книги, а використовують уже зачитані ким то на «диктофон» аудіокниги. Не можна сказати, що така методика особливо ефективна в плані запам'ятовування, але зате це гарантія, що матеріал буде зачитано в повному обсязі.

Інтерес до програмування у дітей починає прокидатися ще на етапі середніх класів, але шкільна програма не передбачає вивчення даної дисципліни, в результаті чого, не підживлює нічим прагнення згасає і не завжди розгорається знов в більш старшому віці, відкидаємо найчастіше в бік під приводом "це складно і незрозуміло, економіка або психологія куди простіше ". Пам'ятайте головне гасло з фільму "Раттатуй"? «Готувати може кожен». Не можна сказати, що програмувати на вищому рівні може кожен, але писати програми, нехай і нескладні під силу кожному, що вже озвучував кілька в іншій формі Р. Лафоре. у своїй книзі "ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ НА С++". Спробуємо розробити, поки на теоретичному рівні, інтерфейсну складову для програми, яка могла б задовольняти цьому твердженню і посприяти початковій підготовці студентів та абітурієнтів для факультетів, що спеціалізуються на програмуванні.

Порівняння з іншими програмами.

Розглянемо програму Pascal ABC.

Вікно на початок роботи програми

Рисунок 1. Вікно на початок роботи програми.


Дана програма має досить нехитрий дизайн, що складається з 2х вікон: верхнє - для написання програми, нижнє - для виведення результатів написаної програми (з'являється для виведення результатів програми) і панелі інструментів. Деякі середні навчальні установи використовують її для написання простеньких програм на паскалі при наявності педагога, здатного хоч як то пояснити, що там до чого.

Так само є функція виклику вікна налагодження:

Вікно налагодження

Рисунок 2: Вікно налагодження.


При наявності помилок при компіляції, вони виводяться внизу, у вигляді червоної смуги з описом помилки:

Виведення помилки. Повідомлення про помилку виводиться внизу вікна у вигляді червоної стрічки

Рисунок 3: Виведення помилки. Повідомлення про помилку виводиться внизу вікна у вигляді червоної стрічки.


Наявність такого рядка, що яскраво контрастує із загальною картиною світлого оформлення програми, спливаючій в міру необхідності і досить добре привертає увагу своїм «раптовим і несподіваним" появою, містить достатньо інформативне для старших класів і вже більш менш підготовлених кодерів опису помилок. На початкових етапах, можливо, було б корисніше розшифровувати значення тієї чи іншої помилки у вигляді підказки або прямої вказівки, наприклад - "." "Тіло циклу має бути обгороджене" {"і"} або для поточного прикладу "В кінці № рядка відсутній знак ";" "..

Так само тут передбачені завдання для програмування, так званий «Електронний задачник по програмуванню". Наявність такого збірника досить простих завдань може послужити як базою для домашніх завдань, що має на кожну тему по 40 варіантів завдань, що дає можливість передбачити індивідуальні домашні / практичні / лабораторні завдання в межах одного-двох класів учнів.

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

Вибір теми для завдання

Рисунок 4: Вибір теми для завдання.

Умови завдання

Рисунок 5: Умови завдання.

Умови завдання з показаним відповіддю

Рисунок 6: Умови завдання з показаним відповіддю.


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

Перелік прикладів, скомпонованих за темами

Рисунок 7: Перелік прикладів, скомпонованих за темами.


Ось наприклад один з них - гра-стрілялка:

Приклад. Гра-стрілялка

Рисунок 8: Приклад. Гра-стрілялка.


Або ось приклад з розряду об'єктно-орієнтованого програмування:

Приклад об'єктно-орієнтованого програмування

Рисунок 9: Приклад об'єктно-орієнтованого програмування


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

Розробка інтерфейсної складової нової програми. Теорія

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

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

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

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

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

Модель інтерактивного вчителя програмування. Вікно.

Рисунок 10: Модель інтерактивного вчителя програмування. Вікно.


де 1 - область для введення коду програми, 2 - область для виведення помилок (можна заховати через панель інструментів), 3 - область виводу (можна заховати через панель інструментів), 4 - панель інструментів.

Перейдемо в панеле операцій. Вкладка "Файл" містить стандартні функції: Створити, Відкрити, Зберегти, Зберегти як, Закрити. Вкладка "Правка": Копіювати, Вставити, Знайти. "Вид" дублює керування областями з панелі інструментів, здійснюючи функції відкриття / приховування областей 2 і 3. "Програма" містить функції "Виконати програму" і "Зупинити виконання", що теж дублює функції з панелі інструментів. "Робота з шаблонами» надає доступ до початкових шаблонів і здійснює вивантаження коду прикладів з "лекцій". "Допомога" містить інформацію про програму та контакти автора. "Лектор" містить можливість перейти до вибору лекцій для прослуховування / перегляду, вибору завдань для самостійного рішення.

Область помилок при знаходженні такої для контрасту винна прівертаті до собі уваг, акцентуючі уваг кодера на ті, Що сталося непередбачене. На початку роботи з інтерактівнім вчителем в области 2 слід відображаті розшірені зауваження по помилках, з порадами и підказками для початківців:

Загальний вид вікна з помилкою Привертає увагу елемент, на вікні з описом помилки

Рисунок 11: Приклад підсвічування при виникненні помилки та елемент, що привертає увагу до області з описом помилки.


Нижче панелі завдань можна відображати поточне положення курсору в області 1, вказуючи поточний рядок і стовпець.

Панель інструментів містить вже зазначені вище функції, дублюючи багато функцій управління процесом виконання програми "Виконати програму" і "Зупинити виконання", кнопки включення і виключення голосового режиму лекцій, неактивній в режимі виконання написання коду, "Список Лекцій», кнопки «Копіювати», "Вставити", "Знайти", "Створити", "Відкрити", "Зберегти".

При першому запуску програми можна запустити режим ознайомлення, який є окремою лекцією-інструкцією по експлуатації, де пояснюється яка область чи кнопка для чого потрібна і яких несподіванок від чого можна чекати. Так само в цій інструкції повинно бути присутнім опис використання «Електронного лектора", компілятора і надано діалог продовження роботи з програмою і завершення роботи з нею.

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

При виклику переліку лекцій викликається вікно поверх основного вікна:

Зміст електронних лекцій

Рисунок 13: Зміст електронних лекцій.


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

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

Приклад виведення лекції

Рисунок 14: Приклад виведення лекції.


Прочитати сторінку - озвучує написане на сторінці-слайді, якщо при виборі теми був обраний пункт " Читать ". К оглавлению - повернення до переліку тем для прочитання / прослушки.

Следующая страница - перехід до наступній сторінці лекції. Недоступна в режимі прослуховування до закінчення читання сторінки. Предыдущая страница - перехід до наступній сторінці лекції. Недоступна в режимі прослуховування до закінчення читання сторінки. У такому ж вигляді показуються шматочки програми.

Висновки

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

Список використаних джерел інформації:

  1. Газета «Велика перерва». Добірка статей за 2004 рік.
  2. Р. Лафоре ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ НА С++".
  3. Набір документації для програми АВС Pascal.
  4. Вплив рівня володіння інформаційними технологіями на сприйняття комп'ютера користувачами - Цифрова бібліотека України
  5. Основи програмування для початківців - iguania.ru
  6. Форум початківців програмістів C++. Запитання початківців програмістів з С++
  7. Б. Керниган, Д. Ритчи "Язык программирования Си" Издание 3-е, исправленное