Сегодня писал ответ Нине Шумилиной из Твери, на вопрос о Python, как первом языке программирования в школе.
Она цитировала Константина Полякова, заключение его
статьи в сентябрьском номере "Информатики":
По этим причинам автор склонен поддержать мнение И.А. Сукина: Python хорош для профессиональных программистов, но его использование в качестве
(
Read more... )
Comments 88
(The comment has been removed)
Reply
И там и там в скобках _число_. И все.
А из этого получается очень простое обоснование
x = y = z;
Путать == и = отучаются очень быстро. Возможно, лучше, чтобы это отлавливал компилятор. Но в этих делах интерпретируемый язык Питон явно проигрывает.
Reply
(The comment has been removed)
Конечно, писать программы лучше с использованием наиболее высокоуровневых возможностей из предоставляемых языком и платформой. Но всегда важно знать их ограничения. Ибо рано или поздно придётся продукт масштабировать, и вот тут непонимание того, что стоит за тем или иным синтаксическим сахаром может выйти боком. Не стоит уповать на то, что большая часть этих школьников будут писать нечувствительные к производительности компоненты для бизнес-задач. Нет, они будут писать всю эту "бизнес-лапшу", но только не в первом, дак в пятом проекте придётся её оптимизировать. И оптимизировать в том числе выбрасыванием сахара.
В целом, это конечно, тоже методологическая проблема - как объяснить школьникам, что подход "понимаю то, что применяю" нужно применять не только к циклам и сортировке, но и к любой другой новой фиче языка. Думаю, что она решаема, но эта проблема новая - её не было при переходе к высокоуровневым языкам после низкоуровневых
Reply
Именно! Меня наверное закидают тапками, но мне кажется для обучения профессиональному программированию хорошим вариантом было бы предварять работу на высокоуровневом языке работой на низкоуровневом. Если же речь идет только об ознакомлении, то в зависимости от самых разных факторов где-то паскаль предпочтительней где-то питон, где-то Си. Только не объектно ориентированные языки.
Reply
Боже мой, неужели это правда? Я давно слышал, что ВМК гадюшник тот еще, но всегда считал, что хотя бы специалисты там приличные.
Reply
Можно показать студентам, что на Паскале легко определить функцию заполнения любого массива. Следующий вопрос - заполнение любыми объектами, по идее должен вызвать дискуссию о строгой и нестрогой типизации.
В принципе, вы не оригинальны, 40 лет назад так же аргументировали выбор бейсика. Язык программирования, прежде всего - это средство создания словаря для решения задачи в её же терминах.
Основные претензии к питону: нелепые для современного языка требования к табуляциям (как в фортране 50-60-х годов) и отсутствие полной проверки синтаксиса. То есть у школьника поощряется с одной стороны механистичное следование отступам, с другой - возможность написать некорректный код, которы стрельнет в самый неподходящий момент выполнения.
Reply
И существует ли проблема с вопросом "А как вообще это работает?" Т.е. вы рассказываете про двоичный код и тут же Питон. Все же в С можно понимать, как это все работает (после ВМКшного курса вплоть до ассемблера). Да, не стоит мне приводить ужасные допустимые конструкции в С, а так же все знание о преобразовании в асм умирает с волшебством оптимизатора, но все же.
Просто программируя на Питоне, я забываю про такие слова как мантисса, выделение памяти да и вообще память, двоичное представление числа и так далее. А насколько я помню, это так же входит в школьную программу. И С и Паскаль были приземленнее что ли.
Reply
И когда я учу детей на Питоне, то почему-то могу говорить и про двоичное представление чисел, и про битовые операции, и про дополнительный код, и про мантиссы и IEEE-754 - это всё даже в Python никто не отменял... Ну да, выделения памяти как такового там нет, этого уж не отнимешь.
Reply
Главная цель - увлечь. Увлечённый школьник уже без нас разберётся и в алгоритмах и в кучах-стэках и во всём остальном, независимо от первого языка. Т.е. с нами, конечно, но он будет всё, что ему надо, из нас вытягивать и не только из нас.
А методом запихивания всё равно ничего ни в кого не запихаешь, на каком бы языке это ни делали.
Reply
Leave a comment