• Преподавателю
  • Информатика
  • Рабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»

Рабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»

Раздел Информатика
Класс 11 класс
Тип Рабочие программы
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Рабочая программа элективного курса по информатике


11 класс


«Язык Python: основы программирования,
реализация известных алгоритмов»

Составитель: Тузов Александр Анатольевич,
учитель информатики высшей категории

2014 г.

Рабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»Пояснительная записка

Элективный курс по информатике «Язык Python: основы программирования,
реализация известных алгоритмов»Основы программирования на Python" представляет собой вводный курс по программированию, дающий представление о базовых понятиях структурного программирования (данных, операциях, переменных, ветвлениях в программе, циклах и функциях, массивах, файлах), о реализации с помощь. Python наиболее известных в математическом обеспечении программирования алгоритмов:

  • Алгоритм Евклида (нахождение наибольшего общего делителя)

  • Вычисление факториала на языке программирования Python

  • Двоичный (бинарный) поиск элемента в массиве

  • Замена элементов в списке

  • Перевод чисел из десятичной системы счисления в двоичную

  • Решето Эратосфена - алгоритм определения простых чисел

  • Сортировка выбором (поиск минимума и перестановка)

  • Сортировка методом пузырька

  • Сумма и произведение цифр числа

  • Тестирование простоты числа методом перебора делителей

  • Числа Фибоначчи (вычисление с помощью цикла while и рекурсии)

Выбор Python обусловлен тем, что это язык, обладающий рядом преимуществ перед другими языками: ясность кода, быстрота реализации. По состоянию на июль 2014 года (prog-school.ru/2014/07/python-1-po-populyarnosti) Python вышел на 1-е место в программах начального обучения программированию в университетах США, пишет журнал Communication of the ACM.



27 из 39 крупнейших факультетов программирования (69%) в университетах предлагают курсы обучения на Python. Ситуация изменилась в последние три года. В частности, недавно на Python перевели вводные курсы программирования Массачусетский технологический институт и Калифорнийский университет в Беркли. На втором месте по популярности находится Java (22 из 39), далее следуют MATLAB (8), C++ (6), C (6), Scheme (4), Scratch (3). Автор исследования в журнале Communication of the ACM проделал хорошую работу, собрав информацию с названиями курсов программирования во всех университетах. Список постепенно обновляется, по мере того, как читатели присылают уточнённую информацию из своих вузов.
Список «крупнейших» факультетов ИТ взят из этого рейтинга: .grad-schools.usnews.rankingsandreviews.com/best-graduate-schools/top-science-schools/computer-science-rankings


Другие критерии выбора языка программирования:

  • Язык программирования - средство, а не цель

  • Свободная кросс-платформенная реализация

  • Удобная среда разработки, адаптированная

  • для учебного процесса

  • Широкая распространенность,

  • поддерживаемость и развиваемость языка

  • Возможность автоматической проверки

  • Понятность языка и легкое восприятие учащимися

Достоинства языка Python:

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

  • Используется для промышленного программирования, для решения "домашних" прикладных задач и для обучения

  • Кросс-платформенная, свободная реализация

  • Хорошо документирован (python.org)

  • Имеется во всех Linux-дистрибутивах, свободен и для windows.


Особенности языка Python:

  • Интерпретируемый

  • Блоки кода выделяются величиной отступа:

max = A[0]

for elem in A:

if elem > max:

max = elem

  • Динамическая типизация переменных

a = 2 + 2

a = "hello"

Полностью объектно-ориентированный

print(" ".join(map(str,
sorted(list(map(int,input().split()))))))


Python - язык на все вкусы:

  • Высокоуровневые структуры данных: списки, множества, ассоциативные массивы

  • Элементы функционального программирования

  • Разработка GUI

  • Сетевые приложения

  • Web-приложения

  • Базы данных

Предельно лаконичный и понятный синтаксис:

Рабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»


Версии 2 и 3 языка Python:

  • Сейчас существует две основные версии языка - 2 и 3, которые не полностью совместимы

  • Много наработок именно по версии 2

  • Версия 3 более совершенна с точки зрения дизайна языка

  • Тем не менее, версия 2 более не развивается, поэтому рекомендуется сразу же использовать версию 3

Автоматическая проверка:

  • Поддержка в системе ejudge и других

  • Поддерживается на сайте informatics.mccme.ru

  • Поддержка учебных курсов от начального обучения программированию до олимпиад высокого уровня

  • Поддерживается на других сайтах: neerc.ifmo.ru/school/
    codeforces.ru

Межпредметные связи:

  • с математикой (повторение, изучение основных алгоритмов математического обеспечения программирования),

  • с английским языком (предлагается использование в качестве дополнительной литературы популярных книги для детей по Python на английском языке)

Наш выбор Python для преподавания в элективном курсе лишь естественный выбор помочь ученикам сделать первые шаги по одному из современных и перспективных путей развития IT-индустрии, не дожидаясь, пока раскачаются чиновники и издательства по выпуску печатных версий элективного курса


Курс рассчитан на 35 часов ( 1 час в неделю) и основан на авторских курсах «Основы программирования на Python», «Реализация известных алгоритмов на языке программирования Python», разработанных С.В.. Шапошниковой, МБОУ ДОД ЦД(Ю)ТТ "Городской" г. Липецка (sshap@yandex[тчк]ru)и распространяемых согласно лицензии GNU FDL:

younglinux.info/python.php (window.edu.ru/resource/825/76825)

younglinux.info/algorithm,

younglinux.info/sites/default/files/plan_12_II.pdf

younglinux.info/sites/default/files/lablin_eduprog_2011.pdf

В курсе предлагается использовать задачную методику . Курс разбит на темы, каждая тема сопровождается минимальным теоретическим введением и несколькими десятками задач. Автоматическая система проверки на сайте: informatics.mccme.ru. Просмотр сданных решений. Подбор задач для каждого ученика необходимо выполнять исходя из их умственных способностей и психологического настроя к программированию, Задачи каждому ученику выдаются адресно. задачи для каждого ученика посильные, т.е. он заведомо уверен в своем успехе.

Учебно-тематический план


№ п/п

Тема

Кол-во часов

1

История языков программирования.. Язык Python. Простейшие программы. Реализация вычислений и ветвлений.

6

2

Реализация циклических, вспомогательных алгоритмов алгоритмов. Рекурсия.

7

3

Словари. Массивы. Обработка массивов

8

4

Символьные строки. Обработка символьных строк.

7

5

Матрицы. Ввод, вывод, обработка матриц.
Чтеие и запись текстовых файлов.

5

6

Резерв времени

2


Итого:

35


Содержание программы



История языков программирования. Компиляция и интерпретация.

Знакомство с Python и средами программирования.

Типы данных в программировании. Определение переменной.

Ввод данных с клавиатуры.

Логические выражения.

Условный оператор. Инструкция if.

Множественное ветвление.

Цикл While и For.

Строки как последовательности символов.

Списки - изменяемые последовательности. Массивы.
Основные задачи обработки массивов: поиск, сортировка, реверс, ...

Введение в словари.

Функции в программировании. Параметры и аргументы функций.
Локальные и глобальные переменные. Процедуры.

Файлы. Чтение текстового файла. Запись в файл.

Алгоритм Евклида (нахождение наибольшего общего делителя)

Вычисление факториала на языке программирования Python

Двоичный (бинарный) поиск элемента в массиве

Замена элементов в списке

Перевод чисел из десятичной системы счисления в двоичную

Решето Эратосфена - алгоритм определения простых чисел

Сортировка выбором (поиск минимума и перестановка)

Сортировка методом пузырька

Сумма и произведение цифр числа

Тестирование простоты числа методом перебора делителей

Числа Фибоначчи (вычисление с помощью цикла while и рекурсии)

Требования к планируемым результатам

После изучения курса учащиеся должны:

- знать место языка Python среди языков программирования высокого уровня,

- знать особенности структуры программы, представленной на языке Python,

- иметь представление о модулях, входящих в состав среды Python?

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

- иметь представление о величине, ее характеристиках,

- знать что такое операция, операнд и их характеристики,

- знать принципиальные отличия величин структурированных и не структурированных,

- иметь представление о таких структурах данных, как число, текст, кортеж, список, словарь,

- иметь представление о составе арифметического выражения;

- знать математические функции, входящие в Python,

- иметь представление о логических выражениях и входящих в них операндах, операциях и функциях,

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

- знать основные операторы языка Python, их синтаксис,

- иметь представление о процессе исполнения каждого из операторов,

- уметь разрабатывать программы обработки числовой и символьной информации,

- уметь разрабатывать программы (линейные, разветвляющиеся и с циклами),

- иметь представление о значении полноценных процедур и функций для структурно-ориентированного языка высокого уровня,

- знать правила описания процедур и функций в Python и построение вызова процедуры,

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

- знать область действия описаний в процедурах,

- иметь представление о рекурсии, знать ее реализацию на Python,

- владеть основными приемами формирования процедуры и функции,

- знать, как c с помощь. Списков определять в программе тип «массив», «матрица»

- знать свойства данных типа «массив», «матрица»

- уметь воспроизводить алгоритмы сортировки массивов и матриц, поиска в упорядоченном массиве, распространять эти алгоритмы на сортировку и поиск в нечисловых массивах

- уметь читать и записывать текстовые файлы в заданном формате.

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


Календарно-тематическое планирование

Номер урока

Тема урока

Плановые сроки
прохождения

Скорректированные сроки
прохожде-ния

История языков программирования.Знакомство с Python

Простейшие программы.

5.9


Вычисления. Стандартные функции.

12.9


Условный оператор.

19.9


Сложные условия.

26.9


Множественный выбор.

3.10


Контрольная работа «Ветвления».

10.10


Цикл с условием.

17.10


Цикл с переменной.

24.10


Вложенные циклы.

31.10


Процедуры.

14.11


Функции.

21.11


Рекурсия.

28.11


Контрольная работа «Циклы, процедуры, функции».

5.12


Введение в словари

12.12


Массивы. Перебор элементов массива.

19.12


Поиск в массиве.

26.12


Алгоритмы обработки массивов (реверс, сдвиг).

16.1


Отбор элементов массива по условию.

23.1


Сортировка массивов. Метод пузырька, метод выбора

30.1


Двоичный поиск в массиве.

6.2


Контрольная работа «Массивы».

13.2


Символьные строки.

20.2


Функции для работы с символьными строками.

27.2


Преобразования «строка-число».

6.3


Строки в процедурах и функциях.

13.3


Сравнение и сортировка строк.

20.3


Практикум: обработка символьных строк.

27.3


Контрольная работа «Символьные строки».

3.4


Матрицы. Ввод матриц с клавиатуры, с пом. генератора случайных чисел..

10,4


Обработка матриц.

17.4


Файловый ввод и вывод.

24.4


Обработка смешанных данных, записанных в файле.

7.5


Контрольная работа «Матрицы. Файлы».

12.5


  1. 35

Резерв времени

Приведённые в пояснительной записке наиболее известные алгоритмы реализуются различными способами на Языке Python в ходе изучения тем, представленных в поурочно-тематическом планировании.



Перечень учебно-методического обеспечения


  • Ресурсы сайта Л. Шапошниковой (younglinux.info) , содержащие

    • авторские программы

      • younglinux.info/python.php (window.edu.ru/resource/825/76825)

      • younglinux.info/algorithm

    • учебные пособия younglinux.info/sites/default/files/python_structured_programming.pdf

  • Сайт Д.П.Кириенко. Московский институт открытого образования. Школа №179

    • 179.ru/~dk/python.html

  • Ресурсы сайта профессора, доктора технических наук, учителя информатики высшей категории, автора учебников по информатике К.Ю. Полякова:

    • kpolyakov.spb.ru/loadstat.php?f=/download/ch10-8_python.pdf

    • kpolyakov.spb.ru/loadstat.php?f=/download/slides10-8py.zip

    • hРабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»ttp://kpolyakov.spb.ru/download/progr1011.doc

    • kpolyakov.spb.ru/download/infobr_2013-6.pdf

  • Сайт дистанционная подготовка по информатике
    informatics.mccme.ru/

    • informatics.mccme.ru/course/view.php?id=95

  • Изучаем Python Автор: Марк Лутц Издательство: Символ-Плюс ISBN 978-5-93286-159-2, 978-0-596-15806-4; 2011 г. Переводчик: А. Киселев

  • HРабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»ead First Python. Автор: Paul Barry. Bздательство: O'Reilly, год: 2010, Язык: Английский, страниц: 494, формат: pdf, размер: 33 МБ
    (forcoder.ru/python/head-first-python-1191)

  • Hello World!
    Computer Programming for Kids and Other Beginners
    Second edition, Warren D. Sande and Carter Sande
    helloworldbookblog.com/

  • Python for Kids. A Playful Introduction to Programming
    by Jason R. Briggs
    2012, 344 pp.
    ISBN: 978-1-59327-407-8
    Full Color
    nostarch.com/pythonforkids)

  • Язык Python: python.org

  • Среда разработки Wing IDE: wingware.com


© 2010-2022