Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Информатика / Рабочие программы / Рабочая программа элективного курса по информатике «Язык Python: основы программирования, реализация известных алгоритмов»

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


До 7 декабря продлён приём заявок на
Международный конкурс "Мириады открытий"
(конкурс сразу по 24 предметам за один оргвзнос)

  • Информатика

Поделитесь материалом с коллегами:

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


11 класс


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

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

2014 г.

f572db639c.pngПояснительная записка

Элективный курс по информатике «Язык 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-приложения

  • Базы данных


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

hello_html_23228ea4.png


Версии 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.


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


Номер урока

Тема урока

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

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

История языков программирования.Знакомство с 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 в ходе изучения тем, представленных в поурочно-тематическом планировании.



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


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

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



57 вебинаров для учителей на разные темы
ПЕРЕЙТИ к бесплатному просмотру
(заказ свидетельства о просмотре - только до 11 декабря)

Автор
Дата добавления 22.08.2015
Раздел Информатика
Подраздел Рабочие программы
Просмотров813
Номер материала ДA-011015
Получить свидетельство о публикации
Похожие материалы

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