LINUX.ORG.RU

История изменений

Исправление kaldeon, (текущая версия) :

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

Ого. А можно парочку примеров? Особенно про непонятные ситуации, отложенные и скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить их на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный для машины формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, то есть не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.

Исправление kaldeon, :

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

Ого. А можно парочку примеров? Особенно про непонятные ситуации, отложенные и скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить их на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный для машины формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, но не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.

Исправление kaldeon, :

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

Ого. А можно парочку примеров? Особенно про непонятные ситуации, отложенные и скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить их на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный для машины формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, но не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.

Исправление kaldeon, :

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

Ого. А можно парочку примеров? Особенно про непонятные ситуации, отложенные и скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить их на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный для машины формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. Собственно, В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, но не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.

Исправление kaldeon, :

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

Ого. А можно парочку примеров? Особенно про непонятные ситуации, отложенные и скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный машинный формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. Собственно, В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, но не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.

Исправление kaldeon, :

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

Ого. А можно парочку примеров? Особенно про непонятные ситуации и скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный машинный формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. Собственно, В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, но не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.

Исправление kaldeon, :

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

Ого. А можно парочку примеров? Особенно про скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный машинный формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. Собственно, В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, но не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.

Исходная версия kaldeon, :

Lor

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

Ого. А можно парочку примеров? Особенно про скрытые ошибки.

так что в моем понимании обучение может быть выстроено примерно так: …

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

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

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

Факториалы, сортировки и бинарный поиск неизбежно нужно объяснять на пальцах, но было бы круто побыстрее (возможно, не моментально) закрепить на практике.

далее можно переходить ближе к компьютерам: …

Бинарники, ассемблер, трансляцию можно объяснить после написания helloworld.pas. Будет наглядная демонстрация, что ученики обычно любят, а не сухая абстракция «перевод исходного кода (чем бы он ни был) в более дружелюбный машинный формат (как бы он не выглядел)».

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

О переменных и типах, опять же, было бы круто рассказать, когда есть возможность демонстрации, то есть работа с языком. Собственно, В Систематическом программировании Вирт сперва вводит ученика в язык, затем в типы данных. В Алгоритмах и структурах данных (более продвинутый уровень) он также начинает с типов и сразу демонстрирует их на языке.

В целом, я считаю, что Паскаль — вполне дружелюбный язык, чтобы поскорее, пусть не с самого начала, им сопровождать теорию и заменить «объяснения на пальцах» и блок-схемы. Я бы точно не выбрал для этой задачи Си, но Паскаль как будто создан для этого.

Спасибо за ответ, вы угадали что я хотел услышать.

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

Не знаю что именно вы имеете ввиду под «базовыми структурами данных», но я имею ввиду строки, связанные списки и хэш-таблицы. Возможно, что-нибудь ещё простое в реализации как бинарное дерево, но не балансировка, префиксное дерево или графы.

Это поможет показать, что на самом деле не существует никакой хэш-таблицы, что это обычный массив, не обязательно динамический, что в Питоне не «массивы удобнее», а просто реализация скрыта. Это способствует созданию правильной иерархии, что в свою очередь позволяет проще привить важность основ, чем поиск удобных решений.

на практике будет видно, что алгоритмы важнее языков - ученики попробуют два разных языка, но принципы разработки программ на них одинаковы

Хороший аргумент против тех, кто говорит что нужно сразу начинать с JavaScript.

с python уже можно уйти в практические задачи: …

Если честно, я пока что неточно представляю что лучше делать на данном этапе.

Наверное, здесь уже размывается важность выбора языка для демонстрации работы с ОС (это включает в себя работу с файлами, аргументами командной строки и сетью). Хотя на Си было бы легче показать.