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

Рабочая программа элективного курса по информатике
11 класс
«Язык Python: основы программирования, реализация известных алгоритмов»
Составитель: Тузов Александр Анатольевич, учитель информатики высшей категории
2014 г. Пояснительная записка
Элективный курс по информатике «Язык Python: основы программирования, реализация известных алгоритмов»Основы программирования на Python" представляет собой вводный курс по программированию, дающий представление о базовых понятиях структурного программирования (данных, операциях, переменных, ветвлениях в программе, циклах и функциях, массивах, файлах), о реализации с помощь. Python наиболее известных в математическом обеспечении программирования алгоритмов:
Алгоритм Евклида (нахождение наибольшего общего делителя)
Вычисление факториала на языке программирования Python
Двоичный (бинарный) поиск элемента в массиве
Замена элементов в списке
Перевод чисел из десятичной системы счисления в двоичную
Решето Эратосфена - алгоритм определения простых чисел
Сортировка выбором (поиск минимума и перестановка)
Сортировка методом пузырька
Сумма и произведение цифр числа
Тестирование простоты числа методом перебора делителей
Числа Фибоначчи (вычисление с помощью цикла while и рекурсии)

Выбор Python обусловлен тем, что это язык, обладающий рядом преимуществ перед другими языками: ясность кода, быстрота реализации. По состоянию на июль 2014 года ([ Cкачайте файл, чтобы посмотреть ссылку ]) Python вышел на 1-е место в программах начального обучения программированию в университетах США, пишет журнал [ Cкачайте файл, чтобы посмотреть ссылку ].
27 из 39 крупнейших факультетов программирования (69%) в университетах предлагают курсы обучения на Python. Ситуация изменилась в последние три года. В частности, недавно на Python перевели вводные курсы программирования Массачусетский технологический институт и Калифорнийский университет в Беркли. На втором месте по популярности находится Java (22 из 39), далее следуют MATLAB (8), C++ (6), C (6), Scheme (4), Scratch (3). Автор исследования в журнале Communication of the ACM проделал хорошую работу, собрав информацию с названиями курсов программирования во всех университетах. Список постепенно обновляется, по мере того, как читатели присылают уточнённую информацию из своих вузов. Список «крупнейших» факультетов ИТ взят из [ Cкачайте файл, чтобы посмотреть ссылку ]: .http://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-приложения
Базы данных

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


Версии 2 и 3 языка Python:
Сейчас существует две основные версии языка – 2 и 3, которые не полностью совместимы
Много наработок именно по версии 2
Версия 3 более совершенна с точки зрения дизайна языка
Тем не менее, версия 2 более не развивается, поэтому рекомендуется сразу же использовать версию 3

Автоматическая проверка:
Поддержка в системе ejudge и других
Поддерживается на сайте http://informatics.mccme.ru
Поддержка учебных курсов от начального обучения программированию до олимпиад высокого уровня
Поддерживается на других сайтах: http://neerc.ifmo.ru/school/ http://www.codeforces.ru

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

№ п/п
Тема
Кол-во часов

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


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




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

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

Ресурсы сайта Л. Шапошниковой (http://younglinux.info) , содержащие
авторские программы
[ Cкачайте файл, чтобы посмотреть ссылку ] (http://window.edu.ru/resource/825/76825)
[ Cкачайте файл, чтобы посмотреть ссылку ]
учебные пособия [ Cкачайте файл, чтобы посмотреть ссылку ]
Сайт Д.П.Кириенко. Московский институт открытого образования. Школа №179
[ Cкачайте файл, чтобы посмотреть ссылку ]
Ресурсы сайта профессора, доктора технических наук, учителя информатики высшей категории, автора учебников по информатике К.Ю. Полякова:
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
[ Cкачайте файл, чтобы посмотреть ссылку ]
Сайт дистанционная подготовка по информатике [ Cкачайте файл, чтобы посмотреть ссылку ]
http://informatics.mccme.ru/course/view.php?id=95
Изучаем Python Автор: [ Cкачайте файл, чтобы посмотреть ссылку ] Издательство: [ Cкачайте файл, чтобы посмотреть ссылку ] ISBN 978-5-93286-159-2, 978-0-596-15806-4; 2011 г. Переводчик: [ Cкачайте файл, чтобы посмотреть ссылку ]
Head First Python. Автор: Paul Barry. Bздательство: O'Reilly, год: 2010, Язык: Английский, страниц: 494, формат: pdf, размер: 33 МБ (http://forcoder.ru/python/head-first-python-1191)
Hello World! Computer Programming for Kids and Other Beginners Second edition, Warren D. Sande and Carter Sande http://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 [ Cкачайте файл, чтобы посмотреть ссылку ])
Язык Python: [ Cкачайте файл, чтобы посмотреть ссылку ]
Среда разработки Wing IDE: [ Cкачайте файл, чтобы посмотреть ссылку ]









13 PAGE 14215



Заголовок 1 Заголовок 2 Заголовок 315