Я преподаю Python для магистров по математике. Меня интересует оптимальный порядок, в котором учащиеся должны быть ознакомлены с различными концепциями Python. На мой взгляд, на каждом этапе студенты должны иметь возможность решить нетривиальную проблему программирования, используя только имеющиеся в то время инструменты. Каждый новый инструмент должен позволить более простое решение знакомой проблемы. Выбор множества концепций, доступных на Python, необходим для того, чтобы держать учащихся в центре внимания. Они также должны мотивироваться и должны ценить каждый вновь освоенный инструмент без слишком большого запоминания. Вот некоторые конкретные вопросы:
- Например, мой предшественник представил списки перед строками. Я считаю, что наоборот - лучшее решение.
- Должны ли быть введены определения функций в самом начале или после освоения основных идей структурированного программирования, таких как решения (if) и циклы (while)?
- Должны ли вводиться множества перед словарями?
- Лучше ли начинать чтение и запись файлов на раннем этапе курса или использовать вход и печать для большей части курса?
Любые предложения с пояснениями приветствуются.
Изменить: В старшей школе ученики познакомились с компьютерами. Некоторые из них научились программировать. До этого у них был курс, охватывающий слово, excel, powerpoint, html, латекс, вкус Mathematica, но не программирование. 5 лет назад я использовал Mathematica в этом курсе, и в последующем курсе используется C и более поздняя Java. Теперь я преподаю введение в Python, и в последующем курсе мой коллега учит объектно-ориентированному программированию на Python. Позже студент может проводить специальные курсы по структурам данных, алгоритмам, оптимизации и на некоторых факультативных курсах, которые они изучают на своих собственных Mathematica, Matlab и R.