Укр Рус

Дата: 29.06.2017

Підписка на новини

Голосування

Чи сприятиме запровадження безвізового режиму перенесенню на вітчизняний ґрунт передових освітніх технологій та західних «практик, які працюють»?
  • Голосів: (0%)
  • Голосів: (0%)
  • Голосів: (0%)
  • Голосів: (0%)
  • Голосів: (0%)
Всього голосів:
Перший голос:
Останій голос:
Назад
 
Powered by Sexy Polling
 

Навчання програмуванню: завдання школи чи університету?

Автор:
Сергій Іщеряков
Опубліковано
17.01.2017

Нещодавно глава IBM Джинні Рометті(Ginni Rometty) написала лист обраному президенту США Дональду Трампу https://www.ibm.com/blogs/policy/ibm-ceo-ginni-romettys-letter-u-s-president-elect/ , в якому заявила, що співробітникам IT не обов'язково здобувати вищу освіту, щоб займати високооплачувані посади, працюючи в сфері кібербезпеки, big data, когнітивістики, штучного інтелекту. Вона попрохала новообраного президента підтримати спеціальні шестирічні програми навчання інформаційних технологій в старшій школі.

«Для України це питання також цілком актуальне», - вважає кандидат технічних наук, директор Центру підготовки сертифікованих програмістів Сергій Іщеряков, який є автором навчальної програми підготовки Java- і Android-програмістів в 10-11 класах середніх шкіл інформаційно-технологічного профілю.

Сергій Іщеряков пропонує використовувати JAVAдля  навчання програмуванню вже з п’ятого класу. В якості JAVA-тренера він підготував понад 40 сертифікованих фахівців(школярів в тому числі) рівня Oracle Certified Professional, Java SE6 Programmer і Oracle Certified Professional, Java EE5 Web Component Developer. Веде навчальні курси з Java-програмування  на онлайн-платформі SmartMe University. 

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

З одного боку, є, щонайменше, дві об’єктивні проблеми:

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

По-друге, багаточисельність платформ, на яких здійснюють навчання програмуванню в школах, – від Pascal до Java iз C#.

Я вже не кажу про забезпечення сучасною комп’ютерною технікою значної частини українських шкіл!

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

Це, у свою чергу, має бути показано, зрозумілою для учня, кінцевою метою навчання. Не просто отримання в результаті навчання абстрактної оцінки в атестаті, а здобуття комплексу знань та навичок професійного програміста-початківця, здатного реально програмувати мобільні гаджети Android, - чим не мета, спроможна вмотивувати значну частину школярів?! 

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

Лист керівника ІВМ до новообраного президента США тільки додав мені впевненості у цьому. Напевне, найважливіше – не розчарувати школяра у програмуванні протягом довготривалого навчання. Для того, щоб не втратити зацікавленість учнів, необхідно забезпечити:

  • по-перше, неперервність змісту навчання,
  • по-друге, формування проміжних результатів, важливих та цікавих для школяра. 

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

Отже, при забезпеченні неперервності навчання необхідно або просто бажано дотримуватись декількох принципів:

  • навчання від простого до складного,
  • підтримання темпів постійного розвитку без застою на певних етапах,
  • наближення до молодіжних пріоритетів,
  • дотримання вимог ІТ-ринку.   

Усі ці критерії задовольняє наступна схема навчання програмуванню, яка до того ж без особливих проблем вписується у навчальну програму з інформатики, затверджену МОН:

  • Scratch-програмування (2-4 класи)
  • основи структурного (алгоритмічного) програмування (5 клас)
  • ознайомлення з об’єктним програмуванням (6 клас)
  • ознайомлення із програмуванням на Android (7 клас)
  • основи об’єктного програмування (8 клас)
  • основи функціонального програмування (9 клас). 

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

1. Чи відомо вам те, що в молодших класах Scratch-програмування викладається, здебільшого, на дуже низькому рівні, на який не можна покладатись, якщо переходити в 5-му класі на основи структурного програмування? 

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

2. Чи не зарано викладати в 5-му класі основи структурного програмування, а в 6-му класі знайомити дітей з об’єктним програмуванням?

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

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

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

3. Чи не зарано вивчати програмування у школі?

Для когось – зарано, але для когось – якраз вчасно! Школярам, для яких Scratch, якісно вивчений у 4-му класі, вже став “вчорашнім днем”, а саме так, напевне, і задумана шкільна програма, продовження роботи зі Scratch в 5-му класі стане нецікавим.

Саме цього не можна допустити! Саме такими випадками ми втрачаємо величезну кількість майбутніх ІТ-шників, природні здібності яких не змогла розвинути наша школа… Мені здається, що набагато актуальнішим є питання: чи не запізно?

Звісно, навчальний матеріал з програмування, призначений для вивчення у 5-6 класах, повинен бути адаптованим до сприйняття дитячою свідомістю як за складністю, так і за формою подання. Щодо форми подання – думаю, варто максимально використовувати сучасні візуальні засоби, популярні у підлітків. Не просто використовувати звичайні  чи електронні підручники, а проводити відеоуроки, насичені, наприклад, елементами скрайбінгу. Тим більше, що необхідні для вивчення елементи об’єктного програмування лягають на скрайбінг так,  ніби народжені для цього. 

4. Змістова лінія програмування є одним з багатьох навчальних модулів курсу інформатики, як наслідок, перерва між модулями програмування щороку є дуже великою, достатньою, щоб забути знання та навички, набуті учнем під час вивчення модуля програмування попереднього року. Як реально можна забезпечити неперервність навчання? 

Поставлене питання є об’єктивною проблемою. Її радикальним вирішенням було б виведення змістового модуля програмування в окрему навчальну дисципліну, що, напевне, рано чи пізно буде зроблено. Але станом на теперішній час, думаю, доцільно для зацікавлених учнів продовження навчання програмуванню реалізовувати у режимі гурткової роботи. Навчальний матеріал кожного з модулів запропонованої схеми (основи структурного програмування, ознайомлення із об’єктним програмуванням та програмуванням для Android) є тільки маленькою верхівкою айсберга і надає чудові можливості для того, аби “лупати сю скалу” в межах кожного модуля протягом цілого навчального року вже в гуртках. 

5. Де вчителеві шукати методичні матеріали?

Наприклад,  допомогу надає і буде надавати надалі освітня платформа SmartMe University, де вже зараз розміщено 12 відеоуроків для 5-го класу і 12 відеоуроків для 6-го класу, частина з яких є доступною в безкоштовному варіантіhttp://smartme.university/course/vikoristannya-movi-programuvannya-java-v-zmstovj-ln-modelyuvannya-algoritmzatsya-ta-programuvannya-navchalno-programi-kursu-nformatikadlya-5-klasv-zatverdzheno-02-lyutogo-2016-roku/

До кінця січня буде відзнято і розміщено 12 відеоуроків з Android-програмування для 7-го класу. До кожного з уроків додаються тестові домашні завдання та завдання по розробці програм. Кожний урок починається з розгляду попереднього домашнього завдання. У весняному семестрі заплановано вебінари для відповідей на запитання.

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

Пропоную познайомитись із розміщеним на платформі SmartMe University невеличким відеороликом з ілюстрацією програм, що передбачено розробити в кінці кожного з перших трьох модулів навчання і які можуть розглядатись як результати навчання після 5-го, 6-го та 7-го класів. 

6.Технологія – найважливіший момент у формуванні навичок програмування у школярів.

Яку з численних технологій обрати?

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

Див. Лист МОН України від 17.08.2016 1/9-437 «Щодо методичних рекомендацій про викладання навчальних предметів у загальноосвітніх навчальних закладах» http://old.mon.gov.ua/ua/about-ministry/normative/6119-

Я особисто цей вибір зробив у 2009 році на користь Java, і з того часу я тільки переконувався у правильності цього вибору. Щодо “довершеності” та “академічності”, на мій погляд, Java поступається Pyton, проте, має одну безапеляційну перевагу – на Java можна програмувати Android, у відповідь на що Pyton-програмісти можуть тільки розвести руками. Ще однією перевагою Java стало введення у версію JavaSE8 елементів функціонального програмування  - ще однієї сучасної парадигми, що є подальшим розвитком об’єктного програмування. 

7. Чи має бути математика  попередньою базою для вивчення програмування?

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

Думаю, що і в школі програмування може стати каталізатором, справжнім мотиватором для вивчення математики, фізики, хімії.

 Обов’язково поміркую, як досвід, отриманий у вищих навчальних закладах, перенести на шкільні терени. Як зробити так, щоб програмування стало попередньою базою для вивчення інших “точних” шкільних дисциплін… 

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

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

Погляньте на нинішню систему навчання – далеко не всі школярі стануть філологами та біологами, але всі мусять вчити ямб, хорей і амфібрахій, або властивості рослин сімейства хрестоцвітних… 

Наближення до професійного рівня під час шкільного навчання не має відлякувати, - саме такі висновки дозволяють зробити результати проекту “Школяр-програміст”, розпочатого влітку 2015 року за ініціативою ГО “Фундація розвитку інновацій” та підтриманого МОН.

Попередньо підготовлені вчителі інформатики Києва, Дніпропетровської, Івано-Франківської, Львівської та Одеської областей з вересня 2015 року в класах інформаційно-технологічного профілю розпочали навчання десятикласників згідно затвердженої МОН навчальної програми, адаптованої під вимоги сертифікаційних іспитів корпорації Oracle. І хоча навчання школярів ще продовжується, вже в грудні 2016 року дніпровські школярі разом із отриманим сертифікатом професійного Java-програміста презентували чотири стартап Android-проекта. 

Сертифікат Oracle реально отримати раніше, ніж паспорт.

Серед моїх учнів вже є декілька успішних програмістів, які отримали Oracle-сертифікат у віці 16 років і через пару місяців були запрошеними на роботу до Івано-Франківських ІТ-компаній. Але все ж таки це були студенти першого курсу коледжу, а ось успішні результати в грудні минулого року саме школярів – це вперше.

 Хочу підкреслити комплексність результату: наявність корпоративного професійного сертифікату свідчить про відповідний рівень володіння теоретичною складовою Java, а розроблені Android-проекти доводять наявність необхідних практичних навичок. Чим це не професійний рівень? Рівень початківця, але, щонайменше, дуже наближений до професійного.

Що ці хлопці будуть робити у вишах після завершення навчання у школі? Впевнений, вони матимуть, що вивчати надалі. Звісно, дисципліни, на яких вивчають програмування, для них будуть, щонайменше, нецікавими. Проте, базові дисципліни – дискретну математику, теорію алгоритмів, структури даних, архітектуру комп’ютерів – ці студенти слухатимуть свідомо, без примусу з боку деканату. Це перевірено моїм особистим досвідом. Щоправда, вести заняття для таких студентів під силу далеко не всім викладачам ВНЗ. Але це вже окреме питання. 

На завершення хочу запропонувати для дискусії два висновки щодо напрямків подальшого розвитку. 

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

2.Для випускників шкіл, які успішно опанували запропоновану схему навчання, необхідно розробити спеціальний навчальний план подальшого навчання у ВНЗ. Цей план має базуватись, в основному, на парадигмі “проектного навчання” – студенти вже з першого курсу навчатимуться паралельно із виконанням проектів і вчити будуть саме той теоретичний та технологічний матеріал, що є необхідним для проекту. Це може допомогти виконувати проекти на замовлення вітчизняної промисловості, насичені програмною реалізацією математичних моделей управління технологічними системами, а не напівмеханічним використанням програмних фреймворків. 

Сергій Іщеряков, кандидат технічних наук, директор Центру підготовки сертифікованих програмістів, м. Івано-Франківськ.

Навчання програмуванню: завдання школи чи університету?
Навчання програмуванню: завдання школи чи університету?

Нещодавно глава IBM Джинні Рометті(Ginni Rometty) написала лист обраному президенту США Дональду Трампу https://www.ibm.com/blogs/policy/ibm-ceo-ginni-romettys-letter-u-s-president-elect/ , в якому заявила, що співробітникам IT не обов'язково здобувати вищу освіту, щоб займати високооплачувані посади, працюючи в сфері кібербезпеки, big data, когнітивістики, штучного інтелекту. Вона попрохала новообраного президента підтримати спеціальні шестирічні програми навчання інформаційних технологій в старшій школі.

«Для України це питання також цілком актуальне», - вважає кандидат технічних наук, директор Центру підготовки сертифікованих програмістів Сергій Іщеряков, який є автором навчальної програми підготовки Java- і Android-програмістів в 10-11 класах середніх шкіл інформаційно-технологічного профілю.

Сергій Іщеряков пропонує використовувати JAVAдля  навчання програмуванню вже з п’ятого класу. В якості JAVA-тренера він підготував понад 40 сертифікованих фахівців(школярів в тому числі) рівня Oracle Certified Professional, Java SE6 Programmer і Oracle Certified Professional, Java EE5 Web Component Developer. Веде навчальні курси з Java-програмування  на онлайн-платформі SmartMe University. 

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

З одного боку, є, щонайменше, дві об’єктивні проблеми:

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

По-друге, багаточисельність платформ, на яких здійснюють навчання програмуванню в школах, – від Pascal до Java iз C#.

Я вже не кажу про забезпечення сучасною комп’ютерною технікою значної частини українських шкіл!

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

Це, у свою чергу, має бути показано, зрозумілою для учня, кінцевою метою навчання. Не просто отримання в результаті навчання абстрактної оцінки в атестаті, а здобуття комплексу знань та навичок професійного програміста-початківця, здатного реально програмувати мобільні гаджети Android, - чим не мета, спроможна вмотивувати значну частину школярів?! 

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

Лист керівника ІВМ до новообраного президента США тільки додав мені впевненості у цьому. Напевне, найважливіше – не розчарувати школяра у програмуванні протягом довготривалого навчання. Для того, щоб не втратити зацікавленість учнів, необхідно забезпечити:

  • по-перше, неперервність змісту навчання,
  • по-друге, формування проміжних результатів, важливих та цікавих для школяра. 

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

Отже, при забезпеченні неперервності навчання необхідно або просто бажано дотримуватись декількох принципів:

  • навчання від простого до складного,
  • підтримання темпів постійного розвитку без застою на певних етапах,
  • наближення до молодіжних пріоритетів,
  • дотримання вимог ІТ-ринку.   

Усі ці критерії задовольняє наступна схема навчання програмуванню, яка до того ж без особливих проблем вписується у навчальну програму з інформатики, затверджену МОН:

  • Scratch-програмування (2-4 класи)
  • основи структурного (алгоритмічного) програмування (5 клас)
  • ознайомлення з об’єктним програмуванням (6 клас)
  • ознайомлення із програмуванням на Android (7 клас)
  • основи об’єктного програмування (8 клас)
  • основи функціонального програмування (9 клас). 

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

1. Чи відомо вам те, що в молодших класах Scratch-програмування викладається, здебільшого, на дуже низькому рівні, на який не можна покладатись, якщо переходити в 5-му класі на основи структурного програмування? 

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

2. Чи не зарано викладати в 5-му класі основи структурного програмування, а в 6-му класі знайомити дітей з об’єктним програмуванням?

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

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

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

3. Чи не зарано вивчати програмування у школі?

Для когось – зарано, але для когось – якраз вчасно! Школярам, для яких Scratch, якісно вивчений у 4-му класі, вже став “вчорашнім днем”, а саме так, напевне, і задумана шкільна програма, продовження роботи зі Scratch в 5-му класі стане нецікавим.

Саме цього не можна допустити! Саме такими випадками ми втрачаємо величезну кількість майбутніх ІТ-шників, природні здібності яких не змогла розвинути наша школа… Мені здається, що набагато актуальнішим є питання: чи не запізно?

Звісно, навчальний матеріал з програмування, призначений для вивчення у 5-6 класах, повинен бути адаптованим до сприйняття дитячою свідомістю як за складністю, так і за формою подання. Щодо форми подання – думаю, варто максимально використовувати сучасні візуальні засоби, популярні у підлітків. Не просто використовувати звичайні  чи електронні підручники, а проводити відеоуроки, насичені, наприклад, елементами скрайбінгу. Тим більше, що необхідні для вивчення елементи об’єктного програмування лягають на скрайбінг так,  ніби народжені для цього. 

4. Змістова лінія програмування є одним з багатьох навчальних модулів курсу інформатики, як наслідок, перерва між модулями програмування щороку є дуже великою, достатньою, щоб забути знання та навички, набуті учнем під час вивчення модуля програмування попереднього року. Як реально можна забезпечити неперервність навчання? 

Поставлене питання є об’єктивною проблемою. Її радикальним вирішенням було б виведення змістового модуля програмування в окрему навчальну дисципліну, що, напевне, рано чи пізно буде зроблено. Але станом на теперішній час, думаю, доцільно для зацікавлених учнів продовження навчання програмуванню реалізовувати у режимі гурткової роботи. Навчальний матеріал кожного з модулів запропонованої схеми (основи структурного програмування, ознайомлення із об’єктним програмуванням та програмуванням для Android) є тільки маленькою верхівкою айсберга і надає чудові можливості для того, аби “лупати сю скалу” в межах кожного модуля протягом цілого навчального року вже в гуртках. 

5. Де вчителеві шукати методичні матеріали?

Наприклад,  допомогу надає і буде надавати надалі освітня платформа SmartMe University, де вже зараз розміщено 12 відеоуроків для 5-го класу і 12 відеоуроків для 6-го класу, частина з яких є доступною в безкоштовному варіантіhttp://smartme.university/course/vikoristannya-movi-programuvannya-java-v-zmstovj-ln-modelyuvannya-algoritmzatsya-ta-programuvannya-navchalno-programi-kursu-nformatikadlya-5-klasv-zatverdzheno-02-lyutogo-2016-roku/

До кінця січня буде відзнято і розміщено 12 відеоуроків з Android-програмування для 7-го класу. До кожного з уроків додаються тестові домашні завдання та завдання по розробці програм. Кожний урок починається з розгляду попереднього домашнього завдання. У весняному семестрі заплановано вебінари для відповідей на запитання.

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

Пропоную познайомитись із розміщеним на платформі SmartMe University невеличким відеороликом з ілюстрацією програм, що передбачено розробити в кінці кожного з перших трьох модулів навчання і які можуть розглядатись як результати навчання після 5-го, 6-го та 7-го класів. 

6.Технологія – найважливіший момент у формуванні навичок програмування у школярів.

Яку з численних технологій обрати?

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

Див. Лист МОН України від 17.08.2016 1/9-437 «Щодо методичних рекомендацій про викладання навчальних предметів у загальноосвітніх навчальних закладах» http://old.mon.gov.ua/ua/about-ministry/normative/6119-

Я особисто цей вибір зробив у 2009 році на користь Java, і з того часу я тільки переконувався у правильності цього вибору. Щодо “довершеності” та “академічності”, на мій погляд, Java поступається Pyton, проте, має одну безапеляційну перевагу – на Java можна програмувати Android, у відповідь на що Pyton-програмісти можуть тільки розвести руками. Ще однією перевагою Java стало введення у версію JavaSE8 елементів функціонального програмування  - ще однієї сучасної парадигми, що є подальшим розвитком об’єктного програмування. 

7. Чи має бути математика  попередньою базою для вивчення програмування?

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

Думаю, що і в школі програмування може стати каталізатором, справжнім мотиватором для вивчення математики, фізики, хімії.

 Обов’язково поміркую, як досвід, отриманий у вищих навчальних закладах, перенести на шкільні терени. Як зробити так, щоб програмування стало попередньою базою для вивчення інших “точних” шкільних дисциплін… 

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

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

Погляньте на нинішню систему навчання – далеко не всі школярі стануть філологами та біологами, але всі мусять вчити ямб, хорей і амфібрахій, або властивості рослин сімейства хрестоцвітних… 

Наближення до професійного рівня під час шкільного навчання не має відлякувати, - саме такі висновки дозволяють зробити результати проекту “Школяр-програміст”, розпочатого влітку 2015 року за ініціативою ГО “Фундація розвитку інновацій” та підтриманого МОН.

Попередньо підготовлені вчителі інформатики Києва, Дніпропетровської, Івано-Франківської, Львівської та Одеської областей з вересня 2015 року в класах інформаційно-технологічного профілю розпочали навчання десятикласників згідно затвердженої МОН навчальної програми, адаптованої під вимоги сертифікаційних іспитів корпорації Oracle. І хоча навчання школярів ще продовжується, вже в грудні 2016 року дніпровські школярі разом із отриманим сертифікатом професійного Java-програміста презентували чотири стартап Android-проекта. 

Сертифікат Oracle реально отримати раніше, ніж паспорт.

Серед моїх учнів вже є декілька успішних програмістів, які отримали Oracle-сертифікат у віці 16 років і через пару місяців були запрошеними на роботу до Івано-Франківських ІТ-компаній. Але все ж таки це були студенти першого курсу коледжу, а ось успішні результати в грудні минулого року саме школярів – це вперше.

 Хочу підкреслити комплексність результату: наявність корпоративного професійного сертифікату свідчить про відповідний рівень володіння теоретичною складовою Java, а розроблені Android-проекти доводять наявність необхідних практичних навичок. Чим це не професійний рівень? Рівень початківця, але, щонайменше, дуже наближений до професійного.

Що ці хлопці будуть робити у вишах після завершення навчання у школі? Впевнений, вони матимуть, що вивчати надалі. Звісно, дисципліни, на яких вивчають програмування, для них будуть, щонайменше, нецікавими. Проте, базові дисципліни – дискретну математику, теорію алгоритмів, структури даних, архітектуру комп’ютерів – ці студенти слухатимуть свідомо, без примусу з боку деканату. Це перевірено моїм особистим досвідом. Щоправда, вести заняття для таких студентів під силу далеко не всім викладачам ВНЗ. Але це вже окреме питання. 

На завершення хочу запропонувати для дискусії два висновки щодо напрямків подальшого розвитку. 

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

2.Для випускників шкіл, які успішно опанували запропоновану схему навчання, необхідно розробити спеціальний навчальний план подальшого навчання у ВНЗ. Цей план має базуватись, в основному, на парадигмі “проектного навчання” – студенти вже з першого курсу навчатимуться паралельно із виконанням проектів і вчити будуть саме той теоретичний та технологічний матеріал, що є необхідним для проекту. Це може допомогти виконувати проекти на замовлення вітчизняної промисловості, насичені програмною реалізацією математичних моделей управління технологічними системами, а не напівмеханічним використанням програмних фреймворків. 

Сергій Іщеряков, кандидат технічних наук, директор Центру підготовки сертифікованих програмістів, м. Івано-Франківськ.

17.01.2017
Сергій Іщеряков
*
Поділитися

Додати комментар

Через сайт
Через Вконтакті
Через Фейсбук

Додати коментар


Захисний код
Оновити

Коментарі  

Автор: Светлана Ройз
Опубліковано 29.01.2017 в 10:09
Я вмешаюсь, простите. сын решил изучать Java в 6 классе примерно. Понял, что сам не потянет. нашел сам курсы, где это в Киеве было возможно. Когда мы с ним вместе пришли на собеседование - преподаватель оч корректно сказала - подождите пару лет. Сейчас он при всех способностях не сможет "вместить". Я начала разбираться. Действительно, некоторые доли мозга - кот помогут при "освоении", включаются намного позже. А собственная мотивация и того после 14 лет.
Відповісти
Автор: Людмила Булигіна
Опубліковано 29.01.2017 в 10:07
Залишимо епіграф з цитатою Рометті -Трампу журналістам, це з "красивостей".
По тексту:
1. "Сергій Іщеряков пропонує використовувати JAVA для навчання програмуванню вже з п’ятого класу. "
Можна і ядерну фізику з 4. Але питання не в класі, а в Java? Чим обгрунтавано вибір? Читаємо далі, там все є.
2. "Інформатика стала однією з лідерів серед навчальних дисциплін в школі. За обсягом годин вона поступається лише математиці та українській мові. "
Ні. Це не так. Три рівні є на даний момент, від 1 години на тиждень. І підозра, що так і буде в найкращому варіанті.
3. "З одного боку, є, щонайменше, дві об’єктивні проблеми:
По-перше, недостатня підготовка шкільних вчителів інформатики саме в питаннях алгоритмізації та програмування."
Так, це реально проблема. І введенням в 5 класі java вона ідеально поглиблюється до прірви.
4. "По-друге, багаточисельніс ть платформ, на яких здійснюють навчання програмуванню в школах, – від Pascal до Java iз C#"
Програмування менш за все залежить від "платформи", хоча в тексті перелічені не платіорми, а мови. Може знову журналісти переплутали.
5. "З іншого боку, вивчення програмування має безперечну перевагу над іншими предметами – зацікавленість учнів, яку можна і треба спрямувати у потрібному напрямі."
Перевага над іншими предметами - це перлина статті.
6. Це, у свою чергу, має бути показано, зрозумілою для учня, кінцевою метою навчання. Не просто отримання в результаті навчання абстрактної оцінки в атестаті, а здобуття комплексу знань та навичок професійного програміста-поч атківця, здатного реально програмувати мобільні гаджети Android, - чим не мета, спроможна вмотивувати значну частину школярів?!
Кінцева мета навчання - поограмування під Андроід? Це не помилка?
7. "Програмувати можуть не поодинокі ІТ-генії шкільного віку, а всі цілеспрямовані учні."
В 5 класі багато цілеспрямованих учнів, готових до java? Можете перевірити на скільки їх вистачить. Програмування в реальності там зараз 12 годин на все про все.
8. "Отже, при забезпеченні неперервності навчання необхідно або просто бажано дотримуватись декількох принципів:
навчання від простого до складного,
підтримання темпів постійного розвитку без застою на певних етапах,
наближення до молодіжних пріоритетів,
дотримання вимог ІТ-ринку. "
Java побудована за ООП парадигмою, де така абстракція як класи та принципи роботи з ними вже не є навчанням "від простого до складного". Вік 10-12 - це вік "подвигів та проектів", тут дослідження мають переважати над абстракціями. Нічого дослідити в кодуванні на java ми не зможемо.
9."Усі ці критерії задовольняє наступна схема навчання програмуванню, яка до того ж без особливих проблем вписується у навчальну програму з інформатики, затверджену МОН:
Scratch-програм ування (2-4 класи)
основи структурного (алгоритмічного ) програмування (5 клас)
ознайомлення з об’єктним програмуванням (6 клас)
ознайомлення із програмуванням на Android (7 клас)
основи об’єктного програмування (8 клас)
основи функціонального програмування (9 клас). "
Це може працювати в уявному міфічному світі єдинорогів-коде рів.
5 клас ознайомиться з структурним програмуванням за 12 годин? Спробуйте на групі студентів. Можете взяти КПІ. Побачите результат. Він здивує, як мінімум. (Семестр. Після ЗНО. З балами більше 180 з математики і фізики. З 3 годинами на тиждень і купою домашньої роботи. Може бути.)
6 об'єкти знайомимся, потім у 8 перезнайомлюємс я? То буде треба. Бо годин все також мало і частина дітей вже "відпала" в 5.
Про 7 : можна в принципі. Нічого реального не зроблять, але "прикольно."
9 - нічого не можу сказати, бо не розумію нащо функціональне програмування в школі, але може автор вирішив, що все вже вивчено дт 9, тоді ок. Але єдинороги- кодери знову. Щодо функціоналки краще спитати з одного з нинішніх студентів, я яким ми колись на МАН роботу робили. З темою було плгано, то взяли haskell, щоб журі нічого не розуміло і щось там робили те, що можга ьуло і без нього, але тоді видно, що робота не дуже. 1 місце взяли, зараз він на 3 курсі, відмінник, математик, і, здається, трохи розуміє, нащо фугкціональне програмувпння в виші.
10 "Про низький рівень викладання Scratch-програм ування в 2-4 класах відомо, але не можна із цим миритись, слід підтягувати кваліфікацію вчителів молодших класів до потрібного рівня"
Тут я пропоную автору просто повести рік інформатики у 2 класі. Можна і в 3. Можна навіть в 4, теж вражень багато буде.
11. " Чи не зарано викладати в 5-му класі основи структурного програмування, а в 6-му класі знайомити дітей з об’єктним програмуванням?
Це питання - фрагмент загальної проблеми нерівномірного “дозрівання” дітей до вивчення “точних” дисциплін. Аналогічні питання виникають і з математикою, і з фізикою, із хімією. Тим не менш, у шкільних математиці, фізиці, хімії є усталені правила, з якими не сперечаються.
З інформатикою так не вийде – надто динамічно розвивається ця галузь. Говорити про якісь усталені правила навіть в шкільному програмуванні означає, по-перше, обманювати себе, а, по-друге, системно прирікати шкільний курс на хронічне відставання.
Це нормально – постійно змінювати навчальну програму з інформатики. Це – вимога навіть не часу, а темпів розвитку цивілізації. І якщо ми не хочемо опинитись десь поза її межами, ми повинні до цього звикнути, адже саме інформатика найбільшою мірою з усіх навчальних курсів поєднує шкільні дисципліни із розвитком сучасних технологій. "
Абзац "знайди логіку".
Самостійне дослідження для читачів.
12. "Наприклад, допомогу надає і буде надавати надалі освітня платформа SmartMe University, де вже зараз розміщено 12 відеоуроків для 5-го класу і 12 відеоуроків для 6-го класу, частина з яких є доступною в безкоштовному варіанті smartme.university/.../...
Частину, доступну в безкоштовному варіанті, ч переглянула. Перегляньте і ви. Особливо, хто має відношення до дітей 5-6 класів. Особливо вчителі. Можливо, в платному варіанті щось інше, не знаю.
Все. Далі не буду, там про вибір. Це у кожного особистмй досвід, то почитати можна, а вже сприймати хто як хоче. Але порівнювати java з python з точки зору " чи можна закодувати під андроід" дивне.
Чесно хотіла написати більш толерантно, але не буду. Бо це як на виборах: зараз не скажемо, не втрутимось, будемо терпіти таку програму і викручуватись ще багато років.
Мені для себе не важливо взагалі: я по існуючих програмах ніколи не працювала і по нових поганих не буду . Але хочу хороші для всіх. Відправила на обговорення в МОН те, яким бачу програмування в школі. Впевнена, що це був би працюючий варіант, готова до критики та діалогу.
Все. Що ще можна зробити?
Відповісти
Наверх
Точка зору Аналітика Блоги Форум
Kenmore White 17" Microwave Kenmore 17" Microwave
Rated 4.5/5 based on 1267 customer reviews