В этом году ВКонтакте при поддержке Промсвязьбанка запустил стипендиальную программу Содружество ВК для учителей информатики.
Вместе мы отобрали 15 педагогов из регионов России: создателей оригинальных курсов по программированию, школьных учителей, директоров центров дополнительного образования, тренеров, готовящих школьников к международным олимпиадам по программированию.
Они получили стипендии от ВКонтакте и Промсвязьбанка и теперь участвуют в наших выездных школах.
Все преподаватели имеют большой опыт работы и являются авторами собственных курсов по основам программирования.
В этом посте мы попросили трех студентов ответить на наши вопросы о преподавании программирования и информатики в целом.
- Для начала давайте познакомимся.
|
Инесса Шуйкова: Работаю директором и преподавателем информатики в ГАОУ «Центр поддержки одарённых детей «Стратегия» в городе Липецке.
Я преподаю C++ и Pascal в 6-11 классах.
|
|
Петр Калинин: Живу и работаю в Нижнем Новгороде.
Занятия веду в лицее № 40, на базе Университета Лобачевского, а также дистанционно, без привязки к конкретному учебному заведению. В основном на Python, Pascal, C++. Я работаю с некоторыми ребятами на Java, C# и более экзотических языках. Большинство из них учатся в 9-11 классах, но некоторых я преподаю уже с 4 класса.
|
|
Сергей Беляев: Я живу в Красноярске.
Работаю педагогом дополнительного образования в Красноярском краевом дворце пионеров. В работе много языков — C++, Pascal, Python, Basic, Java Script, Perl. Возраст учеников разный – обычно от 12 до 18 лет. |
Об обучении программированию
— Как организовать обучение программированию в школах? Инесса: Каждому студенту необходимо дать базовые навыки использования программного обеспечения общего назначения, научить цифровой гигиене, безопасному использованию Интернета, основам программирования.Для детей с соответствующими интересами и способностями добавьте алгоритмы и структуры данных.
Курсы повышения квалификации по программированию следует преподавать как специальные курсы.
Каждый учащийся на уроках информатики должен быть включен в проектную группу для выполнения школьного ИТ-проекта.
Питер: Я не считаю себя специалистом по массовому обучению школьников в общеобразовательных школах, но считаю, что образование необходимо адаптировать к потребностям школьников.
Заинтересованным студентам следует давать глубокие знания, остальным необходимо лишь поверхностное понимание программирования.
Сергей: Общая программа в рамках предмета информатики должна быть такой же, как сейчас: программирование поверхностное и информационное.
Более содержательный курс предназначен для специализированных классов с упором на физику и математику.
Профессиональное обучение целесообразно только в рамках дополнительного образования.
— Основные проблемы преподавания программирования в России? Как их решить? Инесса: В рамках общего образования информатике (если только это не профильные классы) отводится небольшое количество часов – это не основной предмет, которому уделяется значительное внимание.
Отсюда и следствие – учителя информатики не всегда профессиональны именно в этом предмете, и у многих школьников этот предмет ассоциируется с не столь важным процессом, навязанным системой.
Решением могло бы стать введение законодательного положения, позволяющего учитывать дополнительное образование как дисциплину общего образования.
Дети с удовольствием обучаются на курсах программирования в центрах дополнительного образования.
Возможность засчитывать прохождение курса как результат общеобразовательной программы поможет привлечь внимание еще большего количества школьников к овладению навыками программирования.
Питер: Если не брать во внимание различные бюрократические проблемы, то, наверное, главная из них – это очень устаревшие знания (или их отсутствие) у большинства преподавателей.
Сергей: Я думаю, что проблемы преподавания информатики сочетаются с общими проблемами образования в России, с тем, что профессия учителя не престижна.
И учитель, преподающий программирование, не является исключением.
— Стоит ли пытаться изучать программирование до школы? В какой форме это должно быть реализовано? Инесса: До школы нужно развивать общие математические способности, интерес к чтению и мотивацию к знаниям как таковым.
Но я считаю нецелесообразным давать детям то, к чему они еще психологически не готовы.
Питер: Однозначного ответа у меня нет, но я считаю, что обучающие игры и задачи по программированию имеют право на существование.
Например, я купил своей трехлетней дочери игру «Такси» от «Мосигры».
Сергей: Я считаю, что изучать программирование до школы еще рано.
Было бы неплохо сначала научиться читать, писать и считать.
— Распространено мнение, что программирование сегодня — такой же необходимый навык, как водительские права и английский язык.
Что вы думаете? Инесса: Да, это! Даже если вы не программируете на работе, понимание того, как работают программы и информационные системы, позволит вам чувствовать себя уверенно в цифровой среде будущего.
Питер: Я категорически не согласен.
Во-первых, права и язык (последний в несколько меньшей степени) нужны 90% людей не только для работы, но и для личной жизни.
Сравнительно небольшому количеству людей программирование необходимо вне работы и в подавляющем большинстве случаев лишь в качестве хобби.
На работе программирование тоже нужно не каждому — в этом оно мало чем отличается от водительских прав или языка.
Сергей: Конечно, нет, иначе многие чувствовали бы себя некомфортно, не имея необходимого навыка.
Программирование — достаточно узкая специальность, которой осваивают единицы.
Люди гораздо чаще осваивают английский язык и особенно вождение автомобиля.
Об особенностях изучения языков программирования
— Какие задачи по программированию самые сложные и интересные? Инесса: Думаю, это зависит в первую очередь от идеи задачи, а не от темы.Другими словами, от того, насколько изящна и красива идея, лежащая в основе задачи, зависит, насколько позже можно будет восхищаться необычностью задачи или легкостью идеи, лежавшей в основе и требовавшей пройти трудный путь.
Питер: Наиболее интересные проблемы — это те, которые требуют необычного взгляда на стандартные алгоритмы или стандартную теорию.
Например, задача «К» отсюда.
Сергей : наиболее продвинутыми темами считаются рекурсия, структуры данных (особенно деревья сегментов и декартовы деревья) и теория графов.
Конечно, в любой теме могут быть простые задачи.
Как и в любой простой теме типа «простая математика», простой математики может вообще не быть, даже без программирования.
Поэтому все это весьма субъективно; нельзя сказать, что все задачи одной из тем обязательно сложнее любых других.
Лично мне наиболее сложными кажутся задачи из теории игр, в частности те, которые используют минимаксный метод. — Можно ли начать изучать C++, не проходя Паскаль и Бейсик? Инесса: Да, это определенно возможно.
Подтверждением является мой опыт работы с детьми.
Питер: В частности, в C++ это возможно, но я не рекомендую это делать.
Я бы рекомендовал заменить C++ на Python. Паскаль и тем более Бейсик точно не нужны.
Сергей: Конечно.
Я занимаюсь этим уже 15 лет. Если основная цель — познакомить учащихся с элементами программирования за короткое время, а не научить конкретно программированию, то Python все же подойдет лучше.
— В каком порядке начинать изучение C++, чтобы не заблудиться в дикой природе? Инесса: Советую сразу начать с решения самых простых задач.
Пример хорошего курса - «Введение в программирование на C++».
Михаил Густакашин.
Питер: Я считаю, что на любом языке нужно сначала освоить базовые вещи, позволяющие писать простейшие программы (переменные, if, циклы, массивы, строки, вещественные числа).
С ними уже можно решить практически любую олимпиадную задачу.
Остальное по необходимости.
Сергей: Лично я перехожу к самому языку только после четырех уроков, направленных на знакомство с программированием на примерах увлекательных алгоритмов — вроде игр и видеороликов с ежегодного мероприятия «Час кода».
Дальше я знакомлю ребят с плюсами и минусами профессии программиста, включая мой многолетний опыт. На самом деле, язык программирования, выбранный для изучения, не так уж и важен; порядок тем всегда будет примерно одинаковым.
Знание синтаксиса языка — не самое главное; любой гуманист может справиться с этим.
Самое главное — умение алгоритмизировать и писать понятный и безошибочный код. — Как написать понятный код на C++? Инесса: Для школьников важно правильное наименование переменных и стиль.
Чистый код — это структурированный код, который доступен для чтения другим людям в вашей команде.
Питер: Как и в любом языке, деление кода на осмысленные сущности, именование переменных и т.д. Но на школьном уровне почти ничего из этого не нужно, максимум — поставить адекватные отступы.
Сергей : Это особенно важно в рамках проекта, над которым работает группа программистов.
Иногда приходится разбираться в чужих программах, а для этого необходимо соблюдать определенные договоренности.
Но в любом случае есть общие принципы, которые вряд ли можно осмысленно обсуждать в рамках одного вопроса.
Выделю лишь некоторые:
- структура программы: логические единицы должны быть разделены на отдельные блоки (отступы в тексте программы, функции, библиотеки);
- имена переменных и функций должны говорить сами за себя о том, что они содержат;
- При описании блоков алгоритмов обязательно использовать комментарии; каждая функция должна содержать полную спецификацию входных параметров и возвращаемых значений.
Сергей: В реальном программировании я ничего не имею против этого расширения.
Но я преподаю детям олимпиадное программирование, и там школьники не смогут его использовать, так как Boost не входит в стандартный набор библиотек ни одного из стандартных компиляторов языка С++.
Так что придется довольствоваться тем, что имеется, например, STL (Standard Template Library).
— Есть ли у вас успешный рецепт подготовки школьников к соревнованиям по программированию? Инесса: Теория информатики плюс основы дискретной математики и математические методы обработки данных.
А еще постоянные тренировки, выстроенные в систему.
Питер: Базовая теория, решение задач, понимание формата олимпиады, тщательное тестирование.
Сергей: Я считаю, что в обучение школьников программированию нужно вкладывать не только опыт, время, но и свою душу.
Заинтересовать учащихся способен только тот преподаватель, который сам интересуется предметом.
При обучении программированию важно подобрать группу талантливых школьников, а это очень сложно сделать в рамках одного общеобразовательного учреждения.
Поэтому эффективнее работать в учреждениях дополнительного образования, где есть возможность работать с детьми из разных школ.
— Есть ли в вашей программе что-то уникальное? Инесса: Ключевой момент – в самой технике.
Я веду группы детей, сформированные по уровню подготовки и способностям, а не по возрасту.
Обучение происходит не только по модели «учитель-ученик», но и по модели «ученик-ученик».
Старшие помогают младшим: анализируют решенные задачи, проверяют стиль написания программ, помогают учителю.
На занятиях поддерживается атмосфера детского сообщества – установка на успех, продвижение, результат. Олимпийские мероприятия и внешние тренировки мы проводим вместе, вместе, с радостью.
Питер: Во-первых, занятия проводятся полностью онлайн; возможно обучение удаленно из любой точки мира.
Во-вторых, нет календарного плана; каждый студент учится в своем темпе.
В-третьих, внимание к тестированию и поиску ошибок в коде.
В-четвертых, бесплатная лицензия на разрабатываемые мной материалы.
Сергей: Во-первых, использование авторского ресурса «Школа программистов» .
Во-вторых, использование авторских печатных учебных пособий.
В-третьих, весь теоретический материал представлен в презентациях для более наглядной иллюстрации материалов образовательной программы.
О самообразовании
- Самообучение и регулярное обучение.Как лучше всего это совместить? Инесса: Осенью важно заниматься с преподавателем по классической схеме, чтобы освоить азы, развить уровень, «встать на крыло».
Когда ребенок становится призером, победителем серьезных олимпиад, продолжением классического образования является тренировочный процесс, посещение школ, самообразование (дистанционные курсы, персональные регулярные тренировки).
Питер: Объединить способ, например, я знаю.
Школьники изучают материал самостоятельно, но решения задач я проверяю лично, плюс дети всегда могут посоветоваться со мной, если что-то не поймут. Сергей: Именно поэтому самообучение лучше всего сочетать с регулярными тренировками.
Это позволяет быстрее изучить предмет программирования, поскольку талантливый преподаватель может грамотно направить ученика в нужное русло, рассказать ему, что, где и как.
— Говорят, программированию нужно учиться до определенного возраста, а этот возраст — до 30 лет. Тогда эффективность значительно падает. Как вы относитесь к таким возрастным ограничениям? Инесса: Конечно, хотелось бы до 30 лет выучить все сразу, но жизнь меняется, знания улучшаются, языки развиваются.
Таким образом, обучение продолжается на протяжении всей жизни.
Олимпийское программирование, требующее скорости, психологической концентрации и долгих часов тренировок, предназначено для молодых людей.
Научиться программировать после 30 лет — я не вижу здесь никаких проблем, если у вас есть мотивация и математический склад ума.
Сергей: В принципе я согласен.
Но, возможно, есть исключения.
После 30 лет возникают трудности не только с обучением чему-либо, но и с самим программированием.
Конечно, это происходит очень плавно и четкой границы нет. Раньше я мог заниматься программированием по 10 часов в день, но сейчас это неважно.
Поэтому я планомерно перехожу от программирования к преподаванию программирования: все меньше программирую и больше преподаю.
— Как вы относитесь к открывающимся сегодня многочисленным курсам для программистов? Вам не кажется, что знания, которые там дают, слишком поверхностны? Инесса: Курсы разные.
Выбирая курс, всегда следует просмотреть первые лекции, чтобы сравнить свой уровень и уровень курса, оценить полезность знаний и так далее.
Поэтому считаю, что предварительное ознакомление с курсом обязательно.
Питер: Я считаю, что есть как разумные курсы, так и поверхностные.
Плюс многое зависит от самого ученика.
Сергей: Я не вижу ничего плохого в том, что есть курсы, дающие лишь поверхностные знания.
Детям просто необходимо некоторое ознакомление с этим предметом, прежде чем поступать на серьезный курс, направленный на обучение профессиональному программированию.
А профессиональных курсов не может быть много: способных детей изучать серьезное программирование просто не так много, это достаточно узкая сфера.
— Что для вас было самым трудным во время собственных тренировок? Какие этапы вы можете выделить? Инесса: Первый этап – начальное развитие, когда кажется, что все новое и непонятное.
Второй этап – глубокое изучение материала, когда все становится на свои места.
На этом этапе важно проконсультироваться с коллегами и по возможности доработать преподаваемый материал.
Кроме того, я считаю, что важно постоянное повторение в процессе обучения и мотивация к изучению нового.
Сергей: Если вспомнить, что это был 1989 год, когда не было Интернета, домашнего компьютера и учителей, а был только один программируемый калькулятор с инструкциями, то да, были определенные трудности.
Но мне все же удалось изучить основные принципы программирования.
Тогда я учился в девятом классе.
Это был первый этап.
Следующий этап – обучение в рамках ЦПК в 10-11 классах на компьютерах без жестких дисков.
Но тогда с клавиатурой, монитором (это был черно-белый телевизор) и учителем.
Потом я выучил Бейсик и Паскаль.
Позже в университете мои возможности и знания в области программирования сильно расширились.
Мы изучали C++, Lisp, Prolog и Assembler. А с пятого курса я начал преподавать сам, стал преподавать Паскаль школьникам.
Следующий значимый этап в моей жизни связан с освоением мной направления веб-программирования в веб-строении.
Этот шаг, пожалуй, перевернул мою жизнь и привлек ко мне большое количество работодателей, от которых я отбиваюсь до сих пор :) Лишь в 2003 году я увлекся олимпиадным программированием и переключился на преподавание его школьникам.
— Какие ошибки вы допустили во время собственных тренировок? Какой совет вы можете дать по этому поводу? Инесса: Ошибка в процессе обучения – это попытка охватить разрозненную информацию, определенный объем некачественной информации.
Советую использовать качественные курсы с хорошими отзывами, рекомендациями коллег о них.
Также важно четко распределять время на учебу.
Сергей: Пожалуй, главная моя ошибка – это неправильный выбор инструментов программирования для создания сайтов.
Я по-прежнему использую технологии Microsoft: Windows + IIS + ASP + MSSQL. Все разработки требуют не только лицензии, но и больших вычислительных ресурсов.
Гораздо лучше начать с бесплатного программного обеспечения.
В то время, да и сейчас, по-прежнему актуально создавать программы и разрабатывать сайты для Unix с использованием Apache + PHP + MYSQL. Теги: #учиться программировать #учиться программировать #спортивное программирование #программирование #Образовательный процесс в IT #Карьера в IT-индустрии
-
Stick Games: Новый Взгляд На Старые Игры
19 Oct, 24 -
Неизвестные Злоумышленники Украли Карму
19 Oct, 24 -
V8 Вне Конкуренции
19 Oct, 24 -
Звонок Из Браузера: Инструмент Для Бизнеса?
19 Oct, 24