- Преподавателю
- Информатика
- Рабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»
Рабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»
Раздел | Информатика |
Класс | 11 класс |
Тип | Рабочие программы |
Автор | Тузов А.А. |
Дата | 18.07.2015 |
Формат | doc |
Изображения | Есть |
Рабочая программа элективного курса по информатике
11 класс
«Язык Python: основы программирования,
реализация известных алгоритмов»
Составитель: Тузов Александр Анатольевич,
учитель информатики высшей категории
2014 г.
Пояснительная записка
Элективный курс по информатике «Язык 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-приложения
-
Базы данных
Предельно лаконичный и понятный синтаксис:
Версии 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
-
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
-
http://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 г. Переводчик: А. Киселев
-
Head 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