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

Методики обучения программированию в школе. Использование технологии "перевернутый класс" на примере урока информатики "Рекурсивные функции и их реализация на Python". Использование во время урока метода открытых программ. Разработка урока "Рекурсивные фу

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 27.05.2024
Размер файла 263,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Министерство науки и высшего образования Российской Федерации

федеральное государственное бюджетное образовательное учреждение

высшего образования

«Алтайский государственный педагогический университет»

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

Курсовая работа

по дисциплине «Информатика»

Оглавление

Введение

Глава 1. Теоретические особенности обучения программированию

1.1 Особенности обучения программированию в школе

1.2 Методики обучения программированию в школе

Выводы по Главе 1

Глава 2. Методика проведения уроков по рекурсивным алгоритмам

2.1 Технология «перевернутый класс»

2.2 Использование технологии «перевернутый класс» на примере урока информатики «Рекурсивные функции и их реализация на Python»

2.2.1 Пример руководства для самостоятельной подготовки к уроку «Рекурсивные функции и их реализация на Python»

2.2.2 Разработка урока «Рекурсивные функции и их реализация на Python»

2.3 Использование во время урока метода открытых программ

2.3.1 Понятие открытой программы

Выводы по Главе 2

Заключение

Список использованных источников и литературы

Приложение 1

Введение

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

Главная проблема современного школьного обучения программированию -- отсутствие системного подхода в этом вопросе. Зачастую, в школе учат не решению проблем с помощью программирования, не разработке программ, а лишь языку программирования как таковому. Школьные уроки сводятся, по сути, к изучению конструкций языка и выполнению каких-либо заданий на эти конструкции, но не учат намного более важному умению -- применять их для решения возникающих на практике задач.

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

У обучающихся должно формироваться умение разбить задачу на подзадачи, умение воспользоваться готовым алгоритмом более простой задачи при решении сложной. Для этого при планировании занятий необходимо использовать определенные технологии и методики обучения.

Можно сделать вывод, что актуальность настоящей работы задается современными тенденциями развития информатики, как науки.

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

Объект исследования: процесс обучения учащихся алгоритмизации и программированию во время уроков и самостоятельных занятий.

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

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

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

Поставленная цель и выдвинутая гипотеза предполагают решение следующих задач:

Ознакомиться с особенностями изучения программирования в школе.

Проанализировать существующие методики обучению программированию.

Выбрать наиболее подходящие методики обучения для изучения рекурсивных алгоритмов.

Разработать урок с использованием выбранных методик.

Для решения поставленных задач использовались следующие методы исследования:

теоретический анализ литературы по проблематике исследования;

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

Глава 1. Теоретические особенности обучения программированию

1.1 Особенности обучения программированию в школе

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

Для записи алгоритмов используются формальные языки, блок-схемы, структурное программирование.

В примерной программе по информатике имеется раздел, посвященный изучению алгоритмов и исполнителей. В рамках курса обучающиеся знакомятся с основными понятиями: исполнители (состояния, возможные обстановки и система команд исполнителя), команды-приказы и команды-запросы, отказ исполнителя. Также уделяется внимание изучению самого алгоритма как плана управления исполнителем и его записи на алгоритмическом языке.

Рабочая программа предполагает реализацию ряда практических работ:

Разработка линейного алгоритма (программы) с использованием математических функций при записи арифметического выражения.

Разработка алгоритма (программы), содержащей оператор ветвления.

Разработка алгоритма (программы), содержащей оператор цикла.

Разработка алгоритма (программы), содержащей подпрограмму.

Разработка алгоритма (программы) по обработке одномерного массива.

Разработка алгоритма (программы), требующего для решения поставленной задачи использования логических операций.

Выпускник должен получить возможность:

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

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

Познакомиться с задачами обработки данных и алгоритмами их решения.

Познакомиться с понятием «управление», с примерами того, как компьютер управляет различными системами.

По окончанию курса информатики в рамках школьной программы обучающиеся должен получить определенный набор знаний об алгоритмах обработки данных, методах их представления и программной реализации, дискретизации. Предполагается, что обучаемый изучит один из языков программирования и основные алгоритмические структуры - линейную, условную и циклическую. Обучаемый должен получить практику в области написания и настройки программ в разных средах программирования.

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

Основные российские образовательные языки программирования представлены в таблице 1.

Таблица 1 - Основные российские образовательные языки программирования

Язык программирования

Краткое описание

1

2

BASIC

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

Pascal

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

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

Python

Согласно анализу наиболее крупных сообществ разработчиков GitHub и Stackoverflow, Python является вторым по популярности языком программирования после Java Script.

Основная причина популярности Python - универсальность. Он применяется в огромном количестве областей и способен справляться с абсолютно разными задачами. Дополняет указанный фактор еще и простота изучения языка, так что армия разработчиков на Python постоянно пополняется новыми и новыми людьми.

Python создавался с одной важной целью: сделать более простым написание больших программ с минимумом ошибок по правилам процедурного

программирования, не добавляя на итоговый код программ лишних 22 накладных расходов для компилятора, как это всегда делают языки очень высокого уровня, такие как Бейсик. Подходит для изучения структурного

программирования в базовом школьном курсе информатик

C++

Поддерживает такие парадигмы программирования как процедурное программирование, объектно -ориентированное программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так низкоуровневых языков. сравнении с его

предшественником -- языком C, -- наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

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

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

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

Поэтому крайне важно правильно выбрать и применять наиболее подходящие методики обучения для повышения уровня мотивации и качества усвоения учебного материала.

1.2 Методики обучения программированию в школе

Методика обучения состоит из элементов образовательных взаимосвязанных форм, средств и методов, направленные на планирование, контроль и анализ воспитательного и образовательного процесса, которые нацелены на повышение эффективности обучения учащихся.

При выборе методики приходится учитывать направление обучения в классах. Методики преподавания в классах гуманитарного направления и информационно-технологического профиля имеют ряд отличий. У обучаемых в классах гуманитарного профиля основные познавательные интересы находятся в областях знания касающихся гуманитарных наук - истории, литературы, общественных наук и т.д. В процессе обучения информатике в таких классах преимущественное внимание следует уделять эмоциональной стороне интереса учащихся.

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

Оба направления обучения предполагают необходимость в формировании умений моделировать реальные процессы.

Появление новых форм обучения позволяет сделать процесс обучения более эффективным .

Одним из новых методов обучения является создание собственной игры. При этом глубоко осваивается язык программирования и компетенции в области программирования, математики, основ дизайна.

Главным мотивационным основанием для того, чтобы уделять самостоятельному обучению больше времени становится интерес, полученный в процессе создания игры. При использовании этой методики обучаемый переживает положительные эмоции в момент выполнения этапов задания.

Методика предоставляет обучаемому реальную свободу и возможность действовать по своему усмотрению в планировании и в определении порядка выполнения проекта .

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

Следующая методика - применения робототехнических устройств в обучении программированию.

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

Модуль программирования основывается на написании линейных алгоритмических структур. Любой робототехнический проект выступает в роли исполнителя алгоритма.

Для обучающихся каждого возраста можно найти свою среду и язык программирования. Благодаря этому легко усваивать материал под силу любому желающему. В данной методике очень эффективным является создание собственных проектов с публичной защитой и участием в различных соревнованиях. Организуется деятельность обучающегося, соблюдается баланс между теорией и практикой. При погружении в учебно-профессиональную деятельность повышается уровень мотивации. Воспитываются качества работы в команде, а также ораторство, что в дальнейшем позволяет гораздо проще вливаться в рабочие коллективы.

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

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

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

Методика обучения на основе технологии «Перевернутый класс», является эффективным звеном, так как объединяют необходимые положительные качества вышеописанных методик. Более подробно мы рассмотрим эту методику во второй главе работы.

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

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

Развивается логическое мышление. Так как программирование - это тренировка мозга. Обучающийся начинает понимать последовательность работы программы и тренируется следовать этой очередности.

Развивается творческое мышление. Обучающийся задействует свою фантазию и воображение, реализует придуманное. При выполнении заданий дети видят результат своего труда.

Формируются навыки решения проблем. На занятиях программированием проблем не избежать - у обучающегося будут ошибки, и ему придется постоянно что-то переделывать, чтобы программа работала правильно. Он начинает легче воспринимать подобные трудности и проще их преодолевать.

Ребенок учится учиться. Ученики идут по программе, выполняют задания, готовят итоговый проект, защищают его.

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

Без вышеперечисленных качеств невозможно подготовить выпускников школ, обладающих информационно-коммуникационными навыками.

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

Выводы по Главе 1

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

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

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

Были рассмотрены различные методики обучения программированию.

Под методикой обучения понимается совокупность элементов образовательных взаимосвязанных форм, средств и методов, направленные на планирование, контроль и анализ воспитательного и образовательного процесса, которые нацелены на повышение эффективности обучения учащихся.

Чтобы достичь всех поставленных результатов будет разработан курс по обучению программированию с использованием технологии «перевернутый класс».

Глава 2. Методика проведения уроков по рекурсивным алгоритмам

2.1 Технология «перевернутый класс»

Мы живем в мире, где информатизация проникла во все сферы нашей деятельности. Соответственно, обучение информатике должно выйти на новый уровень.

К сожалению, в большинстве существующих методик обучения информатике преобладает теоретический подход. Обучающиеся тратят массу времени на изучение теоретического материала, с которым они могли бы познакомиться и за пределами школы, а на практическую работу аудиторного времени просто не хватает.

Такое положение с освоением теории и практики характерно не только для школ нашей страны. Аналогичные проблемы существуют во всем мире. Согласно данным с сайта «Образование сегодня», более миллиона учащихся в США покидают школы и колледжи не завершив образование. Основными причинами такой ситуации считают потерю у обучающихся интереса к учебе и чувство беспомощности в обучении. Это может быть обусловлено большим количеством теории и неумением обучаемых применить полученные знания на практике.

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

Одной из технологий, способных преодолеть сложившуюся ситуацию, является технология «перевернутый класс». Этот метод обучения позволяет обучающимся ознакомиться со специально подготовленным учителем учебным материалом в любом месте и в любое время, а уроки посвятить отработке практических навыков.

Технологию «перевернутый класс» несколько лет назад разработали американские педагоги-новаторы Аарон Самс и Джонатан Бергманн. Они провели исследование проблемы активности обучающихся на занятиях и в результате предложили свое решение -- провести занятие «наоборот». Основы метода были ими изложены в книге «Перевернуть занятие, или как достучаться до каждого ученика на уроке».

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

Материалы исследований А. Самса и Д. Бергманна получили популярность во всем мире. Технология «перевернутый класс» активно способствует созданию на уроке ситуации открытого общения, организации индивидуального подхода, позволяет преподавателю существенно увеличить объем доступного учебного материала, в том числе практического, а обучающемуся -- выйти на более высокий уровень освоения материала.

«Перевернутый класс» направлен на вовлечение обучающихся в активную учебную деятельность. Знания получены заранее, поэтому на уроке происходит их закрепление и применение, появляется возможность решить интересные задачи, выполнить творческие задания.

У технологии «перевернутый класс» есть ряд положительных особенностей. Она содействует быстрому развитию личностных качеств обучаещихся. Растет самостоятельность, ответственность за образовательные результаты. Растут метапредметные результаты в улучшении планирования своей деятельности, ее контроле. Наблюдается рост коммуникативных навыков из-за постоянного взаимодействия с одноклассниками в ходе работы над совместным проектом. Меняется роль учителя. Он мотивирует обучающихся к самостоятельной деятельности и совместной работе в группах.

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

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

Таким образом, отличительными особенностями перевернутого обучения являются:

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

учебные материалы представлены в виде электронных образовательных ресурсов и авторских материалов;

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

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

2.2 Использование технологии «перевернутый класс» на примере урока информатики «Рекурсивные функции и их реализация на Python»

Рассмотрим реализацию технологии «перевернутый класс» на конкретном примере школьного урока информатики по теме нашей курсовой работы.

2.2.1 Пример руководства для самостоятельной подготовки к уроку «Рекурсивные функции и их реализация на Python»

В этом руководстве мы поговорим о различных аспектах рекурсивных функций и реализуем рекурсивные функции в Python с нуля.

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

Возможно, вы уже знаете, что «рекурсия -- это когда функция вызывает сама себя». Но что при этом происходит? Как рекурсия влияет на физическую память? Можно ли превратить любую другую функцию в рекурсивную?

Ниже мы рассмотрим следующие вопросы:

Как устроена рекурсивная функция

Как используется память при рекурсивной функции

Что собой представляет дерево

Что такое стек

Как можно произвести отслеживание рекурсии

Пространственно-временной анализ рекурсивной функции

Как реализовать простую рекурсивную функцию в Python

Как устроена рекурсивная функция

Вернемся к определению рекурсии: «Рекурсия - это функция, которая вызывает сама себя».

Рассмотрим простой пример, который это подтверждает:

def MyFunc(m):

if(m>=1)

MyFunc(m-1)

print(m)

Рассмотрим приведенный фрагмент кода, чтобы понять, как он работает. Эта функция представляет собой рекуррентное соотношение следующего вида:

Как работает рекурсивная функция

Рекурсивная функция имеет два свойства:

Рекуррентное отношение

Условие прекращения

n ? 1 -- это условие завершения. Встречаются определения условие привязки, или базовое условие. Когда такое условие выполняется, рекурсия останавливается. Условие завершения указывать следует обязательно. Если этого не сделать, функция попадет в бесконечный цикл.

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

Очевидно, возникает вопрос - зачем вообще писать рекурсивную функцию? Есть ли лучшие альтернативы? Отследить рекурсию иногда бывает сложно, но, освоив эту тему, вы обнаружите, что рекурсия дает явные преимущества с точки зрения читабельности программы и переменных.

Для выполнения рекурсии нет необходимости вводить лишние переменные, но для остановки процесса нужно найти правильное условие завершения. Сделать это бывает непросто. Здесь вам поможет только практика!

Далее вы увидите, насколько красивой и маленькой может быть программа, если она реализована с помощью рекурсии.

Как используется память при рекурсивной функции

В этом разделе мы изучим, как рекурсивные функции представляются в памяти с помощью деревьев и стеков.

Рассмотрим уже знакомую нам рекурсивную функцию MyFunc():

def MyFunc (m):

if m>=1:

return MyFunc (m-1)

print(m)

Начнем изучение с представления памяти с помощью деревьев.

Рисунок 1. Дерево

Здесь следует отметить cследующие моменты:

Функция вызывается с параметром MyFunc(3) и поэтому здесь выполняются 4 (= 3 + 1) вызова функций. Если обобщить, то при вызове MyFunc(m) потребуется всего (m+1) вызовов функции.

Вызовы P() -- это выводы, созданные функцией print(m).

Функция MyFunc(0) приведет к невыполнению условия цикла, так как мы получим m<1. Это приведет к завершению работы рекурсивной функции.

Древовидное представление, нужно для представления рекурсивной функции в стеке.

Что такое стек

Стек -- это структура данных, организованных по принципу «последним пришел -- первым ушел» (LIFO англ. last in -- first out,).

Для представления стека нам нужно пройти по дереву сверху вниз и слева направо. Следующее изображение прояснит это.

Рисунок 2. Интерпретация дерева

Стек состоит из двух операций:

push -помещает элемент в стек

pop -- извлекает элемент из стека.

Начнем движение по дереву сверху вниз и слева направо:

встречая вызов функции, вы помещаем его в стек;

встречая вызов функции print() - P(), печатаем элемент.

Результатом обхода дерева от MyFunc(3) до MyFunc(0) будут элементы стека, записанные в перевернутом виде:

Рисунок 3. Элементы стека

Начнем вторую половину обхода дерева, - слева направо. Встречая вызов функции во второй раз, удаляем его, используя pop. Первым будет удален тот элемент стека, который последним попал в стек.

Также на своем пути мы встретим три вызова P(): P(1), P(2) и P(3). Мы выведем их на экран в том порядке, в котором они появляются на пути нашего обхода:

1 2 3

Когда мы закончим процесс обхода, стек будет полностью пуст.

Мы разобрались, как представить простую рекурсивную функцию в памяти, используя дерево и стек.

Как можно произвести отслеживание рекурсии

def MyFunc (m):

if m>1:

return MyFunc(m-1)

print( m-1)

MyFunc(m-1)

Записи активации будут выглядеть следующим образом:

MyFunc(3)

MyFunc(2)

MyFunc(1)

MyFunc(0)

Main()

M=3

M=2

M=1

5

5

5

Рисунок 4. Записи активации

Как мы уже писали, у функции есть свои копии локальных переменных и указатели инструкций. В нашем случае случае -- номера строк. После того, как MyFunc(0) завершит работу, функция произведет выталкивание (pop). Обратите внимание, что здесь используется горизонтальный стек -- точно такой же, как те, которые вы видели ранее в уроке. Кроме того, пока записи помещаются в стек, будет выполняться печать. В результате будет напечатано 2 1 0

В рекурсивной функции управление часто переходит к той же функции, но с другим значением переменной. Поэтому, важно отметить указатели инструкций. Указатели помогают поддерживать синхронизацию. Мы можем использовать тот же процесс, чтобы отследить рекурсию, используя представление в виде дерева.

Пространственно-временной анализ рекурсивной функции

Вспомним, что подразумевается под пространственным и временным анализом функции. Предполагается, что для заданного ввода функция должна производить некоторый вывод. Возникает вопрос - сколько времени для этого потребуется функции? Временная сложность -- приблизительное время выполнения функции. Пространственная сложность -- приблизительные требования к памяти для функции при заданных входных данных. Разберемся, зачем вообще нужны эти показатели.

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

Более того, возникает возможность быстро сравнить две функции, выполняющие одну и ту же задачу, и выбрать наилучшую.

Мы сделаем это, проанализировав их пространственно-временную сложность, и выберем ту, которая работает лучше и эффективнее.

Для примера возьмем простую рекурсивную функцию и проанализируем ее пространственную и временную сложность.

def MyFunc(m):

if m>1:

return MyFunc(m-1)

Сначала проведем анализ временной сложности. Предположим, что общее время, затраченное на вышеуказанную функцию MyFunc() , равно T(m).

T(m) - сумма времени, затраченного на сравнение, действительно ли m > 1, и времени, затраченного на выполнение MyFunc(m-1).

T(m) можно записать так: Т (m) = 1 + Т (m-1),

где 1 -- время, затраченное на сравнение (туда можно поставить любую константу).

Каково будет время T(m) для выполнения MyFunc(m-1)?

Т(m?1) = 1 + T(m?2)

Точно так же,

T(m?2) = 1 + T(m?3) и так далее.

Все уравнения связаны. Если мы подставим их друг в друга, мы получим следующее выражение:

T(m) = 1 + (1 + T(m?2)) = 2 + T(m?2) = 3 + T(m?3) = .... = j + +T(m?j) ( после запуска функции j раз)

Теперь нам нужно определить, в какой момент функция остановится. По заданному условию имеем:

Если после выполнения j раз функция перестает выполняться. Тогда должно получиться:

m ? j = 1 => j = m - 1

Теперь подставим значение j в нашу формулу T(m) =j + T(m?j):

Т(m) = (m-1) + Т(m-(m-1))

=> Т (m) = (m-1) + T(1)

=> T(m) = m?1 + 1 = m

Для T(1) требуется только сравнение.

По правилу асимптотического анализа T(m) = m можно переписать как T(m) = O(m). Это означает, что временная сложность функции, при наихудшем случае, равна O(n).

Пространственная сложность

Анализ пространственной сложности функции прост. Наша функция находится в памяти и не использует никаких дополнительных переменных. Поэтому можно сделать вывод, что пространственная сложность функции O(m).

Реализация простой рекурсивной функции на Python

Напишем рекурсивную функцию для нахождения факториала заданного числа:

# Рекурсивная функция factorial_recursion()

def factorial_R(m):

if m == 1:

return m

else:

return m*factorial_R(m-1)

# Вызов функции

num = 7

print("Факториал ",num," равен ",factorial_recursion(num))

Проверим нашу программу с помощью сервиса https://www.online-python.com/

Результат работы программы:

Факториал 7 равен 5040

В этом случае рекуррентное соотношение может быть следующим:

f(m) = m!

f(n) = m ? f(m?1) и так далее.

Условие завершения -- когда m равно 1.

Реализуем итеративную версию той же функции.

def factorial_I(m):

factorial = 1

if m < 0:

print("Извините, факториал отрицательного числа не существует")

elif m == 0:

print("Факториал 0 равен 1")

else:

for i in range(1,m + 1):

factorial = factorial*i

print("Факториал ",m,"равен",factorial)

factorial_I(7)

Результат работы программы:

Факториал 7 равен 5040

Разница между двумя версиями функции заметна. Рекурсивная функция много короче и проще.

В этом руководстве мы подробно разобрали рекурсивные функции в Python. Начиная с абсолютных основ и заканчивая анализом пространственной и временной сложностей рекурсивной функции. Мы увидели, как рекурсия может быть полезна для решения определенных задач. Теперь мы должны быть в состоянии решать задачи, используя рекурсию на предстоящем уроке.

2.2.2 Разработка урока «Рекурсивные функции и их реализация на Python»

Урок на тему «Изучение рекурсивных алгоритмов»

Тема урока: «Рекурсивные функции и их реализация на Python»

Цели урока:

изучение рекурсивных алгоритмов;

применения рекурсии при решении практических задач.

Ожидаемые результаты обучения:

предметные:

формирование представления о рекурсивном объекте и рекурсивном алгоритме;

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

метапредметные:

умение самостоятельно планировать пути достижения целей;

умение соотносить свои действия с планируемыми результатами, осуществлять контроль своей деятельности, определять способы действий в рамках предложенных условий, корректировать свои действия в соответствии с изменяющейся ситуацией;

умение оценивать правильность выполнения учебной задачи.

регулятивные УУД:

целеполагание как постановка учебной задачи на основе соотнесения того, что уже известно и усвоено обучающимся, и того, что еще неизвестно;

волевая саморегуляция как способность к мобилизации сил и энергии;

планирование последовательности шагов алгоритма для достижения цели;

поиск ошибок в плане действий и внесение изменений в этот план;

коммуникативные УУД:

умение с достаточной полнотой и точностью выражать свои мысли в устной форме;

выслушивание собеседника и ведение диалога;

познавательные УУД:

общеучебные: структурирование знаний;

построение логической цепи рассуждений;

личностные:

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

проявление дисциплинированности, активности, усидчивости, самостоятельности, внимательности, уважения к одноклассникам;

проявление трудолюбия, способности к преодолению трудностей, целеустремленности и настойчивости в достижении результата.

Тип урока: урок изучения нового материала по технологии «перевернутый класс».

Класс: девятый.

Оснащение урока:

техническая составляющая:

компьютер учителя;

компьютеры учащихся;

проектор;

интерактивная доска;

выход в сеть Интернет;

дидактическая составляющая:

презентация по теме урока;

тренажер: https://www.online-python.com/;

План урока:

Организационный момент - 1 мин.

Актуализация опорных знаний - 10 мин.

Обсуждение и анализ теоретического материала, изученного дома - 10 мин.

Экспериментальное исследование (практическая часть) -17 мин.

Подведение итогов урока - 2 мин.

Рефлексия - 5 мин.

Самостоятельная работа дома

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

Для самопроверки учащимся предлагаются:

тренажер: https://www.online-python.com/

задания для самостоятельного выполнения*.

Ход урока

Изучив самостоятельно теоретический материал, применив полученные знания в ходе выполнения заданий на тренажере и пройдя самопроверку в ходе выполнения заданий, обучающиеся продолжают изучение материала на уроке информатики который разбит на несколько этапов.

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

Затем организуется обсуждение практической значимости рассматриваемой темы и ставится задача, которая является усложненной -- такой, что обучающиеся не могут решить ее сразу, но могут рассуждать над решением, используя предварительно изученный материал. Задача связана с построением блок-схемы для вычисления последовательности Фибоначчи.

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

Деятельность учителя сводится к контролю выполнения домашнего задания (учитель с помощью новой задачи проверяет, как ученики подготовились к уроку -- изучили ли материал, выданный им домой), а стиль работы становится преимущественно индивидуальным: учитель проводит консультации, корректирует получаемые знания и вырабатываемые умения. Как только учащиеся успешно справляются с поставленной задачей, они переходят к следующему этапу урока.

Центральное место урока занимает этап экспериментального исследования. Это основной и самый продолжительный этап урока, на котором обучающиеся разбирают готовые задачи, использующие рекурсивные алгоритмы на Python и строят их блок-схемы. Этот этап можно разделить на две части: совместное построение блок-схемы, когда учащиеся работают во фронтальном режиме, и индивидуальная работа, когда ученик работает самостоятельно. При этом учитель организует обсуждение поставленной задачи, в ходе которого рассматриваются все предложенные варианты. В завершающей части этого этапа деятельность учителя сводится к контролю построения схем.

В качестве задач для самостоятельного выполнения учащимся предлагается составить блок-схемы для следующих алгоритмов:

с помощью рекурсии суммировать все числа от 1 до данного числа;

с помощью рекурсии удалить пробелы из строки;

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

Этап рефлексии предполагает организацию процесса самоанализа и активного осмысления обучающимися рассмотренного на уроке алгоритма и процесса решения поставленной задачи с применением любого рефлексивного приема. Деятельность учителя сводится к стимулированию обучающихся к самоанализу своей деятельности на занятии, к самоопределению степени усвоения алгоритма решения поставленной задачи. Ученики анализируют свою деятельность на уроке, отмечают для себя необходимые моменты для более подробного рассмотрения.

Для реализации рефлексии можно использовать прием «Острова».

На большом листе бумаги представлена карта с изображением островов со следующими названиями:

остров Неуверенности;

остров Вдохновения;

остров Удовлетворения;

остров Размышления;

остров Пустоты;

Бермудский треугольник и т. д.

Карту прикрепляют к доске. Ученики рисуют кораблики в соответствующем районе, который отражает их эмоционально-чувственное состояние после состоявшегося урока, а затем анализируют результаты размещения своего «настроения» на бумаге. При этом каждый из учеников имеет право нарисовать на карте остров с придуманным им самим названием.

2.3 Использование во время урока метода открытых программ

На этапе актуализации знаний и постановки задачи учитель доводит до обучаемых следующую информацию.

Рекурсия в Python

Рекурсия -- это концепция в информатике, когда функция вызывает саму себя и выполняет цикл до тех пор, пока не достигнет желаемого конечного условия. Он основан на математической концепции рекурсивных определений, которая определяет элементы в наборе с точки зрения других элементов в наборе.

Все языки программирования поддерживают рекурсию, однако не все одинаково оптимизированы.

Как правило, рекурсивные решения предпочтительнее итеративных решений при больших вычислениях, поскольку рекурсия часто приводит к меньшему количеству кода и более высокой производительности при масштабировании.

Плюсы:

Быстрее при оптимизации : если вы включите оптимизацию рекурсии, такую ??как конечная рекурсия и меморизация, рекурсивные подходы будут быстрее в Python.

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

Декларативность: многие разработчики считают логику объявления желаемого состояния более понятной, чем итерация, которая фокусируется на шагах, необходимых для достижения неустановленной цели.

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

Минусы:

Максимальная глубина рекурсии: Python имеет ограниченный стек вызовов, который поддерживает только 1000 вложенных шагов. Хотя это может показаться большим, это становится проблемой при работе с большими структурами, такими как списки и массивы. Это можно изменить по вашему усмотрению с помощью setrecursionlimit(1500).

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

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

Давайте рассмотрим некоторые применения рекурсии.

Сначала мы рассмотрим классический пример рекурсии: последовательность Фибоначчи. Эта программа берёт заданное число и возвращает его числа Фибоначчи.

def recur_fibo(n):

# Базовый вариант

if n <= 1:

return n

else:

# Рекурсивный вариант

return(recur_fibo(n-1) + recur_fibo(n-2))

# Driver Code

num = 10

print (recur_fibo(num))

Вы можете увидеть наш базовый вариант в строке 3 if n >= 1,. Если это не выполняется, мы переходим к рекурсивному случаю в строке 5, который содержит два рекурсивных вызова.

Каждый раз, когда цикл повторяется, значение n опускается, что означает, что в конце концов наш базовый случай станет верным.

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

Понятие открытой программы

Это программы с подробными комментариями как в тексте программы, так и в виде сопутствующей документации.

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

Это методика работа с параллельными текстами, которая используется еще и при изучении иностранных языков.

Все эти методы обучения программированию послужили основой для создания метода открытых программ.

Под открытой программой понимается модель, представляющая некоторый класс программ и предназначенная:

Для передачи обучаемым знаний о структуре и назначении данной программы.

Для овладения обучаемым опытом творческой деятельности разработки программ этого класса.

Открытая программа - это модель, поэтому она несет в себе наиболее важные и характерные черты данного класса программ. Она должна быть освобождена от постороннего материала. Открытая программа - обязательно работающая модель. Ее можно использовать и непосредственно, не в учебных целях.

Результатом разработки открытой программы должна быть итоговая простота и понятность.

Чтобы открытая программа представляла класс программ или задач, педагог-разработчик должен быть хорошо знаком с типичными задачами этого класса как пользователь и с исходными текстами этих программ.

В нашем случае программа предъявляется в законченном виде, целиком, сразу на экране компьютера и исследуется обучаемым интерактивно, с нуля.

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

Изменить исходные данные и запустить программу снова. Обдумать результат. Часть программы, не относящаяся к вводу данных, пока игнорируется обучаемым.

Попытаться объяснить результат. Это помогает обучаемому создать модель поведения программы.

Попытаться предсказать поведение программы до запуска. Это уровень овладения логикой алгоритма и конец первого этапа работы.

На втором этапе открытая программа изучается по комментариям. Комментарии должны относиться не к описанию операторов программы, а к смыслу действий в контексте постановки задачи.

Здесь происходит процесс "расформализации" алгоритмического описания и уточнение содержательного.

На третьем этапе обучаемый пытается изменить текст самого алгоритма с им самим определенной целью.

Далее обучаемый может приступить либо к радикальной модификации программы, либо к собственной разработке. ("Лучшая игрушка - это сломанная игрушка". Гегель).

Для наших целей изучения рекурсивных алгоритмов на основе языка Python метод открытых программ подходит практически идеально. Программы для самостоятельной работы обучаемых с использованием рекурсивных алгоритмов приведены в приложении №1 к настоящей работе.

Выводы по Главе 2

Таким образом, проведение уроков с применением технологии «перевернутый класс» может изменить отношение обучающихся к предмету, заинтересовать их и даже увлечь, повышая тем самым уровень их активности, способствуя росту познавательного интереса, развитию критического мышления и навыков решения сложных задач.

Внедрение новых методов обучения с применением цифровых технологий, таких как технология «перевернутый класс», метод открытых программ в учебный процесс является важным компонентом для развития ИКТ-компетентности обучающихся, а учителю дает возможность повысить качество образовательного материала, сделать его более современным и востребованным.

Заключение

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

Модернизация Российской системы образования делает необходимым поиск новых и современных подходов к организации учебного процесса. Программирование - это актуальная сфера деятельности.

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

В результате выполнения работы были проанализированы нормативные документы основного общего образования (ФГОС) на наличие требований к изучаемым языкам программирования и авторские учебные программы по информатике и ИКТ. Мы проанализировали существующие методики обучению программированию. Выбрали наиболее подходящие методики обучения для изучения рекурсивных алгоритмов на примере языка Python, а именно, использовали технологию «перевернутый класс», метод открытых программ. Разработали урок с использованием выбранных методик. Все запланированные задачи работы были выполнены. Подготовленная разработка урока может быть полезна как начинающим, так и опытным учителям информатики при подготовке занятий по рекурсивным алгоритмам на примере языка Python, Таким образом, цель работы достигнута.

Список использованных источников и литературы

Александров Д. А., Иванюшина В. А., Симановский Д. Л. Образовательные онлайн-ресурсы для школьников и цифровой барьер // Вопросы образования. 2017. № 3. С. 183-201.

Газейкина А. И. Стили мышления и обучение программированию студентов педагогического вуза [сайт] - 2014. - URL: http://ito.edu.rU/2013/Moscow/I/1/I-1-6371.html (дата обращения 12.11.2018)

Гришина О. Р. Активные методы обучения. Технология «Перевернутый класс»: учебно-методическое пособие // Инфо- урок. https://infourok.ru/aktivnie-metodi-obucheniya-tehnologiya- perevernutiy-klass-1942256.html

Дьяченко В. К. Организационная структура учебного процесса и ее развитие: учебник / В. К Дьяченко. - Москва : Академия, 2006. - 192 с. ISBN 5-7155-0146-6.

Жемчужников, Д.Г. Формирование мотивации школьников к изучению программирования на основе межпредметной интеграции Д. Г. Жемчужников // Вестник Российского университета дружбы народов. - 2014. - № 2 (15). - С. 46-48.

Инфографика: геймификация образования // Образование сегодня. https://www.ed-today.ru/38-infografika- gejmifikatsiya-obrazovaniya

Bergmann J., Sams A. Flip your classroom: Reaching every student in every class every day. International Society for Technology in Education, 2012. 112 p.

Изместьев Н. С., Сокольская, М. А. Особенности формирования и развития алгоритмического мышления с помощью объектно- ориентирваннного программирования // Материалы конференции «Современные тенденции и проекты развития информационных систем и технологий. - 2015. - № 4 (13). - С. 167-172.

Копаев А. В. О практическом значении алгоритмического стиля мышления / А.В. Копаев // Школа и производство. - 2003. - № 6. - С. 6-11.

Кузнецов А. А. Школьная информатика: вчера, сегодня, завтра / А. А. Кузнецов, Т. Б. Захарова // Информатика и образование. - 2014. - №

- С. 3-6.

Кушниренко А.Г., Лебедев, Г.В. Информатика: 12 лекций о том, для чего нужен школьный курс информатики / А.Г Кушниренко // Хрестоматия. - Москва : МГУ, 1982. - 489 с. ISBN 5-222-02404-0.

Лапчик М. П. Методика преподавания информатики / М. П. Лапчик и др.; под общей ред. М.П. Лапчика. Москва: - Академия, 2001. - 624 с. ISBN 5-09-000598-2.

Малеев В. В. Общая методика преподавания информатики: учебно-методическое пособие / В. В. Малаев. - Воронеж : ВГПУ, 2005. - 271 с. ISBN 5-88519-365-7.

Окулов С. М. Задачи по программированию: учебнометодическое пособие / С. М. Окулов - Москва: БИНОМ. Лаборатория знаний, 2006. - 824 с. ISBN 978-5-00101-448-5.

Семенов А. Л., Рудченко, Т. А., Щеглова, О. В. Основы мышления и коммуникации: книга для учителя. / А. Л. Семенов - Москва : ИНТ, Просвещение, 1999. - 76 с. ISBN 978-5-09-018715-2.

Сластенин B. А., Исаев И. Ф., Мищенко А. И.,.Педагогика / учебное пособие для студентов / В.А. Сластелин - Издательство «Школа- Пресс», 1997. ISBN 5-691-00950-8.

Слинкина И. Н. Использование компьютерной техники в процессе развития алгоритмического мышления у младших школьников: автореф. дис. ... канд. пед. наук: 13.00.02 / Ирина Николаевна Слинкина ; науч. рук. Т. Н. Шамало ; УрГПУ. - Екатеринбург, 2000. - 22 с.

Федеральный государственный образовательный стандарт основного общего образования [сайт]. - URL: 2016. - URL: https://fgos.ru. (дата обращения 23.10.2019).

...

Подобные документы

  • Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.

    дипломная работа [808,8 K], добавлен 13.12.2017

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.

    контрольная работа [125,3 K], добавлен 11.11.2014

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.

    презентация [753,2 K], добавлен 06.02.2014

  • Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.

    курсовая работа [160,3 K], добавлен 03.12.2014

  • Анализ основ ООП, изучение языка программирования Python, применение полученных знаний на практике для реализации предметной области. Понятие и механизм инкапсуляции. Фиксирование информационной работы отеля. Диаграмма классов. Реализация на языке Python.

    курсовая работа [227,6 K], добавлен 14.05.2017

  • Ознакомление с педпосылками интеграции изучения средств информатики. Развитие логического и алгоритмического мышления при изучении информатики. Описание компьютерной технологии обучения. Использование здоровьесберегающих технологий для детского здоровья.

    контрольная работа [29,1 K], добавлен 26.02.2015

  • Use case-диаграмма. Оценка трудоёмкости и сроков разработки проекта с использованием языка Python по методикам CETIN И COCOMO-II. Проектирование информационной системы. Разработка приложения с использованием Django: создание шаблонов, моделей и пр.

    дипломная работа [1,3 M], добавлен 10.07.2017

  • Определение понятия графа как набора вершин и связей между ними. Способы решения задач по программированию согласно теории графов на примерах заданий "Дороги", "Перекрестки", "Скрудж Мак-Дак", используя рекурсивные функции и рекуррентные соотношения.

    курсовая работа [36,2 K], добавлен 10.03.2010

  • "Moodle" - модульная объектно-ориентированная динамическая среда обучения, ее использование для разработки систем дистанционного обучения. Общее представление о дистанционном практикуме по программированию. Разработка структуры данных и алгоритмов.

    дипломная работа [1,2 M], добавлен 09.11.2016

  • Использование рекурсии в предметных областях. Рекурсивные процедуры и функции в программировании. Создание алгоритмов для рисования графических изображений с использованием рекурсии в среде программирования Pascal ABC. Примеры рекурсии в графике.

    творческая работа [6,7 M], добавлен 01.02.2014

  • Представление полиномов в виде кольцевых списков и выполнение базовых арифметических действий над ними. Реализация алгоритмов сложения, умножения и вычитания полиномов класса List на языке программирования Python 2.7. в интегрированной среде Python IDLE.

    курсовая работа [228,1 K], добавлен 11.01.2012

  • Классификация и стек рекурсивных функций. Методика распознавания формулы, записанной в строке. Реализация салфетки Серпинского и задачи о Ханойских башнях. Алгоритм быстрой сортировки. Создание функции, сортирующей массив с использованием рекурсии.

    лабораторная работа [160,8 K], добавлен 06.07.2009

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Использование пакета прикладных программ MS Office при решении экономических задач. Разработка баз данных при помощи Microsoft Access. Интернет-технологии и применение языка гипертекста HTML. Построение и вычисление финансовых функций с помощью MS Excel.

    курсовая работа [3,2 M], добавлен 19.03.2010

  • Анализ создания виртуального окружения для разработки. Установка фреймворка Flask. Особенность настройки аутентификации и привилегий. Создание Python-файла и написание в нем простого веб-приложения. Запуск и проверка работоспособности приложения.

    лабораторная работа [2,1 M], добавлен 28.11.2021

  • Использование математических функций для алгоритмизации задач и отладки программ. Операторы сравнения и логические функции; реализация циклического процесса. Организация и обработка данных при помощи массивов. Функции преобразования и работы со строками.

    методичка [135,5 K], добавлен 24.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.