
Полезное программирование и хакатон
Направления программирования
На современном рынке труда в области программирования выделяют три больших направления:
- разработка приложений для настольных систем (desktop development);
- разработка сайтов (web development);
- мобильная разработка (mobile development).
Консольное приложение или текстовый интерфейс пользователя (англ. Text user interface, TUI; также Character User Interface, CUI) – система средств взаимодействия пользователя с компьютером, основанная на использовании текстового (буквенно-цифрового) режима дисплея или аналогичных устройств, например: командная строка. Консольное приложение – это программа, которая работает с командной строкой.
Оконное приложение – это привычная всем программа Windows (окно с разными кнопочками и полями для ввода-вывода данных). На сегодняшний день самый распространенный вид программ. Именно оконные приложения создают большинство программистов.
При этом только два направления программирования включены в образовательные программы общего образования.
Разработку приложений обучающиеся изучают уже много лет на примерах создания консольных приложений, реже – «оконных».
Разработка сайтов, точнее то, что под этим понимается, на уроках информатики и информационно-коммуникационных технологий (далее – ИКТ) или при подготовке проектов (межпредметных, в рамках внеурочной деятельности и т. п.) сводится к созданию статических HTML-страниц, которые запускаются на локальном компьютере и в редких случаях выкладываются для публичного доступа.
На практике же для создания сайтов в первую очередь необходимо определить – разработка ведется для серверной части (back-end) или же клиентской (front-end). После этого следует выбрать необходимые технологии и/или языки программирования/верстки (HTML, CSS, JavaScript, php, Node.js, Ajax, ASP.NET и др.). Можно использовать готовую систему управления сайтом (CMS) с адаптацией под конкретную тематику сайта.
Разработку мобильных приложений (или мобильную разработку) нельзя назвать новым направлением в программировании, однако образовательные организации (далее – ОО) общего образования и ОО высшего образования не внедряют ее в учебный план. Причин для этого может быть много – начиная от нехватки часов в рамках образовательной программы и заканчивая тем, что сами педагоги не владеют необходимыми знаниями в этой области.
Разработка мобильных приложений (приложений для мобильных устройств) – процесс, при котором приложения разрабатываются для небольших портативных устройств (карманный персональный компьютер, смартфоны или сотовые телефоны). Эти приложения могут быть предустановлены на устройство в процессе производства, загружены пользователем с помощью различных платформ для распространения программного обеспечения или являться веб-приложениями, которые обрабатываются на стороне клиента (JavaScript) или сервера.
В процесс мобильной разработки необходимо вовлекать обучающихся технологических и физико-математических профилей начиная с 10-11-х классов. Во-первых, в большинстве случаев учащиеся делают осознанный выбор профиля подготовки, и это способствует их мотивации к изучению необходимого набора технологий. Во-вторых, результатом изучения может стать приложение, которое будет работать на мобильном устройстве обучающегося и, что самое главное, может быть опубликовано в магазине приложений, где будет доступно тысячам, а то и миллионам пользователей. Это еще больше мотивирует выпускника и играет решающую роль при выборе данного направления профессиональной деятельности после окончания ОО.
Изучать мобильную разработку логичнее всего в рамках внеурочной деятельности и/или дополнительного образования и проводить занятия два раза в неделю, осуществляя промежуточный контроль путем решения стандартных задач. Именно такой подход можно считать оптимальным – обучающиеся не успевают уставать. В то же время те, кому нравится это занятие, продолжают самостоятельное изучение вне программы курса.
Внедрение мобильной разработки
Внедрение мобильной разработки возможно в несколько этапов.
1. Целеполагание. Прежде чем внедрять мобильную разработку, необходимо понять, какую цель преследует это внедрение, какие задачи будут решаться и что будет конечным продуктом (или это будет программный комплекс, или он будет вообще отсутствовать). В рамках такого курса можно показать учащимся отличия языков программирования, разницу между средствами разработки (IDE), провести по всему жизненному циклу программного продукта: от формирования требований до создания документации, внедрения и последующей поддержки разработанного программного продукта, подготовки к работе в сфере создания прикладного программного обеспечения.
После определения целей необходимо выбрать платформу и средства разработки для нее (проработать максимально подробно). Это связано с тем, что на данный момент на рынке мобильных устройств подавляющее большинство устройств работает под управление операционных систем (далее – ОС): Android, iOS, Windows. Поэтому нужно выбирать специфичные для каждой платформы инструменты разработки.
2. Выбор программного обеспечения. После того как определились с целевой платформой, следует выбрать комплект средств разработки (Software Developer Kit, SDK). Он позволяет специалистам по программному обеспечению (далее – ПО) создавать приложения:
- для определенного пакета программ;
- программного обеспечения базовых средств разработки;
- аппаратной платформы;
- компьютерной системы;
- игровых консолей и прочих платформ.
Программист получает комплект средств разработки непосредственно от разработчика целевой технологии или системы. Комплект средств разработки может распространяться через Интернет, в т. ч. для того, чтобы побудить разработчиков использовать данную технологию или платформу.
Если в качестве целевой платформы выбрана операционная система Android, для разработки понадобятся: IntelliJ IDEA, Java Development Kit или Android Studio (таблица).
Программное обеспечение для разработки мобильных приложений (при выборе ОС Android)
ПО | Описание |
---|---|
IntelliJ IDEA | Интегрированная среда разработки ПО на многих языках программирования, например, Java, JavaScript, Python |
Java Development Kit (далее – JDK) | Бесплатно распространяемый компанией комплект разработчика приложений на языке Java. В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки |
Android Studio | Интегрированная среда разработки для работы с платформой Android |
Этапы создания мобильного приложения
Когда речь идет о создании мобильного приложения, то выполнение предполагает два этапа:
- создание внешнего представления (дизайна);
- «оживление» его посредством реализации логики.
Создание внешнего представления также может быть разделено. На первом этапе (при создании прототипа приложения) можно использовать стандартные элементы управления (Controls), представленные на рис. 1. По мере завершения, как правило, создается авторский дизайн (рис. 2) – рисуется все внешнее представление. Дизайн заменяет созданный на этапе прототипа внешний вид приложения.


По внешнему виду приложение встречают, но работают с ним на основе реализованной логики, которая обеспечивает весь функционал. В качестве языка программирования при реализации логики приложения для ОС Android чаще всего выступает Java (можно использовать другие языки).
Xcode – интегрированная среда разработки программного обеспечения под OS X и iOS, созданная корпорацией Apple. Стабильные версии распространяются бесплатно через Mac App Store.
При написании приложений для ОС iOS используется интегрированная среда разработки Xcode и до недавнего времени единственный язык программирования Objective-C. В данный момент можно использовать также язык программирования Swift. Внешний вид приложения для iOS создается при помощи среды разработки, включенной в стандартный поставляемый пакет Xcode – Cocoa и Cocoa Touch.
Разработка приложений для Windows/Windows Phone ведется на IDE Visual Studio. Аналогично разработке под предыдущие мобильные операционные системы создается внешний вид и реализуется логика.
Создание дизайна для Windows Phone возможно несколькими способами. Первый и самый простой – создание интерфейса на основе стандартных элементов управления. Весь внешний вид приложения можно описать на декларативном языке разметки XAML (eXtensible Application Markup Language). Фактически у разработчика появляется возможность прописывать нотации, соответствующие элементам управления. При размещении элемента управления автоматически генерируется XAML-код.
Популяризация полезного программирования: проведение конкурса
На данный момент рынок труда испытывает нехватку специалистов в области программирования и мобильного программирования в частности. Поэтому Департамент образования г. Москвы (далее – ДОгМ) мотивирует обучающихся московских ОО к изучению ИКТ. Так, в июле 2015 г. менеджеры проектного офиса «Школа новых технологий», учредителем которого является ДОгМ, и Департамента информационных технологий г. Москвы предложили идею конкурса, который будет направлен на популяризацию полезного программирования.
«Школа новых технологий» – это проект из серии конкурсов и мероприятий по технологической модернизации ОО. Цель проекта – сделать ОО центром инноваций, лабораторией, позволяющей учащимся в полной мере реализовывать свои замыслы и раскрывать таланты.
Отбор участников проводился в виде конкурсов, состоящих из нескольких этапов, в ходе которых оценивался уровень технологического развития ОО.
К участию допущены школы с количеством обучающихся свыше 700 чел., которые при этом уже используют электронный журнал.
Первый конкурс для ОО состоялся в 2013 г. Тогда из более 400 ОО победителями стали 20. В 2014 г. стартовал второй конкурс, в котором победили 200 московских ОО.
Школы новых технологий получили возможность реализовать инновационные IT-проекты в сфере образования. В частности, для победителей первого этапа проекта были поставлены космические центры, виртуальные музеи, цифровые лаборатории, мультимедийные лингафонные кабинеты, трансформируемые классы, мобильные видеостудии, типографии и другое современное оборудование.
Подробная информация о «Школе новых технологий» представлена на сайте проекта: http://snt.mos.ru/about/smi.html.
Под «полезным программированием» будем понимать знания языков программирования, которые в будущем можно использовать при трудоустройстве.
Для проведения конкурса мобильных приложений была сформирована рабочая группа, занявшаяся разработкой положения конкурса и формата его проведения. Рабочей группой предусмотрен ряд ключевых моментов.
1. Определение номинаций.
Изначально предполагалось разделить номинации по мобильным платформам:
- «Лучшее приложение iOS»;
- «Лучшее Android-приложение»;
- «Лучшее приложение для Windows Phone».
От такого подхода решили отказаться в силу разных причин. Например, могло получиться так, что для трех платформ было бы реализовано одинаковое приложение, не исключено, что одной командой. Поэтому в качестве номинаций решили использовать три направления:
- «Лучшее приложение для образования» – в рамках этой номинации обучающиеся создают приложения, которые могут быть полезны как конкретной ОО, так и системе образования в целом;
- «Игры» – создание лучшего игрового приложения;
- «Инновации» – номинация, в которой обучающиеся должны создать приложение, не имеющее аналогов.
2. Состав команд и возраст участников.
В конкурсе могут участвовать команды до шести человек. Работу должен курировать руководитель группы (куратор). Куратором может выступать представитель ОО.
Опыт работы в сфере программирования показывает, что в большинстве случаев создание приложений сводится к достаточно большому построению математических моделей. Поэтому было предложено следующее ограничение возрастного состава участников:
- минимальный возраст – 13–14 лет (8-е классы);
- максимальный – 17–18 лет (11-е классы).
3. Процедура защиты проектов.
Было решено провести ее в два этапа:
- первый – заочная предзащита в виде короткометражного ролика, который необходимо опубликовать на одном из видеохостингов;
- второй этап – очная защита перед жюри.
Защита проводится в два этапа неслучайно. На первом этапе члены жюри оценивают следующие пункты:
- возможность конкретной реализации приложения, описание которого представлено в видеоролике;
- уровень реализации приложения;
- информативность видеоролика (могут ли участники конкурса вкладывать в короткое видео максимальное количество полезной информации).
Предполагается, что на этапе предзащиты будет отсеяно какое-то количество команд. На этапе очной защиты будут окончательно выбраны команды, которые полностью реализовали функционал, описанный при подаче заявки.
Критерии оценивания работ участников конкурса и требования к защите проектов представлены в приложении.
4. Контроль качества приложений: определение состава экспертов. Мобильное приложение оценивается с точки зрения жизнеспособности на рынке и возможности поиска спонсоров.
Для этого кураторы проектного офиса «Школы новых технологий» провели переговоры с ведущими IT-компаниями российского рынка. Все компании поддержали проект, многие из них стали партнерами конкурса. Большинство партнеров поддержали идею обучения конкурсантов и были готовы принять в этом участие. С форматом обучающих мероприятий во время проведения конкурса определились практически сразу – вебинары. Именно вебинары наиболее удобны с точки зрения посещения – учащиеся любой ОО г. Москвы могут посещать их, находясь дома и выбирая подходящий режим.
Онлайн-обучение – это, конечно, продуктивно, но ничто не заменит личного общения, поэтому организаторами совместно с партнерами было принято решение провести очную встречу. Возник вопрос – как это сделать, не зная о том, сколько будет подано заявок и какое количество желающих. Ответом стал хакатон.
Хакатон
Обычно термин «хакатон» определяют как форум разработчиков, во время которого специалисты из разных областей проектирования программного обеспечения (программисты, дизайнеры, менеджеры) сообща работают над решением какой-либо проблемы.
Хакатон для обучающихся ОО – мероприятие, которое должно быть, по большей части, направлено на приобщение к сфере ИКТ и разработке программного обеспечения, а также знакомство со смежными направлениями – дизайном, управлением и продвижением проектов и др.
Хакатон может реализовывать образовательные или социальные цели, но чаще всего его задачей является создание полноценного программного обеспечения. Каждый хакатон сфокусирован на определенной области, например, языке программирования, операционной системе, приложении, программном интерфейсе.
Первый школьный хакатон проводился в конце 2015 г. Школьный хакатон повторяет все этапы подобного мероприятия для взрослых:
- знакомство участников мероприятия;
- генерацию идей, их обдумывание и обсуждение;
- реализацию заявленного проекта мобильного приложения с последующей защитой.
Мероприятие длится два дня:
- в первый день участники знакомятся со своими коллегами, экспертами и организаторами, слушают доклады по тематике программирования, формулируют идею и приступают к ее реализации;
- во второй – доделывают свои приложения и защищают проекты.
Значимость конкурса разработки мобильных приложений
С точки зрения значимости конкурса разработки мобильных приложений можно выделить несколько пунктов:
1. Знакомство и общение в непривычной обстановке.
Далеко не каждый обучающийся посещает мероприятия, на которых может встретить такое количество единомышленников и технических специалистов.
2. Получение, усвоение и применение новых знаний за короткий промежуток времени.
Для большинства участников хакатон – это «интенсивное погружение» в мобильную разработку, систематизация полученных знаний и применение их при реализации своих проектов.
3. Межпредметные и метапредметные связи.
Любое мобильное приложение – это не только чистая информатика и раздел «Программирование». Это гораздо более сложный организм, который нужно спроектировать, обеспечив взаимодействие составляющих его частей. За это отвечают математические модели, а их, как известно, без алгебры и теории алгоритмов не описать. В большинстве случаев в программировании применяются конечные структуры – это отсылает обучающихся к дискретной математике, математической логике и ее разделу «Булева алгебра».
Также в процессе разработки возникают и не столь очевидные связи. Например, внешний вид приложения – дизайн, казалось бы. Но нет, не только. Нужно многое продумать:
- удобство для конечного пользователя – можно провести опрос (социология);
- «раскрутка» и продвижение приложений (работа с общественностью);
- генерация, поиск контента и наполнение приложений (любые отрасли наук в разных сочетаниях);
- локализация приложений – знание языков.
4. Навык публичного выступления.
Это очень важный пункт. Умение свободно говорить и аргументированно отстаивать свою точку зрения на публике. С таким испытанием не всегда справляются взрослые, поэтому нужно как можно больше создавать ситуаций, где учащиеся будут высказываться и отвечать на вопросы.
Формат работы с обучающимися, предполагающий ориентацию на современный рынок IT-технологий, профилизацию обучения и развитие метапредметных компетенций, может быть транслирован в любом регионе, не только в г. Москве. Хатакон как отдельную форму межшкольной проектной деятельности можно реализовать, предложив участвовать в нем обучающимся, интересующимся ИКТ и разработкой мобильных приложений.
Приложение
КРИТЕРИИ допуска к защите проекта
- Сформированная команда.
- Проработанная идея приложения и его функционал.
- План работы команды до завершения конкурса.
- Презентация (не менее 5 слайдов и не более 10).
Решение о допуске команды к защите принимает куратор от компании партнера конкурса.
Требования к защите проекта мобильного приложения
Защита проекта проводится публично.
Для этого требуется подготовка презентации и доклада по проекту, в рамках которого необходимо:
- изложить идею проекта;
- обозначить каждого члена команды и его роль в создании проекта;
- рассказать о функционале мобильного приложения;
- дать краткое объяснение этапов разработки;
- указать среду и платформу разработки;
- показать жюри, что сделано на данный момент;
- рассказать жюри, что будет сделано к финалу конкурса;
- ответить на устные вопросы жюри, связанные с содержанием проекта.
Критерии оценивания проекта:
- цель разработки, ее актуальность и целесообразность практического использования – 10 баллов;
- командная работа (структурированность, четкое разделение обязанностей) – 10 баллов;
- элементы творчества, оригинальность и дизайн – 10 баллов;
- качество оформления работы – 10 баллов;
- качество подготовленной презентации и выступления – 10 баллов;
- практические наработки – 10 баллов.
Требование к защите:
не более 6 мин, не более 10 слайдов.
