Почему Python должен быть первым языком программирования в школе?

Nov 23, 2014 13:41

Сегодня писал ответ Нине Шумилиной из Твери, на вопрос о Python, как первом языке программирования в школе.

Она цитировала Константина Полякова, заключение его статьи в сентябрьском номере "Информатики":
По этим причинам автор склонен поддержать мнение И.А. Сукина: Python хорош для профессиональных программистов, но его использование в качестве ( Read more... )

Leave a comment

iscremas November 23 2014, 16:00:12 UTC
Я тут недавно где-то на просторах встретил замечание, которое поддерживаю чуть более чем полностью: "Всё чему учат на курсах программирования - это в лучшем случае алгоритмы. Про то, как писать программы, никто не учит."
Не уверен, имеет ли смысл учить этому именно школьников, но я абсолютно уверен, что сейчас по факту этому не учат нигде, даже в лучших ВУЗах, а тема более чем актуальна для людей, стремящихся стать профессионалами, или же просто программировать реальные приложения.
Постоянно сталкиваюсь с тем, что приходят на работу даже "опытные программисты" и не знают ни шаблонов проектирования, ни принципов дизайна классов, наступают вновь из раза в раз на одни и те же грабли. И от языка это знание не зависит вообще почти никак...

Reply

dkirienko November 23 2014, 16:16:27 UTC
Это верное замечание, и про вузы тоже верное замечание. Хотя где-то в вузах есть курсы, посвященные проектированию и дизайну классов.

Что до того, как учить "писать программы". Мне кажется, что я умею учить писать программы - на простом, школьном уровне. Сейчас я зачастую стараюсь добиваться от школьников, чтобы к их коду нельзя было придраться - то есть я сам придираюсь к коду до тех пор, пока не получится хороший код. Конечно, это не проектирование классов, это маленькие учебные программы, но я слышал отзывы от преподавателей летней компьютерной школы, что школьники 179 школы отличаются тем, что они умеют писать ХОРОШО.

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

Эх, планы, планы...

Reply

iscremas November 23 2014, 17:04:38 UTC
Я не знаю, как это сформулировать, но с высоты прожитых 10 лет в качестве профессионального программиста - я до сих пор познаю дзен, и конца этому явно пока не видится. Постоянно натыкаюсь на очередной "сгусток сакральных знаний" и периодически прихожу к пониманию, что до этого всё писал плохо и имел неверные установки и убеждения. А всё из-за того, что не было тогда человека, который бы мне показал эти вещи, и, самое главное, объяснил бы как этим пользоваться реально. Из начальной базы были только алгоритмы (хотя и на этом спасибо). А всё из-за того, что у преподавателей свои задачи и свои навыки, и обучают они на каких-то абстрактных задачах, пусть даже сложных и олимпиадных, но в вакууме ( ... )

Reply

gbnjy iscremas June 28 2015, 14:37:34 UTC
На сайте фоксфорд есть курс для школьников - программирование на языке Python для 6,7,8 классов. Там я впервые узнал, что есть такой язык. Ну и Вас почитал, убедительно. Мне кажется, такой язык интереснее для школьников, так как позволяет делать интересные вещи, практически полезные. Пусть этот язык "перескакивает" через какие-то важные этапы в обучении программированию, он, с другой стороны, может дать важную вещь, которая недооценивается - что такое писание программ или программирование в целом. Все-таки синтез важнее, чем анализ, о чем в наш век очень часто забывают.

Reply

denspb November 24 2014, 08:59:28 UTC
У реальных задач есть два свойства, которые довольно сложно смоделировать при обучении.
Во-первых, размер задачи. Задачу на пару человеко-часов можно просто удержать в голове.
Что-то на неделю-месяц разработки уже требует немного полезных дисциплин (без хотя бы простейшего правила для имён переменных становитcя сложно). А основные практические знания нужны в чём-то размером начиная с 5-6 человеко-месяцев.
А во-вторых, реальные задачи отличаются нечёткими условиями, меняющимися со временем и не очень чёткими критериями "правильного ответа".

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

Хорошие курсовики могут что-то из этого смоделировать, но не все.

Reply


Leave a comment

Up