Что можно сделать с детьми на уроках информатики?

Здравствуйте! Я - учитель информатики в школе и у меня есть для Вас вопрос.
Какие проекты могли бы Вы предложить, которые можно было бы составить с детьми (школьниками 7-9 классы). Если есть какие-то ресурсы, мнения, предложения, вопросы, ответы, то пишите или выкладывайте не стесняйтесь.
Сам я нахожусь в смятении и не совсем представляю, что из себя представляет создавать приложения. На какие этапы делится и как распределять роли между учениками.
Принимаются любые мнения как опытных, так и не опытных программистов, учителей и просто сочувствующих.
  • Вопрос задан
  • 5574 просмотра
Пригласить эксперта
Ответы на вопрос 3
rumkin
@rumkin
Дайте реальную и полезную задачу — этого так не хватает современному образованию!
Разбейте их на группы-фирмы, где они должны будут сами распределить роли — научатся саморганизации и заинтересуете всех учеников, а не только вьедливых ботаников.
Пусть они запустят, допустим, приложение в Google WebStore с каким-нибудь полезным функционалом — научатся анализу рынка.
Распределив роли на менеджеров, аналитиков и маркетологов, вы сохраните интерес у всех участников на протяжении всего обучения. Важно давать простые индивидуальные задания.
Фирмы должны соревноваться за какой-то приз, звание или титул.
Сделайте из знания ценность, пусть каждую неделю они борятся за вашу помощь в их проекте или за высокие отметки.

Процесс реализации приложения делится на следующие части:
— Выбор решаемой задачи.
— Формирование сильных отличительных сторон приложения.
— Описание функционала (проектная документация).
— Этапы и сроки реализации.
— Программирование и проверка (тестирвоание) каждого этапа.
— Проверка работоспособности всего приложения.
— Публикация и запуск проекта.

Заданием может быть реализовать будильник или калькулятор на html+js — браузеры есть у всех. Если все фирмы будут реализовывать один вид проекта, то это научит их еще и конкуренции, промышленному шпионажу и прочему. Пусть под конец проголосуют чтобы определить победителей.
Ответ написан
На мой взгляд, надо исходить из начальной подготовки ребят. Что они уже знают и умеют. Исходя из уровней подготовки формировать группы и ставить перед ними задачи.

Ключевой аспект - задача должна быть интересной.

Опять-же, на мой взгляд, выбор языка программирования ребятами - не принципиален. Важно, чтобы поставленная задача была решена правильно и не пропал интерес к дальнейшему обучению и решению более сложных задач.

Практически изучить любой язык программирования, имея страсть к этой науке не представляет особого труда. И, задача учителя, на мой взгляд, этот интерес поддерживать и развивать. Пусть хоть на бейсике пишут, если он вызывает у них живой интерес. Наличие и поддержание интереса намного важнее "правильности" выбранного языка. Рассказать о том, какие языки программирования существуют, чем они отличаются, как и где используются. Дать им попробовать и выбрать самим.

Итак, если упрощённо, то создание приложения делится на следующие этапы:

  1. Сбор требований к задаче
  2. Проектирование структуры приложения (подробнее об этом я скажу ниже по тексту)
  3. Распределение задач (модулей) между участниками группы с определением сроков реализации
  4. Реализация модулей
  5. Тестирование модулей
  6. Интеграция их друг с другом и тестирование собранных вместе модулей
  7. Создание справочной документации к приложению
  8. Запуск в эксплуатацию


Начинающие часто проектируют приложение снизу-вверх. Если вообще проектируют. То есть они начинают строить дом не имея общего плана, а вот им хочется сделать крыльцо, они начинают его строить, потом начинают строить первый этаж, а он с крыльцом не стыкуется толком, надо переделывать крыльцо, потом опять переделывать первый этаж и так далее со всеми остановками.

Это приводит к тому, что они закапываются в проблемах и, в конечном итоге, терпят неудачу и теряют интерес к проекту.

Надо объяснить им, что проектирование делается сверху вниз. То есть идём от общего к частному. Проектируем сперва дом (коробку), затем планировку этажей, потом планировку квартир, потом комнат и так далее. Пока не опустимся на уровень, ниже которого опускаться уже нет смысла.

В таком случае нет риска упустить что-либо важное, и всегда есть общее видение проекта, из каких частей он состоит, и как продвигается работа.

Запуск в эксплуатацию можно организовать так, чтобы ребята принимали программы друг друга. Полезно бывает посмотреть, как незнакомый с программой человек с ней работает. Заодно смогут понять важность создания понятных интерфейсов и создания понятных описаний к своим продуктам.

Какие задачи давать, зависит от уровня подготовки. Можно создать некий набор задач, и предложить им выбрать самим ту задачу, которую им-же будет интересно делать.

Это могут быть игры. Для новичков - пусть будут логические игры, с выводом в консоль. Например, игра Ним. Для более опытных, можно дать игры посложнее.

По моим наблюдениям, абстрактные материи детьми воспринимаются без особого интереса, зато, если в программе можно сделать что-нибудь "прикольное", это интересно, и этим будут заниматься.

В этом отношении полезны различные графические и звуковые возможности выбранного языка программирования. Пусть реализуют задачи сперва с работой в текстовой консоли, затем переделывают на работу с графикой.

Когда "наживка" будет проглочена, и ребята в массе своей будут хорошо разбираться в предмете и инструментах можно будет потихоньку отходить от игровой обстановки и переходить к другим, не-игровым задачам.

Рассказать о различных направлениях в разработке, о задачах и о том, как они решаются.

И пусть ребята выбирают, какое направление им более интересно.

Кому-то будет интересно писать игрушки, кого-то может заинтересовать написание программ для автоматизации какой-либо деятельности, кто-то заинтересуется генетическими алгоритмами и искусственным интеллектом.

Материалов в интернет сейчас достаточно, правда бОльшая часть их на английском языке.

Успехов вам в этом непростом и важном деле :)
Ответ написан
DmitryITWorksMakarov
@DmitryITWorksMakarov
Очень сложное дело у вас =)
Что касается меня, то именно информатика в школе определила мою теперешнюю профессию.
Я думаю самое главное не ограничивать учеников какой-нибудь одной областью.
Самый первый пример - это приложения под настольные компьютеры. Тут, наверное, проще всего замотивировать ребят созданием игр.
Дальше: программирование под мобильные платформы. Опять же игры. Какие-нибудь полезные приложения, типа дневников, шпаргалок, редактора конспектов.
Дальше: программирование под микроконтроллеры на базе всяких малин/ардуин. Роботы и домашняя автоматизация. Но тут нужно с физиком скооперироваться и с трудовиком. Что неплохо!
Дальше: web-технологии. Более-менее сложные веб-приложения с продвинутой клиентской и серверной частью.
Дальше: интересно скомбинировать это все. Сетевые игры. Мобильные приложения, которые могут работать с сетью. Роботы управляемые через интернет и др.

Еще. Я думаю. Очень важно поначалу дать им повариться в собственном соку. Дать набить шишек. Столкнуть со сложностью поставленных задач. Пусть осознают иттеративность процесса разработки. Пусть возникнет необходимость в системах контроля версий. Пусть возникнут свои какие-то велосипеды/грабли/паттерны, а потом рассказывайте как это решается у профессионалов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы