Пояснительная
записка
Элективный курс по
информатике «Язык Python: основы программирования,
реализация известных алгоритмов»Основы программирования на Python"
представляет собой вводный курс по программированию, дающий представление о
базовых понятиях структурного программирования (данных, операциях, переменных,
ветвлениях в программе, циклах и функциях, массивах, файлах), о реализации с
помощь. Python наиболее известных в математическом обеспечении
программирования алгоритмов:
·
Алгоритм Евклида
(нахождение наибольшего общего делителя)
·
Вычисление факториала на
языке программирования Python
·
Двоичный (бинарный) поиск
элемента в массиве
·
Замена элементов в списке
·
Перевод чисел из
десятичной системы счисления в двоичную
·
Решето Эратосфена -
алгоритм определения простых чисел
·
Сортировка выбором (поиск
минимума и перестановка)
·
Сортировка методом
пузырька
·
Сумма и произведение цифр
числа
·
Тестирование простоты
числа методом перебора делителей
·
Числа Фибоначчи
(вычисление с помощью цикла while и рекурсии)
Выбор Python
обусловлен тем, что это язык, обладающий рядом преимуществ перед другими
языками: ясность кода, быстрота реализации. По состоянию на июль 2014 года
(http://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
проделал хорошую работу, собрав информацию с названиями курсов программирования
во всех университетах. Список постепенно обновляется, по мере того, как
читатели присылают уточнённую информацию из своих вузов.
Список «крупнейших» факультетов ИТ взят из этого рейтинга:
.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:
http://younglinux.info/python.php (http://window.edu.ru/resource/825/76825)
http://younglinux.info/algorithm,
http://younglinux.info/sites/default/files/plan_12_II.pdf
http://younglinux.info/sites/default/files/lablin_eduprog_2011.pdf
В курсе предлагается использовать задачную методику . Курс разбит
на темы, каждая тема сопровождается минимальным теоретическим введением и
несколькими десятками задач. Автоматическая система проверки на
сайте: http://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.
Календарно-тематическое
планирование
Номер урока
|
Тема урока
|
Плановые сроки
прохождения
|
Скорректированные сроки
прохожде-ния
|
1.
|
История
языков программирования.Знакомство с Python
Простейшие
программы.
|
5.9
|
|
2.
|
Вычисления.
Стандартные функции.
|
12.9
|
|
3.
|
Условный
оператор.
|
19.9
|
|
4.
|
Сложные
условия.
|
26.9
|
|
5.
|
Множественный
выбор.
|
3.10
|
|
6.
|
Контрольная
работа «Ветвления».
|
10.10
|
|
7.
|
Цикл с
условием.
|
17.10
|
|
8.
|
Цикл с
переменной.
|
24.10
|
|
9.
|
Вложенные
циклы.
|
31.10
|
|
10.
|
Процедуры.
|
14.11
|
|
11.
|
Функции.
|
21.11
|
|
12.
|
Рекурсия.
|
28.11
|
|
13.
|
Контрольная
работа «Циклы, процедуры, функции».
|
5.12
|
|
14.
|
Введение в словари
|
12.12
|
|
15.
|
Массивы.
Перебор элементов массива.
|
19.12
|
|
16.
|
Поиск в
массиве.
|
26.12
|
|
17.
|
Алгоритмы
обработки массивов (реверс, сдвиг).
|
16.1
|
|
18.
|
Отбор
элементов массива по условию.
|
23.1
|
|
19.
|
Сортировка
массивов. Метод пузырька, метод выбора
|
30.1
|
|
20.
|
Двоичный
поиск в массиве.
|
6.2
|
|
21.
|
Контрольная
работа «Массивы».
|
13.2
|
|
22.
|
Символьные
строки.
|
20.2
|
|
23.
|
Функции
для работы с символьными строками.
|
27.2
|
|
24.
|
Преобразования
«строка-число».
|
6.3
|
|
25.
|
Строки
в процедурах и функциях.
|
13.3
|
|
26.
|
Сравнение
и сортировка строк.
|
20.3
|
|
27.
|
Практикум:
обработка символьных строк.
|
27.3
|
|
28.
|
Контрольная
работа «Символьные строки».
|
3.4
|
|
29.
|
Матрицы.
Ввод матриц с клавиатуры, с пом. генератора случайных чисел..
|
10,4
|
|
30.
|
Обработка
матриц.
|
17.4
|
|
31.
|
Файловый
ввод и вывод.
|
24.4
|
|
32.
|
Обработка
смешанных данных, записанных в файле.
|
7.5
|
|
33.
|
Контрольная
работа «Матрицы. Файлы».
|
12.5
|
|
34.
35
|
Резерв
времени
|
|
|
Приведённые в пояснительной записке наиболее
известные алгоритмы реализуются различными способами на Языке Python в ходе изучения тем, представленных в поурочно-тематическом
планировании.
Перечень
учебно-методического обеспечения
- Ресурсы сайта Л. Шапошниковой
(http://younglinux.info) , содержащие
◦
авторские программы
▪
http://younglinux.info/python.php
(http://window.edu.ru/resource/825/76825)
▪
http://younglinux.info/algorithm
◦
учебные пособия http://younglinux.info/sites/default/files/python_structured_programming.pdf
- Сайт Д.П.Кириенко. Московский институт открытого образования.
Школа №179
◦
http://www.179.ru/~dk/python.html
·
Ресурсы сайта профессора, доктора технических наук,
учителя информатики высшей категории, автора учебников по информатике К.Ю.
Полякова:
◦
http://kpolyakov.spb.ru/loadstat.php?f=/download/ch10-8_python.pdf
◦
http://kpolyakov.spb.ru/loadstat.php?f=/download/slides10-8py.zip
◦
http://kpolyakov.spb.ru/download/progr1011.doc
◦
http://kpolyakov.spb.ru/download/infobr_2013-6.pdf
·
Сайт дистанционная подготовка по информатике
http://informatics.mccme.ru/
◦
http://informatics.mccme.ru/course/view.php?id=95
·
Изучаем Python Автор: Марк Лутц Издательство: Символ-Плюс ISBN
978-5-93286-159-2, 978-0-596-15806-4; 2011 г. Переводчик: А. Киселев
·
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
http://www.nostarch.com/pythonforkids)
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.