Департамент внутренней и кадровой политики Белгородской области

Областное государственное автономное профессиональной образовательное учреждение

Белгородский индустриальный колледж

Рассмотрено

предметно-цикловой комиссией

информатики и ПОВТ

Протокол заседания № ____

от «____»______________ 2017 г.

Председатель цикловой комиссии

______________/ Сапожникова Г.В.

методическая разработка

открытого урока

по МДК 03.01 Технология разработки программного обеспечения

на тему:

Лабораторная работа №32 «Оптимизация программы»

Разработчик:

Шершнева М.А.,

преподаватель ОГАПОУ БИК

2017 г.

Конспект открытого урока

Тип урока: лабораторная работа.

Методы: Репродуктивный, частично-поисковый, наглядно-иллюстративный.

Оборудование и наглядные пособия: ПЭВМ, доска, мультимедийный проектор, программа подготовки презентации Microsoft PowerPoint, текстовый процессор Microsoft Word, среда разработки программ Visual Studio 2010, среда программирования PascalABC.NET, раздаточный материал.

Цель занятия:

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

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

- формировать осознание принадлежности к конкретной профессиональной группе.

Задачи:

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

Формируемые профессиональные компетенции:

ПК 3.2. Выполнять интеграцию модулей в программную систему;

ПК 3.3. Выполнять отладку программного продукта с использованием специализированных программных средств

ПК 3.4. Осуществлять разработку тестовых наборов и тестовых сценариев

Формирование общих компетенций:

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

ОК 3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность

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

ОК 6. Работать в коллективе и команде, эффективно общаться с коллегами, руководством, потребителями.

ОК 8. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации.

План урока:

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

- Приветствие

- Проверка посещаемости

Постановка цели урока 2 мин.

Актуализация знаний 20-25 мин.

- Сообщения обучающихся

- Опрос

Выполнение лабораторной работы 55 мин.

- Выполнение оптимизации программы 35 мин.

- Расчет метрик 15 мин.

- Оформление результатов 5 мин.

Домашнее задание 2 мин.

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

Рефлексия 3 мин.

Ход занятия:
 

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

- Приветствие

- Проверка посещаемости

Постановка цели урока

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

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

  1. Актуализация знаний

3.1. Сообщения обучающихся

Сообщение 1 – «Законы оптимизации»

Сообщение 2 – «Основные приемы оптимизации программ»

3.2. Опрос обучающихся

До оптимизации

После оптимизации

Выполнение лабораторной работы

Порядок выполнения работы:

- Разбиться на подгруппы по 3-4 человека.

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

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

- Для созданных программ оценить метрические характеристики по Холстеду;

- Сравнить полученные результаты. Оформить результаты в таблицу. Сделать соответствующие выводы.

- Оформить отчет, соблюдая требования.

Теоретические сведения, задания, а также требования к оформлению лабораторной работы в Приложении 1

Домашнее задание

- Оформить отчет о выполненной лабораторной работе согласно требованиям,

- Самостоятельная работа № 64 «Подготовка к защите лабораторной работы»

Подведение итогов урока

В результате выполнения лабораторной работы заданный алгоритм был реализован в среде программирования (Pascal, C), а также был проведен процесс оптимизации программ.

Для созданных программ были оценены метрические характеристики по Холстеду. Расчеты проведены вручную.

Выставление оценок, полученных за занятие.

Рефлексия

«Три М» (Приложение 2)

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


 

Приложение 1

Лабораторная работа №31-32

«Оптимизация программы»


 

Цели:

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

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

- формировать осознание принадлежности к конкретной профессиональной группе.

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


 

Теоретические сведения:


 

Оптимизация-это улучшение программы.

Оптимизация бывает двух видов: глобальная и локальная.

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

Локальная оптимизация – это оптимизация, при которой экономия ресурсов достигается путём изменения участка программы.

Способы локальной оптимизации:

Чистка программы

Разгрузка участков повторения

Реализация действий

Упрощение действий

Экономия памяти

Сокращение программы

Основные законы оптимизации:

Делать проверки всего того, что вводит пользователь.

Не делать проверки внутри цикла.

Так как циклы - это слабые места любой программы, и оптимизацию нужно начинать с них.

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


 

Расчет метрики


 

Метрики Холстеда


 

Метрика Холстеда относится к метрикам, вычисляемым на основании анализа числа строк и синтаксических элементов исходного кода программы.

Метрика Холстеда позволяет оценить размер (в словах) и объем в битах программы на стадии анализа требований. Используя нормы выработки операторов в день можно оценить время на разработку. 

Основу метрики Холстеда составляют четыре измеряемые характеристики программы:

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

n2 — число уникальных операндов программы (словарь операндов);

N1 — общее число операторов в программе;

N2 — общее число операндов в программе.

+, *, /, - это операторы

x, у, z, 999, -25, number1 - это операнды

На основании этих характеристик рассчитываются оценки:

Словарь программы (Halstead Program Vocabulary, HPVoc): n = n1 + n2;

Длина программы (Halstead Program Length, HPLen): N = N1 + N2;

Объем программы (Halstead Program Volume, HPVol): V = N log2 n;

Сложность программы (Halstead Difficulty, HDiff): D = (n1/2) × (N2 / n2);

На основе показателя HDiff предлагается оценивать усилия программиста при разработке при помощи показателя HEff (Halstead Effort): H = D × V. 


 

Пример вычисления метрики Холстеда:

Задание:

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

  • Оптимизировать программу (можно использовать процедуры или функции).

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

  • Для созданных программ оценить метрические характеристики по Холстеду;

  • Сравнить полученные результаты. Оформить результаты в таблицу. Сделать соответствующие выводы.


 

Вариант задания №

Код программы:

Код оптимизированной программы:

   

Расчет метрики:

Расчет метрики:

   


 


 

Варианты:


 

Вариант 1. Даны натуральные числа n,a1,…,an. Определить количество членов ak последовательности a1,…,an:

а) являющихся нечетными числами;

б) кратных 3 и не кратных 5;

в) имеющих четные порядковые номера и являющихся нечетными числами.


 

Вариант 2. Даны натуральные числа n,q1,…,qn. Найти те члены qi, последовательности q1,…,qn, которые

а) являются удвоенными нечетными числами;

б) при делении на 7 дают остаток 1, 2 или 5;

в) делятся на 5 и не делятся на 7, найти количество и сумму тех членов последовательности.


 

Вариант 3. Даны целые числа A1, ..., A80. Получить сумму тех чисел данной последовательности, которые

а) кратны 5;

б) нечетны и отрицательны;

в) удовлетворяют условию A[i]


 

Отчет о выполненной лабораторной работе должен содержать:

- цель лабораторной работы, вариант задания и условие задачи;

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

- выводы о выполненной лабораторной работе.


 

Контрольные вопросы:

    1. Какой процесс называют «Оптимизацией программы»?

      Какие существуют способы оптимизации? Для чего они применяются?

      Приведите примеры приемов алгоритмической оптимизации.


 

Приложение 2

«Три М»

Назовите 3 момента, которые у вас получились хорошо на занятии:

__________________________________________________________

__________________________________________________________

__________________________________________________________

Напишите 1 действие, которое улучшит вашу работу на следующем занятии:

__________________________________________________________

------------------------------------------------------------------------------------------------------------

 

в формате Microsoft Word (.doc / .docx)
Комментарии

Хорошая методразработка к занятию. Жаль, что нельзя оценить нет презентации.

30 November 2017