Тест начала программирования 8 класс

В течение последних двух месяцев я помогал 8-му классу моего сына учиться программировать. Все студенты написали программы на Python и получили представление о том, что такое программирование. В этом посте есть подробная информация о том. Как мы организовали курс, примеры кода и извлеченные уроки.

В этом году все школы Швеции обязаны начать обучение программированию. Многие школы уже преподают программирование, но они зависят от наличия учителей, которые знают достаточно. Чтобы преподавать. Написание кода будет включено в предметы математика и технология. В начале этого года другой папа 8-го класса, Олле, вызвался помочь преподавать программирование этой осенью. Он также нанял меня (как коллегу-программиста-энтузиаста), чтобы помочь.

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

Питон. Мы с Олле пару раз собирались вместе, чтобы все спланировать. Мы обсудили, какой язык и среду использовать. Мы выбрали Python по нескольким причинам. Во-первых, и Олле, и я уже знаем Python (я использую его каждый день на работе). Во-вторых, у всех студентов есть MacBook Air, так что уже установлена среда разработки для Python. На их компьютерах есть Python 2.7.10 и редактор IDLE. Python также является хорошим выбором. Потому что его синтаксис относительно прост и компактен и в настоящее время является самым популярным языком.

Никакой магии. Кэролайн хотела. Чтобы студенты изучали текстовое программирование.

Блочное программирование хорошо подходит для отображения таких понятий, как if-операторы и циклы. Однако профессиональное программирование почти исключительно основано на тексте. Но профессиональное программирование также включает в себя использование многочисленных фреймворков и библиотек. И мы хотели избежать этого. Мы хотели добраться до сути программирования, избегая при этом “магического” поведения. Поэтому программы должны быть максимально самодостаточными. Поведение кода должно быть очевидно из инструкций, не полагаясь на функциональность внешних библиотек.

Минимальное подмножество. Мы также решили, что хотим свести к минимуму количество используемых языковых конструкций. Сохраняя при этом возможность писать программы с хорошей логикой. Все программирование сводится к использованию переменных, операторов по порядку, условных выражений и циклов. В терминах Python мы решили, что будет достаточно ввести строки и целые числа, if-elif-else и for-loops. Нам также нужны print-операторы для вывода и raw_input (), чтобы сделать программы интерактивными. И, наконец, с решил показать, как использовать функции, а также. Чтобы иметь возможность показать способ структурирования программ.

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

Наконец, мы хотели показать, что каждый может научиться программировать. Это похоже на изучение любого другого навыка – в нем нет магии. И в идеале мы хотели дать студентам почувствовать радость программирования – чувство выполненного долга. Которое приходит от создания рабочей программы с нуля.

Привет, мир. Первая программа будет простой “Привет. Мир!”-распечатка, которая требует только оператора печати. Конечно, для этого также требуется иметь возможность запускать неработающий редактор. Писать код и запускать программу python в командной строке. Далее вводятся переменные. Мы также говорили о типах (строках и целых числах) и о том, что значения переменных могут быть изменены. Здесь мы также покажем, как вывести значение переменной (используя нотацию %s) и как считывать входные данные.

Калькулятор. Следующий шаг-сделать калькулятор. Это хороший способ ввести понятие функции. Начнем с определения функции add, которая складывает два числа вместе. Затем программа запрашивает у пользователя два числа, вызывает функцию add и выводит результат.

Затем мы пишем функцию вычитания и вводим операторы if, чтобы пользователь мог выбирать между добавлением и вычитанием.

Игра – угадай-число. Последний пример-написать игру Генерируется случайное число (от 1 до 100), и пользователь должен угадать число. Здесь мы должны были ввести один кусок магии, в виде импорта функции randint Мы начали с того. Что просто сгенерировали случайное число и позволили пользователю угадать. А затем сравнили это предположение с числом . Для этого требуется использовать оператор if и преобразовать текстовый ввод в целое число. Следующий шаг-напечатать, является ли предположение правильным, слишком высоким или слишком низким. Отсюда естественно вводить циклы, чтобы пользователь мог угадать несколько раз. Итак, мы ввели здесь цикл for и получили полную игру в угадывание числа. Мы решили использовать цикл for вместо цикла while, чтобы уменьшить количество необходимых конструкций python.

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

Вы также можете составить функции, например, путем сложения, а затем умножения. Или вы можете жестко закодировать один из входов или сделать квадратную функцию.

Игра Вы можете подсчитать количество попыток, написать функцию подсчета очков, сделать диапазон выбираемым, проверить. Было ли число угадано раньше (нужен список). Разрешить несколько игр и т. Д.

Первый урок был в понедельник, 23 октября. Мы с Олле взяли отгул, пришли в школу и вместе провели первую презентацию. Мы начали с небольшого разговора о том, чем вы занимаетесь, когда работаете программистом.

Для программирования мы использовали наши собственные ноутбуки, подключенные к проектору. Мы показали им, как запустить терминал, как запустить режим ОЖИДАНИЯ, как напечатать на принтере “Привет. Мир!” и как запустить эту программу с терминала.

Хорошо быть вдвоем, чтобы один из нас мог ходить по классу и помогать тому, у кого были проблемы с началом занятий. В конце одночасового урока все написали программу на Python и заставили ее работать на своем компьютере. Мы также подчеркнули, что хорошо сотрудничать и помогать друг другу. Профессиональное программирование-это командное усилие, и часто используется парное программирование.

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

Один студент спросил, можем ли мы сделать так, чтобы функция add заняла некоторое время. Чтобы придумать ответ (как если бы компьютер думал).

Это была хорошая возможность показать, как искать ответы на вопросы программирования. Я погуглил “python delay one second”, и первым ударом был вопрос о переполнении стека, показывающий. Как использовать time.sleep(1).

После этого первоначального толчка, Кэролайн взяла на себя и позволила студентам работать над своими программами. Кэролайн прислала мне пару вопросов. И я отправил ей еще несколько примеров программ. Я вернулся в школу через несколько недель и помогал с различными вопросами. Было много отличных идей от студентов о том. Как можно улучшить программу угадай число.

Поэтому я показал, как можно добавить воспроизведение звука, как измерить время, затраченное на правильный ответ. Как отслеживать предыдущие догадки и как отслеживать высокие баллы между запусками программы. Чтобы отслеживать предыдущие предположения, мы использовали список и проверяли, есть ли там текущая догадка. Прежде чем добавлять ее в список. Чтобы отслеживать высокие баллы, мы использовали dict, а pickle хранил его в файле и читал обратно. Так что это были естественные пункты для введения списков и диктантов.

Некоторые студенты решили написать игру-викторину вместо

Программа выводит вопрос и четыре альтернативы. И пользователь выбирает ответ. Были также те, кто играл в Кэролайн сообщила. Что многие студенты были полны энтузиазма и работали над своими программами и дома. В конце курса студентам было предложено показать свои программы родителям. Это прекрасная возможность продемонстрировать то. Что вы создали. И объяснить. Как это работает.

Вот некоторые вещи. Которые мы узнали во время курса.

  • Это хорошо сработало. Чтобы начать кодирование с первого урока. Темп был высоким, поэтому важно убедиться, что все студенты получили помощь. Чтобы запустить свои программы.
  • Как учитель без большого опыта программирования, вы должны признать. Что некоторые ученики скоро будут знать больше, чем вы.
  • Будет трудно понять. Как оценивать работу студентов.
  • Многие студенты помогали другим в решении проблем. Это было хорошо. Но иногда у “помощников” не хватало времени на собственные программы.
  • Запустите IDLE как фоновый процесс (завершите команду с помощью&). Чтобы вы могли запустить код python из той же оболочки.
  • Используйте стрелку вверх. Чтобы повторить последнюю команду – обычно вы хотите запускать одну и ту же программу python снова и снова (после изменения ее в режиме ОЖИДАНИЯ).
  • Используйте ctrl-c. Чтобы остановить запущенную программу.
  • Покажите, как закомментировать код с помощью #
  • Покажите, как делать отступы и отступы блоков кода в режиме ОЖИДАНИЯ. Чтобы им не приходилось делать это вручную строка за строкой.
  • Если в исходном коде есть символы юникода (например, шведские å, ä и ö), необходимо указать кодировку файла. IDLE предлагает это при сохранении. Но вам нужно выбрать его.

Распространенные ошибки и советы по отладке.

  • Убедитесь, что все изменения в режиме ОЖИДАНИЯ сохранены до запуска программы (звездочка рядом с именем файла указывает на несохраненные изменения).
  • Обратите внимание на отсутствующие двоеточия. Отсутствующие скобки и неправильные отступы.
  • Распространенная ошибка при печати переменных-отсутствие знаков %или использование & вместо %.
  • Обратите внимание на случаи. Когда строка (например. Из raw_input ()) сравнивается с целым числом. Это не вызовет ошибки в Python 2, но приведет к тому. Что некоторые сравнения дадут неправильный результат.
  • При устранении неполадок в игре Тогда легче увидеть. Верен ли ответ на каждое предположение. Когда программа будет отлажена. Снова установите ее на случайное число.

Лично я бы не писал код больше часа, прежде чем использовать какую-то систему управления версиями (например, git). Тем не менее, я думаю, что лучше сосредоточиться на чистом аспекте программирования. Когда они только учатся программировать. Вместо того. Чтобы добавлять сложность работы с контролем версий. Достаточно просто сказать им. Чтобы они время от времени делали резервные копии своих программных файлов.

Все используемые примеры кода доступны на GitHub. Обратите внимание, что мы использовали Python 2.7, а не Python 3. В файле есть инструкции о том. Как запустить IDLE и как запустить программу Python getting_started.txt. Затем существует ряд файлов, называемых, например, example1_print_and_variables.py они содержат примеры. С которых мы начали.

Существует одна базовая версия программы угадай число и одна расширенная версия с несколькими наворотами. В конце концов. Была добавлена некоторая “магия”, например. С помощью sleep (). Таймера и воспроизведения звуковых клипов и фоновой музыки. Все это было добавлено по просьбам студентов и. Насколько я могу судить. Никого не смутило.

Ни Каролина, ни Олле. Ни я не знали. Чего ожидать. Когда мы начали это. Однако все вышло лучше. Чем мы надеялись. Сотрудничество между нами означало. Что все студенты писали полные программы на Python. Многие студенты были полны энтузиазма и хотели продолжить программирование.

Для меня было очень приятно видеть. Как студенты “получили это” и быстро придумали всевозможные способы улучшить основные программы. Которые мы представили. Надеюсь, примеры из этого курса могут быть полезны и для других. Если да, пожалуйста. Дайте мне знать в комментариях.

Поделитесь этим:

Подобный этому:

Как Погрузка…