Гусс С.В. Рецензия на открытый онлайн курс «Java. Базовый курс» // Электронный научно-методический журнал Омского ГАУ. - 2017. - Спецвыпуск №4. - URL http://e-journal.omgau.ru/images/issues/2017/S04/00402.pdf. - ISSN 2413-4066
Гусс Святослав Владимирович
Старший преподаватель кафедры компьютерных технологий и сетей ФГБОУ ВО ОмГУ им. Ф.М. Достоевского, г. Омск [email protected]
Рецензия на открытый онлайн курс «Java. Базовый курс»
Платформа, на которой расположен ООК: Stepik
Организация - создатель ООК: Computer Science Center (CS центр)
Введение
Одним из требований к профессиональному программисту на сегодняшний день, правильнее было бы даже сказать минимумом, является знание основ объектно-ориентированного программирования и проектирования программных систем. Большинство начинающих, и не только, программистов и изучающих программирование, знакомы с этим подходом, но далеко не все знают, как правильно его применять. Нужны опыт и знания. Курс по языку программирования Java как раз таки знакомит слушателя с современными практиками разработки программного обеспечения на примере одного из самых популярных языков программирования.
Курс ведёт молодой специалист, профессионал своего дела, Алексей Владыкин, Java-разработчик в компании OpenWay, преподаватель Computer Science Center (http://alexey.vladykin.name/). Мне, как преподавателю было очень интересно перенять его опыт, посмотреть на подачу материала, испробовать на себе. Огромный плюс курса в том, что помимо лекций, очень много практических заданий, в которых нужно писать свой программный код и отправлять на платформу, где этот код проверяется автоматизированной системой тестирования и выдаётся ответ. Ответ выдаётся не так, что работает закодированная программа или нет, а проверяется всесторонне на различных данных. А это в свою очередь мотивирует думать, а не слепо писать код в виде «волшебного заклинания», которое вроде бы должно работать. Нет, система принимает только качественно решённую задачу.
Сам курс состоит из 6 модулей. Модуль рассчитан на одну неделю. Предполагаемое время на прохождение одного модуля 2-4 часа. На практике, чтобы тщательнее изучить курс, может потребоваться и 8 часов на освоение сложных тем, плюс проведение экспериментов, чтобы закрепить знания. Содержание учебной программы стандартное: а) основы и базовый синтаксис языка программирования; б) основы объектно-ориентированного подхода: объекты, классы, пакеты; в) обработка ошибок, исключения, отладка; г) работа с файловой системой; д) коллекции, интерфейсы.
Чтобы приступить к изучению курса, достаточно элементарного представления о том, что такое программирование и понимать, зачем нужны алгоритмы. Курс вполне подойдёт для студентов начальных курсов высших учебных заведений.
Констатирующая часть
Содержание материала соответствует современным потребностям, появляющимся в мире разработки программного обеспечения. Преподаются современные знания и методики написания программ, учитывающие текущие потребности и нововведения (например поддержка функционального программирования в последних версиях языка Java), что отражается в задачах на программирование: система фильтрации спама, передвижение робота, комбинирование функций. Таким образом, к каждому видео фрагменту темы-лекции предлагается задание не просто на закрепление определённой теоретической конструкции языка программирования или конкретного паттерна проектирования программы, но предлагается практическая задача, в которой можно использовать теорию «с умом».
Помимо задач на программирование присутствуют вопросы с вариантами ответов, после неудачной попытки некоторые из вариантов меняются, а поскольку просят выбрать не один ответ, а несколько, удовлетворяющих определённому критерию, перебор ответов затруднён и в каком-то смысле просто становится неинтересным, опять же мотивирует думать, а не кликать наугад.
Система отслеживает успеваемость обучающегося, помечает просмотренные видео, показывает набранные баллы. Стоит отметить, что на платформе могут быть введены сроки (дедлайны), которые делятся на мягкие и жёсткие. После наступления мягкого дедлайна, ценность выполненных задач снижается в два раза, после наступления жёсткого дедлайна баллы уже не выставляются, тем не менее задачи всё равно можно решать.
В рамках обучающей системы также предусмотрен обмен сообщениями, можно задать вопросы преподавателю, обсудить вопросы с другими обучающимися, провести дискуссию, как лучше сделать или что лучше применить в той или иной задаче. Обсуждения приветствуются, нельзя выкладывать решения в открытом виде, а наводящими мыслями делиться можно.
Аналитическая часть
В качестве рекомендаций и пожеланий к курсу хотелось бы посоветовать расширить темы ещё одним модулем, посвящённым технологиям, базирующимся на языке программирования Java или введению в дальнейшее изучение. Предлагаемые дополнения: как создавать графические интерфейсы, работа с базами данных, сетевое программирование, корпоративное применение.
Заключение
Курс оказался полезным в моей педагогической практике. До этого мне приходилось видеть программы на языке Java в рамках проверки лабораторных работ по дисциплине «Технология программирования», синтаксис языка похож на синтаксис языков C++ и C#. После изучения курса я могу не просто проверять работы студентов, выполняют ли они то, что нужно и так, как нужно, но и дискутировать со студентами о целесообразности использования того или иного средства, которое предоставляет язык программирования в контексте сегодняшнего дня. Имеется ввиду последние нововведения в язык и его технологии, которые в курсе также рассматриваются.
В случае прохождения курса кем-нибудь из студентов, вполне можно засчитать (перезачесть) какую-нибудь дисциплину, связанную с программированием, например «Программирование на языке высокого уровня» или один из разделов дисциплины «Языки программирования» по специальностям: компьютерная безопасность (10.05.01), информационная безопасность (10.03.01), информатика и вычислительная техника (09.03.01), прикладная информатика (09.03.03). Курс также можно рекомендовать для быстрого знакомства с новым языком тем, кто уже умеет программировать, но хотел бы изучить новый язык и расширить свой «языковой» запас.