?

Log in

No account? Create an account
 

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

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

Previous Entry Почему Python должен быть первым языком программирования в школе? 23 ноя, 2014 @ 13:41
Оставить комментарий
[User Picture Icon]
From:8kap8
Date:Ноябрь, 23, 2014 12:40 (UTC)
(Link)
Я еще добавлю вот какую мысль. Когда-то программированию учили на ассемблере (или даже в машинных кодах), и, когда появились языки высокого уровня, тоже наверняка были большие дебаты на тему того, можно ли начинать обучение программированию с языка высокого уровня, или надо обязательно учить ассемблер. Аналогичная проблема наверняка появлялась и во многих более мелких ситуациях (можно ли учить работе с файлами через стандартные функции, или надо досконально понимать, что происходит на низком уровне?) Поэтому вопрос с питоном — это, на мой взгляд, просто развитие этой же темы.
[User Picture Icon]
From:dkirienko
Date:Ноябрь, 23, 2014 13:06 (UTC)
(Link)
Петя, это у меня в планах, этот кусок я не дописал. По этому поводу у меня есть замечательные цитаты - предисловие Кнута к "Искусству программирования", где он 50 лет назад рассуждает, на каком языке ему приводить примеры - на машинном или на "алгебраическом", под "алгебраическими" он подразумевает Fortran или Cobol. И останавливается на машинном языке, который сам же и придумывает. Его аргументы:

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

2. Студенту наверняка придется изучить не один машинный язык, коли он изучил один, то и с остальными будет нетрудно, значит, ничего страшного нет в том, чтобы писать коды на вымышленном машинном языке.

И в результате через 50 лет примеры кода у Кнута читать невозможно. Это самый большой недостаток "Искусства программирования" - примеры на машинном коде. С другой стороны, если бы он писал примеры на Fortran или Cobol, то результат был бы не лучше.

Поэтому в томе 4A, например, он уже примеры программ пишет просто на "естественном" языке.

Я про это планирую написать, когда займусь доработкой статьи.

Edited at 2014-11-23 13:09 (UTC)
From:(Anonymous)
Date:Ноябрь, 23, 2014 13:25 (UTC)

от Вл. Ильина

(Link)
Первым языком программирования должен быть Кумир, видимо, я согласен с Кнутом.

Кстати, не раскрыта тема "вторых", "третьих" языков. Первый язык в школе - Питон. А второй, или одного для школы достаточно?

А в вузе? С учетом того, что студенты разные - и "забудьте все, чему вас учили в школе" - опять Питон?

И еще важный вопрос.
Что значит "должен быть"? Это должно быть закреплено в стандарте?
[User Picture Icon]
From:dkirienko
Date:Ноябрь, 23, 2014 13:36 (UTC)

Re: от Вл. Ильина

(Link)
Не понял ремарку про Кумир и Кнута. Кнут вообще-то на вымышленном машинном языке писал примеры.

Про "вторые" и "третьи" языки я писать вообще-то не собирался, но вот написал ниже, посмотри комментарий. На мой вкус Python одного - достаточно, но тут возможны и варианты. Хочешь объяснять, как устроены массивы и динамическая память - ну рассказывай про С, пожалуйста.

"должен быть" - нет, я не претендую на закрепление статуса языка в стандарте. В стандарте вообще ни один язык не указан, поэтому вряд ли нужно туда вписывать какой-то конкретный язык.

Что касается вузов - это сложный вопрос. Мы несколько лет назад в поезде в ЛКШ.Зима обсуждали этот вопрос и я спрашивал, каким языкам программирования должны учить в вузе. Высказывались разные мнения и только один язык называли все - это C.

Ну "линейку" для вуза для специальности "Прикладная математика и информатика" я бы построил так, возможно, в разной последовательности.

1. Python
2. C
3. C++
4. Java или C#
5. Assembler
6. Что-то функциональное.

Причем роль Python здесь - это скорее унификация, выравнивание студентов, разминка некоторая. Студенты приходят разные, нужно с чего-то начинать. Если начинать сразу с C, то это может быть тяжело для некоторых.


[User Picture Icon]
From:Daniil Ayzenshteyn
Date:Ноябрь, 23, 2014 19:31 (UTC)

Re: от Вл. Ильина

(Link)
Почему не начинать с Java/C#?
[User Picture Icon]
From:dkirienko
Date:Ноябрь, 23, 2014 19:40 (UTC)

Re: от Вл. Ильина

(Link)
Почему в MIT не начинают с Java/C#? С простых вещей надо начинать.
[User Picture Icon]
From:Daniil Ayzenshteyn
Date:Ноябрь, 23, 2014 19:51 (UTC)

Re: от Вл. Ильина

(Link)
Что из Java/C# непростое в том смысле, что имеет высокий порог входа? Концепция "Всё есть класс"?
[User Picture Icon]
From:dkirienko
Date:Ноябрь, 23, 2014 19:54 (UTC)

Re: от Вл. Ильина

(Link)
Размер кода, который нужно написать, чтобы программа заработала.
[User Picture Icon]
From:Daniil Ayzenshteyn
Date:Ноябрь, 23, 2014 20:07 (UTC)

Re: от Вл. Ильина

(Link)
С трудом себе представляю студента, который, умея программировать (хоть как-то) на Python/C++/Pascal/BASIC испугался бы этой стандартной обёртки, которую ещё и среда разработки генерит по дефолту. А в остальном размер кода не сильно отличается
[User Picture Icon]
From:dkirienko
Date:Ноябрь, 23, 2014 20:20 (UTC)

Re: от Вл. Ильина

(Link)
Это какая-то бессмысленная дискуссия. Я вот с трудом представляю себе лектора, который желая обсудить такие вопросы, как двоичный поиск - обход в глубину - сортировка захочет начинать курс с того, что это де мол язык Java и я буду на нём писать примеры кода.

Вот я обсуждал эту статью с Андреем Станкевичем, он говорит, что он алгоритмы на лекциях пишет на питоноподобном псевдокоде. Хотя основной язык программирования для студентов в ИТМО - это Java.
[User Picture Icon]
From:Daniil Ayzenshteyn
Date:Ноябрь, 23, 2014 20:39 (UTC)

Re: от Вл. Ильина

(Link)
Для алгоритмического курса - я соглашусь, что это более правильно. Я просто, видимо, не вполне понял цель "унификационного" курса
[User Picture Icon]
From:perepertoz
Date:Ноябрь, 27, 2014 01:42 (UTC)
(Link)
1) нормально всё читается. язык же компактный
2) он мог бы писать примеры на scheme, но это была бы другая книга :)
From:vlad_tcvs
Date:Апрель, 18, 2015 15:45 (UTC)
(Link)
В области программирования микроконтроллеров до сих пор идут дебаты. А после появления ардуино они стали куда жарче.

(Оставить комментарий)
Top of Page Разработано LiveJournal.com