Методика

Методика работы Школы программистов необычна для средней школы и заимствует некоторые подходы университетского образования. Ученики Школы посещают несколько обязательных (базовых) и факультативных курсов.

Учебный курс в Школе программистов построен так, что через процесс обучения развивается интеллект, способность мыслить, а не просто накапливаются знания. И даже если в будущем ребенок не станет профессиональным программистом, алгоритмическое мышление, то есть умение мыслить наперед, просчитывать все возможные варианты, а также развитое логическое и структурное мышление сейчас просто необходимы успешному человеку в любой профессии.

Математик, программист, психолог и педагог Сеймур Пейперт считал, что, программируя, «ребенок не только овладевает частичкой самой современной техники, но и приобщается к некоторым из самых глубоких идей естествознания, математики, а также к искусству интеллектуального моделирования». На практике в Школе программистов это положение реализуется через использование специализированных сред программирования, при разработке которых учитывался ряд фундаментальных положений в области психологии. 

 

Обязательные (базовые) курсы

Обучение C++ в Школе программистовОбязательные курсы составлены таким образом, чтобы они образовывали непрерывный цикл трехгодичного обучения программированию. Главная их цель – развитие мышления ученика. Базовые курсы закладывают основы правильного алгоритмического мышления будущего программиста, вырабатывают парадигму программирования и являются базисом для обучения любым языкам и системам программирования. Ребята глубоко изучают языки программирования Scratch, Pascal, Python, C++, C#, Delphi, а также основы построения и анализа алгоритмов.

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

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

Обязательные курсы составляют учебную нагрузку, равную 4 академическим часам в неделю.

 

Факультативные курсы (спецкурсы)

Факультативные курсы Школы программистов

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

Сейчас в Школе программистов можно изучать практически любое направление информационных технологий.

Среди наших спецкурсов: web-дизайн, PHP, компьютерное «железо», разработка под API, программирование чат-ботов, аудио- и видеомонтаж, 3D, цифровая фотография, интернет вещей, микроконтроллеры, компьютерные вирусы (совместно с Лабораторией Касперского), векторная графика и еще много всего интересного и познавательного.

Одним из ведущих направлений в работе Школы является олимпиадное программирование

 

Подготовка к ГИА и ЕГЭ

Также в Школе программистов мы готовим учеников 9 и 11 классов к выпускным экзаменам. 
Результаты наших учеников на 50% превышают средний балл по Московской области.

Информацию о курсах по подготовке к ГИА и ЕГЭ по информатике, физике и математике можно получить в администрации. 

 

Контроль знаний

В конце января и в конце мая, по окончанию осеннего и весеннего семестров, для всех школьников проходит Закрытая Олимпиада Школы программистов – основная форма контроля достигнутых результатов.

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

Приведем несколько задач, предлагавшихся на прошлых олимпиадах для первого года обучения:

  1. Практика показала, что следующая задача является одной из лучших на тему ветвление. На наш взгляд, с дидактической точки зрения, трудно найти задачу лучше этой, которая бы ввела школьника в проблематику «олимпиадного программирования». Для решения не требуется никаких специальных знаний и сложного программирования, однако при всей кажущейся простоте задачи, на ней могут «сесть в лужу» даже самые сильные школьники. Мало у кого проходит самый сложный тест к задаче – 134. Ответ: 1 0 0.
    (Московская городская олимпиада по программированию, 1988 год)

    Пара носков стоит 1.05 руб., связка (12 пар) стоит 10.25 руб., а коробка (12 связок) стоит 114 руб. Составьте программу, которая по числу n пар носков, которые хочет купить покупатель, вычисляет числа n1, n2, n3 коробок, связок и пар носков, которые ему следует (выгоднее всего) купить. Пример входных данных: 11. Пример выходных данных: 0 1 0 (вместо 11 пар носков следует покупать связку – это обойдется дешевле).

  2. В задаче «Волшебная последовательность» есть над чем поломать голову, однако решается она гениально просто – достаточно одного цикла FOR. Лучшей олимпиадной задачи для начинающих на тему «циклы» трудно придумать. Главное здесь – догадаться до идеи, как строить последовательность. Ответ: N-2 единиц, 2 и N.
    (I Всероссийская Командная Олимпиада по программированию)

    Недавно Петя научился считать. Он тут же заметил, что число 2 обладает замечательным свойством 2+2=2x2. Его старший брат Ваня тут же объяснил ему, что дело не в двойке. «Дело в том, что последовательность 2, 2 – волшебная,» - сказал Пете Ваня. «Волшебная последовательность – это такая последовательность натуральных чисел, что сумма ее членов равна их произведению. Например, последовательность 1, 2, 3 – тоже волшебная». Петя тут же сложил 1, 2 и 3, потом перемножил их и обрадовался. Теперь Петя хочет найти более длинные волшебные последовательности. Помогите ему!

  3. В олимпиаде для первого семестра традиционно предлагается много задач целочисленной арифметики, в решениях которых запрещено использование логических выражений и условных операторов. Главное здесь – при ограниченных ресурсах (фактически div и mod), выписать формулы для решения задачи, которые должны, ко всему прочему, работать при любых входных данных, включая граничные случаи.
    Задача «Часы» - одна из самых сложных задач, она предлагалась на I Закрытой Олимпиаде Школы программистов. Об этой задаче в Школе программистов ходят легенды – вывод формулы, которая решает последние два пункта задачи и работает при любых входных данных, на разборе задач занял около часа!

    С начала суток прошло n секунд. Определить:
    • сколько полных часов прошло с начала суток
    • cколько полных минут прошло с начала очередного часа
    • сколько полных секунд прошло с начала очередной минуты
    • cколько полных минут пройдет до того момента, когда часовая и минутная стрелки на циферблате впервые совпадут
    • сколько полных минут пройдет до того момента, когда часовая и минутная стрелки на циферблате впервые расположатся точно перпендикулярно друг другу
    Примечание: часовая, минутная и секундная стрелки перемещаются по циферблату с равными дискретными шагами в 1/60 циферблата (циферблат разбит на 60 частей). При вычислении положения минутной и часовой стрелки округления производятся в меньшую сторону, то есть стрелки не занимают промежуточных положений и не перемещается на следующую позицию раньше времени. Например, если с начала суток прошло 119 секунд, то минутная стрелка указывает на 1 минуту, часовая на 0 часов.