Учебная работа

Перетащите для изменения порядка разделов
Форматированный текст

Читаемые курсы

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

Читавшиеся курсы

    • Архитектура вычислительных систем,
    • Операционные системы,
    • Теоретические основы информатики,
    • Методы программирования, 
    • Методы искусственного интеллекта,
    • Языки и методы программирования,
    • Декларативные языки программирования. 

Учебно-методические материалы

Информационный менеджмент

Направление подготовки: 02.03.02 Фундаментальная информатика и информационные технологии

Профиль подготовки: Информатика и компьютерные науки

Для студентов 4 курса очной формы обучения

Уровень высшего образования БАКАЛАВРИАТ

Составитель: к.ф.-м.н. доц.  Д.О. Дадеркин

 Типовые контрольные задания для проверки уровня сформированности компетенции ОК-6 - способность работать в команде, толерантно воспринимая социальные, этнические, конфессиональные и культурные различия

  1. Построить граф упрощённого бизнес-процесса для некоторого предприятия:

а) дать краткое описание предприятия (структура, направление деятельности)

б) дать краткое описание бизнес-процесса (не менее 5 бизнес-функций).

  1. Для построенного графа упрощённого бизнес-процесса перечислить:
  2. имена и краткое содержание бизнес-функций,
  3. в каких подразделениях они выполняются, какие ресурсы учитываются
  1. Построить матрицу возможных вариантов мест выполнения приведённых в примере бизнес-функций.
  2. В порождающей варианты предложенного бизнес-процесса описать множества Vt , Vn , V0 , As , An.
  3. Перечислить множества порождающих правил с ресурсными характеристиками в приведённом примере бизнес-процесса

 

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

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

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

Перечислить множество порождающих правил.

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

Привести 4 примера вариантов исполнения бизнес-процесса, оценить количество вариантов исполнения бизнес-процесса.

 ПК-4 - способность работать в составе научно-исследовательского и производственного коллектива и решать задачи профессиональной деятельности

  1. Для данного фрагмента графа развития бизнес-процесса построить граф возможных вариантов последовательности выполнения бизнес-функций, граф возможных вариантов мест выполнения бизнес-функций
  2. Для данного фрагмента графа развития бизнес-процесса определить:
  3. Грамматику, порождающую варианты данного бизнес-процесса,
  4. Перечислить множество порождающих правил
  5. Для данного фрагмента графа развития бизнес-процесса:
  6. Привести 4 примера вариантов исполнения бизнес-процесса,
  7. Оценить количество вариантов исполнения бизнес-процесса.
  8. Для следующего фрагмента графа документооборота

1 M=m0 , X=x1

2 Y=y1

3 F(X,Y)

4 M=m1

5

6 X=x2

7 Y=y2

при рассмотрении узла, определяемого F(X,Y), построить определение информационного объекта.

  1. . Для следующего фрагмента графа документооборота

1 M=m1 , X=x1

2 Y=y1, X=x1

3 Y=y2

4 M=m2

5 X=x2

6 F(X,Y)

7

при рассмотрении узла, определяемого F(X,Y), построить упорядоченный элементарный контекст данных.

 Варианты заданий для расчета на ЭВМ (контрольная работа)

Билет 1

  1. Постройте детерминированный конечный автомат, который распознает язык L в алфавите {0,1}. L = {w | w   начинается с 0 и не содержит подслов 00 }.
  2. А, В, С - матрицы, d - минимальный элемент в А. Найти C(i, j) = A(i, j)+B(i, j) для элементов, расположенных ниже и правее d. Нотация для параллелизма - любая.

Билет 2

  1. Постройте детерминированный конечный автомат, который распознает язык L в алфавите {0,1}. L = {w | (w   содержит подслово 101 или подслово 110) & (w содержит нечетное число единиц ) }.
  2. А, В, С - матрицы, d - максимальный элемент в А. Найти C(i, j) = A(i, j)+B(i, j) для элементов, расположенных ниже и правее d. Нотация для параллелизма - любая.

Билет 3            

  1. Постройте детерминированный конечный автомат, который распознает язык L в алфавите {0,1}. L = {w | в w - слово, заканчивающееся на 011 и содержащее нечетное число единиц}.
  2. А, В, С - матрицы, d - минимальный элемент в А. Найти C(i, j) = A(i, j)-B(i, j) для элементов, расположенных ниже и правее d. Нотация для параллелизма - любая.

Билет 4

  1. Постройте детерминированный конечный автомат, который распознает язык L в алфавите {0,1}. L = {w | w содержит подслово 111 или подслово 10}.
  2. А, В, С - матрицы, d - максимальный элемент в А. Найти C(i, j) = A(i, j)-B(i, j) для элементов, расположенных ниже и правее d. Нотация для параллелизма - любая.

Билет 5

  1. Постройте детерминированный конечный автомат, который распознает язык L в алфавите {0,1}. L = {w | (w   содержит подслово 101 или подслово 111) & (w содержит нечетное число единиц ) }.
  2. А, В, С - матрицы, d - минимальный элемент в А. Найти C(i, j) = A(i, j)+B(i, j) для элементов, расположенных выше и правее d. Нотация для параллелизма - любая.

Билет 6

  1. Постройте детерминированный конечный автомат, который распознает язык L в алфавите {0,1}. L = {w | w   начинается с 1 и не содержит подслов 010 }
  2. А, В, С - матрицы, d - максимальный элемент в А. Найти C(i, j) = A(i, j)+B(i, j) для элементов, расположенных выше и правее d. Нотация для параллелизма - любая.
  3. Список вопросов к зачёту:
    1. Модель бизнес-процесса. Бизнес-операция
    2. Модель бизнес-процесса. Бизнес-функция
    3. Модель бизнес-процесса как граф.
    4. Модель бизнес-процесса. Упрощённый пример
    5. Модель бизнес-процесса и её достоинства
    6. Параллельная атрибутная порождающая грамматика для бизнес-процесса. Входящие в неё множества
    7. Множества порождающих правил грамматики для бизнес-процесса
    8. Атрибуты грамматики для бизнес-процесса
    9. Алгоритм построения атрибутной грамматики для бизнес-процесса
    10. Условия завершения параллелизма
    11. Назначение синтезируемых атрибутов
    12. Назначение наследуемых атрибутов
    13. Утверждение о сценарии бизнес-процесса как о регулярном множестве. Принадлежность сценарию пустого множества
    14. Утверждение о сценарии бизнес-процесса как о регулярном множестве. Принадлежность сценарию пустой цепочки
    15. Утверждение о сценарии бизнес-процесса как о регулярном множестве. Принадлежность сценарию терминального символа
    16. Утверждение о сценарии бизнес-процесса как о регулярном множестве. Замкнутость относительно объединения
    17. Утверждение о сценарии бизнес-процесса как о регулярном множестве. Замкнутость относительно конкатенации
    18. Утверждение о сценарии бизнес-процесса как о регулярном множестве. Принадлежность сценарию транзитивного замыкания
    19. Алгоритм порождения вариантов исполнения бизнес-процесса
    20. Задачи принятия решения по выбору вариантов выполнения бизнес-процессов
    21. Выбор вариантов выполнения бизнес-процессов. Критерии
    22. Выбор вариантов выполнения бизнес-процессов. Требования к критериям
    23. Пример планирования бизнес-процесса. Таблица возможных вариантов мест выполнения бизнес-функций
    24. Граф возможных вариантов последовательности выполнения бизнес-функций
    25. Граф возможных вариантов мест исполнения бизнес-функций
    26. Грамматика, порождающая варианты выполнения бизнес-процессов
    27. Грамматика, порождающая варианты выполнения бизнес-процессов. Построение множества порождающих правил
    28. Порождение цепочек вариантов исполнения бизнес-процессов
    29. Выделение приемлемых для ЛПР цепочек вариантов исполнения бизнес-процессов
    30. Изменение порождающих правил грамматики введением ресурсных характеристик

Нейроинформатика

Направление подготовки: 01.04.02 Прикладная математика и информатика

Программа магистратуры

Системное программирование

Для студентов 2 курса магистратуры

 очная форма

Составитель: к.ф.-м.н., доцент Дадеркин Д.О

ОПК-4, способность использовать и применять углублённые знания в области прикладной математики и информатики

  1. Вычислите комбинированный сетевой ввод для элемента простой нейронной сети и соответствующее выходное значение при использовании пороговой функции и входного вектора [0.7 2.5]
  2. Вычислите выходное значение, использовав в качестве функции активности сигмоидальную функцию. Входной вектор остается таким же, как и в (1).
  3. Вычислите комбинированный ввод для простой нейронной сети, но с набором весовых значений [- 0.2 0.03 1.2] и таким же входным вектором, как и в (1).

 

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

  1. Продемонстрируйте порядок кодирования и декодирования бинарного дерева

((D (A N)) (V (Р (D N)))).

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

(D (А (А (А N ) ) ) )

( (D N )(P(D N) )

(V (D N ) )

(Р (D (А N ) ))

((D N ) V)

((D N) (V (D (А N ) )))

((D (А N ) ) (V (Р (D N ) ) ) )

  1. Пусть векторами являются

а = [1 4], P1 =[2 1], Р2 = [6 6] .

Используя скалярное произведение, покажите, что а ближе к Р2, чем к P1.

 

ПК-2, способность разрабатывать концептуальные и теоретические модели решаемых научных проблем и задач

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

2.Оценить приспособленность хромосом в популяции

  1. Пусть требуется найти хромосомы с максимальным количеством единиц. Допустим, что хромосомы состоят из 12 генов, а популяция насчитывает 8 хромосом.

1.Провести селекцию хромосом методом рулетки.

2.Сформировать новую популяцию с применением генетических операторов.

  1. Покажите, как можно в виде поиска провести синтаксический анализ предложения “The dog ran across the road”. Используйте следующую грамматику:

S NP VP

NP D AP | D N

PP P NP

VP V PP

AP AN и следующий словарь:

D the N dog | road V ran P across

  1. Постройте таблицу со стеками слов, посещений и дублирования для каждой текущей попытки.
  2. Изобразите на рисунке генерируемые состояния

 

  1. Варианты заданий для расчета на ЭВМ (контрольная работа)
  2. Привести алгоритмическую реализацию оценки каждого вида в популяции для классического генетического алгоритма
  3. Привести алгоритмическую реализацию генерации популяции для классического генетического алгоритма
  4. Привести алгоритмическую реализацию скрещивания для классического генетического алгоритма
  5. Привести алгоритмическую реализацию мутации для классического генетического алгоритма.
  6. Привести алгоритмическую реализацию селекции для классического генетического алгоритма.
  7. Привести алгоритмическую реализацию выдачи самой приспособленной особи для классического генетического алгоритма
  8. Привести алгоритмическую реализацию оценки каждого вида в популяции для модифицированного генетического алгоритма
  9. Привести алгоритмическую реализацию генерации популяции для модифицированного генетического алгоритма
  10. Привести алгоритмическую реализацию скрещивания для модифицированного генетического алгоритма
  11. Привести алгоритмическую реализацию мутации для модифицированного генетического алгоритма.
  12. Привести алгоритмическую реализацию селекции для модифицированного генетического алгоритма.
  13. Привести алгоритмическую реализацию выдачи самой приспособленной особи для модифицированного генетического алгоритма

 

Сбалансированные деревья

Направление подготовки: 01.04.02 Прикладная математика и информатика

Программа магистратуры

Системное программирование

Для студентов 2 курса магистратуры

 очная форма

Составитель: к.ф.-м.н., доцент Дадеркин Д.О.

 

ОПК-4, способность использовать и применять углублённые знания в области прикладной математики и информатики

  1. Пусть в AVL-дереве используется стандартный алгоритм поиска по ключу и пусть для нахождения некоторого ключа пришлось просмотреть 11 вершин дерева. Каково минимально возможное число вершин в таком дереве?
  2. Ключи 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110 добавляются в изначально пустое AVL-дерево в некоторой последовательности. Существует ли такая последовательность добавления этих ключей, при которой не будет необходимости выполнять повороты при вставке?
  3. В первоначально пустое AVL-дерево были занесены (по стандартному алгоритму вставки) в указанном порядке следующие ключи: 20, 15, 9, 18, 40, 35, 51, 27, 37, 36. Изобразить АВЛ- деревья, которые получаются после добавления каждого из этих ключей.

 

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

  1. В каком случае при добавлении нового узла происходит увеличение черной высоты КЧ-дерева?

2.Доказать, что красно-черное дерево с n внутренними узлами (без фиктивных листьев) имеет высоту не более 2log2(n+1)

3.Могут ли все узлы КЧ-дерева из пяти внутренних узлов быть черными?

  1. Могут ли все узлы КЧ-дерева из семи внутренних узлов быть черными?

 

ПК-2, способность разрабатывать концептуальные и теоретические модели решаемых научных проблем и задач

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

 

  1. Представить описание коллекции разделенных множеств в памяти компьютера и привести алгоритмическую реализацию операции Объединить (х,у) с помощью древовидной структуры с использованием рангов вершин и сжатия путей.
  2. Доказать, что количество Li лёгких узлов в куче hi  (i = 1, 2) не превосходит логарифма количества ni узлов в этой куче.

 

Варианты заданий для расчета на ЭВМ (контрольная работа)

  1. Привести алгоритмическую реализацию операции ВставкаД вставки узла в двоичное дерево поиска
  2. Привести алгоритмическую реализацию операции УдалениеД удаления узла из двоичного дерева поиска
  3. Привести алгоритмическую реализацию операции БалансД балансировки узла в двоичном дереве поиска
  4. Привести алгоритмическую реализацию операции ВставкаЛЛ добавления в левое поддерево левого сына опорного узла
  5. Привести алгоритмическую реализацию операции ВставкаПП добавления в правое поддерево правого сына опорного узла.
  6. Привести алгоритмическую реализацию операции ВставкаПЛ добавления в правое поддерево левого сына опорного узла.
  7. Привести алгоритмическую реализацию операции ВставкаЛП добавления в левое поддерево правого сына опорного узла
  8. Привести алгоритмическую реализацию операции УдалениеAVL удаления узла из AVL-дерева с использованием процедуры восстановления баланса.
  9. Привести алгоритмическую реализацию операции ВставкаRB вставки узла в КЧ-дерево
  10. Привести алгоритмическую реализацию операции УдалениеRB удаления узла из КЧ-дерева
  11. Привести алгоритмическую реализацию операции БалансRB балансировки узла в КЧ-дереве
  12. Привести алгоритмическую реализацию операции ВосстановлениеКЧ восстановления свойств КЧ-дерева

 

УПРАВЛЕНИЕ ПРОЕКТАМИ

Направление подготовки: 01.04.02 Прикладная математике и информатика

Магистерская программа

Математическое моделирование

Для студентов 1 курса магистратуры

 очная форма

Составитель: к.ф.-м.н., доцент Дадеркин Д.О.

 

ОК-2, готовность действовать в нестандартных ситуациях, нести социальную и этическую ответственность за принятые решения;

  1. Отметьте номер лишнего пункта в следующем высказывании:

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

1) как планировать работы,

2) как распределять работы,

3) как оплачивать работы,

4) как контролировать работы

 

  1. Отметьте номера двух правильных пунктов в следующем высказывании:

Аспекты задачи изучения менеджмента –

1) Управление

2) распределение

3) руководство

4) контроль

 

  1. Главная и постоянная задача менеджмента разработки программного обеспечения — это

1) распределение и контроль финансов

2) эффективное использование производственного потенциала работников

3) продвижение проекта к обозначенным в начале его развития результатам

4) обеспечение техническими средствами

 

 

ОК-3, готовность действовать в нестандартных ситуациях, нести социальную и этическую ответственность за принятые решения;

  1. Отметьте номер правильного пункта в следующем высказывании:

Команда проекта – это

1) Группа лиц, являющаяся автором главной идеи проекта, его предварительного обоснования и предложений по осуществлению проекта,

2) Перечень поставщиков и подрядчиков, которые будут выполнять работы проекта,

3) Группа сотрудников, которым делегировали ответственность за проект в целом,

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

 

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

1) функции кодирования

2) анализа требований

3) управления рисками

4) тестирования и отладки

 

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

1) Microsoft Solution Framework (MSF)

2) International Project Management Association

3) Центра объектно-ориентированной технологии IBM

4) Human Factors Engineer

 

 

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

  1. В «проектной пирамиде» Дж. Мараско вероятностью успеха является

1) Объём

2) Высота

3) Площадь

4) Периметр

 

  1. В Классической итерационной модели итерационные возвраты возможны

1) В начальный блок

2) В последний блок

3) В любой блок

4) Ни в какой блок

 

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

1) максимизация возвратов в начальный блок

2) минимизация возвратов в начальный блок

3) максимизация возвратов к пройденным этапам

4) минимизация возвратов к пройденным этапам

 

 

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

  1. Классические схемы отражают фактический ход развития реальных программных проектов

1) Лучше, чем Схемы итеративного развития

2) Так же, как Схемы итеративного развития

3) Хуже, чем Схемы итеративного развития

4) Никак не отражают

 

  1. Иллюстративная модель жизненного цикла – это

1) Microsoft Solution Framework (MSF)

2) Общепринятая модель жизненного цикла

3) Строгая каскадная модель

4) Матрица фазы—функции  

 

  1. Постепенное наращивание возможностей системы изображают с помощью

1) Спирали развития

2) Матрицы фазы—функции

3) Спирали охвата предметной области

4) Строгой каскадной модели  

 

 

  1. Варианты заданий для расчета на ЭВМ (контрольная работа)

Задача 1

Бюджет проекта задан  следующей матрицей:

Периоды,

План,

Факт,

T

BCWS

ACWP

1

10

8

2

10

7

3

20

15

4

15

15

Рассчитать индексы BCWP1, BCWP2, CV, SV.

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

Задача 2

Бюджет проекта задан  следующей матрицей:

Периоды,

План,

Факт,

T

BCWS

ACWP

1

10

8

2

20

10

3

40

20

4

15

15

Рассчитать индексы BCWP1, BCWP2, CV, SV.

Используя анализ по методу освоенного объёма, определить опережение или отставание от графика развития проекта в каждом периоде  по стоимости и по срокам.

Задача 3

Бюджет проекта задан  следующей матрицей:

Периоды,

План,

Факт,

T

BCWS

ACWP

1

10

40

2

30

40

3

15

20

4

15

15

Рассчитать индексы BCWP1, BCWP2, CV, SV.

Используя анализ по методу освоенного объёма, определить тенденции развития проекта в каждом периоде  по срокам.

Задача 4

Бюджет проекта задан  следующей матрицей:

Периоды,

План,

Факт,

T

BCWS

ACWP

1

10

8

2

20

7

3

30

15

4

15

40

Рассчитать индексы BCWP1, BCWP2, CV, SV.

Используя анализ по методу освоенного объёма, определить тенденции развития проекта  в каждом периоде по стоимости.

 

Фонд оценочных средств по дисциплине

декларативные языки программирования

Составитель: к.ф.-м.н. доцент Дадеркин Д.О.

Направление подготовки

44.03.05 Педагогическое образование (с двумя профилями подготовки)

Профиль подготовки

Начальное образование и информатика

Для студентов 4 курса очной формы обучения

 

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

БАКАЛАВРИАТ

 

Компетенция:

ПК-10: Способность применять в профессиональной деятельности современные языки программирования и языки баз данных, операционные системы, электронные библиотеки и пакеты программ, сетевые технологии

 

 

  1. Итоговое испытание по дисциплине - список вопросов к экзамену с развёрнутым правильным вариантом ответа.

Все следующие задания соответствуют вышеуказанной компетенции ПК-10.

Критерии оценки: 1. Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов.

В билете – выбранные случайным образом два из следующих вопросов:

  1. Запишите на ЛИСПЕ определение квадратного корня и реализуйте его на Scheme .

Развёрнутый ответ:

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

sqrt(a) = x, где x>=0 и x2 = a.

Впрочем, такая спецификация чересчур оптимистична.

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

Возьмём произвольное число x в качестве приближенного значения для квадратного корня из a.

Тогда x * a/x = a, причём одно из значений x и a/x заведомо меньше искомого корня, а другое - больше. Значит, их среднее арифметическое будет ближе к корню, и можно определить «улучшающую функцию» improve.

(define (improve x a)

      (average x (/ a x)))

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

Таким образом, мы можем описать итерационный процесс:

(define (sqrt-iter x a)

      (if (acceptable? x a)

      x

      (sqrt-iter (improve x a) a)))

 

  1. Запишите на ЛИСПЕ определение квадратного корня с выбором начального приближения и реализуйте его на Scheme .

Развёрнутый ответ:

Мы можем предположить, что квадратный корень любого числа равен 1. Тогда получаем:

(define (sqrt a)

      (sqrt-iter 1.0 a))

(define (sqrt-iter x a)

       (if (acceptable? x a)

                  x

                  (sqrt-iter (improve x a) a)))

(define (improve x a)

      (average x (/ a x)) )

(define (acceptable? x)

      (< (abs (- (sqr x) a)) 0.00001))

  1. Запишите на ЛИСПЕ определение квадратного корня с ограничением области видимости вспомогательных функций и с использованием локальных определений и реализуйте его на Scheme .

Развёрнутый ответ:

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

(define (sqrt a)

      (define (acceptable? x a)

                  (< (abs (- (sqr x) a)) 0.00001))

      (define (improve x a)

                  (average x (/ a x)) )

      (define (sqrt-iter x a)

                  (if (acceptable? x a)

                             x

                             (sqrt-iter (improve x a) a)))

      (sqrt-iter 1.0 a))

Теперь acceptable?, sqrt-iter, improve видимы только внутри определения sqrt.

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

Развёрнутый ответ:

(define (sqrt a)

      (define (improve x)

                  (average x (/ a x)) )

      (define (sqrt-iter x)

                  (let ((y (improve x)))

                             (if (near? y x)

                                          y

                                         (sqrt-iter y))))

      (sqrt-iter 1.0))

(define err 0.000001)

(define (near? x1 x2)

      (< (abs (- x1 x2)) err))

  1. Описать итерационный процесс для вычисления чисел Фибоначчи.

Развёрнутый ответ:

Идея состоит в том, чтобы одновременно преобразовывать пару целых чисел (Fk-1, Fk), отображая её в (Fk, Fk+1).

Применив n-1 раз это преобразование к паре чисел (1, 1), то есть к (F1, F2) ,  мы получим пару (Fn, Fn+1).

(define (fib-iter a b count)

      (if (= count 0)

                  a

      (fib-iter b (+ a b) (- count 1))))

(define (fib n)

      (fib-iter 1 1 (- n 1)))

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

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

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

Развёрнутый ответ:

Мы можем описать итерационный процесс:

(define (sqrt-iter x a)

      (if (acceptable? x a)

      x

      (sqrt-iter (improve x a) a)))

Теперь уже необходимо определить, что мы подразумеваем под «приемлемым приближением»

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

(define (acceptable? x)

      (< (abs (- (sqr x) a)) 0.00001))

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

Мы можем предположить, что квадратный корень любого числа равен Тогда получаем:

(define (sqrt a)

      (sqrt-iter 1.0 a))

(define (sqrt-iter x a)

       (if (acceptable? x a)

                  x

                  (sqrt-iter (improve x a) a)))

(define (improve x a)

      (average x (/ a x)) )

(define (acceptable? x)

      (< (abs (- (sqr x) a)) 0.00001))

  1. Определите функцию, которая выражает концепцию суммирования, а не просто функции, вычисляющие конкретные суммы.

Развёрнутый ответ:

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

(define (sum f m n)

      (if (> m n)

                                    (+ (f m) (sum f (+ m 1) n))))

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

Развёрнутый ответ:

Используя лямбда-выражения, перепишем наше определение:

(define (sum-sqr m n)            (sum sqr m n) )

(define (sum-int m n)             (sum id m n))

(define (id x)     x)

Теперь подсчитаем сумму кубов чисел от 1 до 10:

(sum [lambda (x) (* x x x)] 1 10)

3025

 

  1. Спроектируйте функцию, которая выражает концепцию произведения, а не просто функции, вычисляющие конкретные произведения чисел.

Развёрнутый ответ:

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

(define (prod f m n)

      (if (> m n)

                  1

                  (* (f m) (prod f (+ m 1) n))))

и затем выделить ещё более общий образец «накопления»:

(define (acc op e f m n)

      (if (> m n)

                  e

                  (op (f m) (acc op e f (+ m 1) n))))

для которого sum и prod будут частными случаями.

(define (sum f m n)

       (acc + 0 f m n) )    

(define (prod f m n)

      (acc * 1 f m n) )

  1. Спроектируйте  функцию, которая выражает концепцию максимума нескольких  чисел.

Развёрнутый ответ:

Введём новую функцию:

(define (acc1 op f m n)

      (acc op (f m) (+ m 1) n) )

Процедура определяет линейный рекурсивный процесс. Теперь определение максимума приобретает такой вид:

(define (maximum f m n)

      (acc1 max m n ))

(define (minimum f m n)

      (acc1 min m n ))

  1. Варианты заданий для расчета на ЭВМ (контрольная работа)

Все следующие задания соответствуют вышеуказанной компетенции ПК-10.

Критерии оценки: 1. Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов.

Билет 1

  1. Записать определение чисел Фибоначчи: F1 = 1 F2 = 1 Fn = Fn-1+ Fn-2.

Ответ:

 (define (C m n)

            (cond ((= m 0) 1)

                        ((= m n) 1)

                       (else (+ (C (m (-n 1) )

                                   (C ((-m 1) ( – n 1)))))))

  1. Наибольший общий делитель (НОД) двух натуральных чисел a и b определён как наибольшее натуральное число, которое делит a и b без остатка. Записать его определение.

Ответ:

 (define (gcd a b)

             (cond ((= a b) a)

                       ((> a b) (gcd (- a b) b) )

                       ((< a b) (gcd (- b a) a) )))

Билет 2

  1. Записать определение факториала по схеме n! = n*(n-1)! И показать дерево вывода 5!

Ответ:

(define (fac n)

            (cond ((= n 1) 1)

                       ((> n 1) (* n (fac (- n 1))))))

  1. Написать в форме с хвостовой рекурсией следующее определение:

acc[o, e, f, m, n] = 

             fm o (fm+1 … o fo e)  = fm o acc[o, e, f, m+1, n]

Ответ:

(define (acc op e f m n)

            (if (> m n)

                       e         

                       (acc op (op e (f m))f(+ m 1) n)))

Билет 3

  1. Показать рекурсивную схему вывода 5!

Ответ: 

(fac 5)

(* 5 (fac 4))

(* 5 (* 4 (fac 3)))

(* 5 (* 4 (*3 (fac 2))))

(* 5 (* 4 (*3 (* 2 (fac 1)))))

(* 5 (* 4 (*3 (* 2 1))))

  1. Написать в форме с хвостовой рекурсией следующее определение:

(define (sin+cos x)           

            (+ (sin x) (cos x)))

и показать пример его использования.

Ответ: 

 (define (f+ f g x)

(+ (f x) (g x)))

Пример использования:

((f+ sin cos) x)

            (integral (f+ sin cos) a b dx)

Билет 4

  1. Вычислить рекурсивно пятое число Фибоначчи.

Ответ: 

(fib 5)

(+ (fib 4) (fib 3))

(+ (+ (fib 3) (fib 2)) (fib 3))

(+ (+ (+ (fib 2) (fib 1)) (fib 2)) (fib 3))

(+ (+ (+ 1 (fib 1)) (fib 2)) (fib 3))

(+ (+ (+ 1 1) (fib 2)) (fib 3))

(+ (+ 2 (fib 2)) (fib 3))

(+ (+ 2 1) (fib 3))

(+ 3 (fib 3))

(+ 3 (+ (fib 2) (fib 1)))

(+ 3 (+ 1 (fib 1)))

(+ 3 (+ 1 1))

5

  1. Создать общую схему процедуры, реализующей метод Ньютона.

Ответ: 

(define (newton-method f df x)

            (define (improve x) (- x (/ (f x) (df x))) )

                       (define (newton-iter x)

                                   (let ((y (improve x)))

                                               (if (near? y x)

                                                           y

                                               (newton-iter y))))

                       (newton-iter x))

(define err 0.00001)

(define (near? x1 x2)

(< (abs (- x1 x2)) err))

Билет 5

  1. Опишите итерационный процесс и для вычисления чисел Фибоначчи.

Ответ:

 (define (fib-iter a b count)

            (if (= count 0)

                       a

            (fib-iter b (+ a b) (- count 1))))

(define (fib n)

            (fib-iter 1 1 (- n 1)))

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

C(0, n) = C(n, n) = 1
C(m, n) = C(m, n-1) + C(m-1, n-1)

Ответ: 

(define (C m n)

      (cond ((= m 0) 1)

                   ((= m n) 1)

                  (else (+ (C (m (-n 1) )

                             (C ((-m 1) ( – n 1)))))))

 

 

Проверка этапа формирования компетенции ПК-10:

Этап формирования компетенции, в котором участвует дисциплина

Типовые контрольные задания для оценки знаний, умений, навыков

Показатели и критерии оценивания компетенции, шкала оценивания

заключительный, владеть

1. Спроектируйте  функцию, которая выражает концепцию произведения, а не просто функции, вычисляющие конкретные произведения чисел.

Ответ:

Используем функцию высшего порядка:

(define (prod f m n)

            (if (> m n)

                        1

                        (* (f m) (prod f (+ m 1) n))))

и затем выделим ещё более общий образец «накопления»:

(define (acc op e f m n)

            (if (> m n)

                        e

                        (op (f m) (acc op e f (+ m 1) n))))

для которого  sum  и  prod  будут частными случаями.

(define (sum f m n)

             (acc + 0 f m n) )    

(define (prod f m n)

            (acc * 1 f m n) )

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

Развёрнутый ответ:

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

(define (sqrt a)

       (define (acceptable? x a)

            (< (abs (- (sqr x) a))  0.00001))   

       (define (improve x a)

          (average x (/ a x)) )

          (define (sqrt-iter x a)

              (if (acceptable? x a)

                              x

                              (sqrt-iter (improve x a) a)))

       (sqrt-iter 1.0 a))

 1. Верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

 

 

 

 

заключительный, уметь

1.  Создать на ЛИСП общую схему процедуры, реализующей метод Ньютона.

Ответ: 

(define (newton-method f df x)

            (define (improve x) (- x (/ (f x) (df x))) )

                        (define (newton-iter x)

                                   (let ((y (improve x)))

                                               (if (near? y x)

                                    y

                                   (newton-iter y))))

                        (newton-iter x))

(define err 0.00001)

(define (near? x1 x2)

(< (abs (- x1 x2)) err))

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

C(0, n) = C(n, n) = 1
C(m, n) = C(m, n-1) + C(m-1, n-1)

Ответ: 

(define (C m n)

            (cond ((= m 0) 1)

                         ((= m n) 1)

                        (else (+ (C (m (-n 1) )

                                   (C ((-m 1) ( – n 1)))))))

 

1. Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

 

 

 

 

 

 

 

 

 

 

 

 

2. Программа выполняется верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

заключительный, знать

1. Записать на Лисп определение чисел Фибоначчи: F1 = 1 F2 = 1 Fn = Fn-1+ Fn-2.

Ответ:

 (define (C m n)

           (cond ((= m 0) 1)

            ((= m n) 1)

           (else (+ (C (m (-n 1) )

           (C ((-m 1) ( – n 1)))))))

2. Опишите на Лисп  рекурсивную схему вывода 5!

Ответ: 

(fac 5)

(* 5 (fac 4))

(* 5 (* 4 (fac 3)))

(* 5 (* 4 (*3 (fac 2))))

(* 5 (* 4 (*3 (* 2 (fac 1)))))

(* 5 (* 4 (*3 (* 2 1))))

120

3. Записать на Лисп  определение факториала по схеме n! = n*(n-1)!  и показать дерево вывода 5!

Ответ:

(define (fac n)

            (cond ((= n 1) 1)

                        ((> n 1) (* n (fac (- n 1))))))

1. Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

 

 

 

 

2. Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

 

 

 

 

3. Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

 

 

Фонд оценочных средств по дисциплине

языки и методы программирования

Составитель: к.ф.-м.н. доцент Дадеркин Д.О.

Направление подготовки

44.03.05 Педагогическое образование (с двумя профилями подготовки)

Профиль подготовки

Начальное образование и информатика

Для студентов 1 курса очной формы обучения

 

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

БАКАЛАВРИАТ

 

Компетенции:

ОК-3: способность исполь­зовать естественно­научные и математи­ческие знания для ориентирования в современном инфор­мационном про­странстве,

ОК-6: способность к само­организации и самооб­разованию.

 

 

 

  1. Итоговое испытание по дисциплине - список вопросов к экзамену с развёрнутым правильным вариантом ответа.

Все следующие задания соответствуют компетенции ПК компетенция ОК-6 (способность к само­организации и самооб­разованию) и ОК-3 (способность исполь­зовать естественно­научные и математи­ческие знания для ориентирования в современном инфор­мационном про­странстве).

Критерии оценки: 1. Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов.

В билете – выбранные случайным образом два из следующих вопросов:

1.       Написать на на Python функцию, накапливающую переданные ей параметры.

Развёрнутый ответ:

>>> def f(a, L=[]): # Сначала список пуст: []

        L.append(a)  # Добавляем а в конец списка

        return L        # Возвращаем список

 >>> print(f(1))

[1]

>>> print(f(2)) #При следующем вызове в L уже содержится значение предыдущего вызова

[1, 2]

>>> print(f(3))

[1, 2, 3]

 

2.      Написать на на Python функцию с использованием именованных параметров (keyword arguments) в форме "имя = значение".

Развёрнутый ответ:

функция

>>> def попугай(напряжение, оценка='обгорит', действие='прихорашиваться,', вид='Норвежского голубого'):

    print("– Этот попугай не сможет", действие, end=' ')

    print("если Вы пропустите", напряжение, "вольт через него.")

    print("– Испортится прекрасный наряд", вид)

    print("-- Он", оценка, "!")

может быть вызвана любым из следующих способов:

попугай(1000)

попугай(действие =' есть,', напряжение =1000000)

попугай('тысячу', оценка ='полетит вверх тормашками')

попугай('миллион', 'лишится жизни', 'скакать,')

а эти случаи оказались бы неверными:

попугай()                    

TypeError: попугай() missing 1 required positional argument: 'напряжение'

# пропущен требуемый аргумент

попугай(напряжение =5.0, 'умрёт') 

SyntaxError: non-keyword arg after keyword arg

# позиционный параметр вслед за именованным

3.       Как можно в на Python вызвать следующую функцию:

def cheeseshop(kind, *arguments, **keywords):

    print("-- Do you have any", kind, "?")

    print("-- I'm sorry, we're all out of", kind)

    for arg in arguments: print(arg)

    print("-" * 40)

    keys = sorted(keywords.keys())

    for kw in keys: print(kw, ":", keywords[kw])

?

Развёрнутый ответ:

Функция может быть вызвана, например,  так:

cheeseshop('Limburger', "It's very runny, sir.", # слезящийся

           "It's really very, VERY runny, sir.",

           client="John Cleese",

           shopkeeper="Michael Palin",

           sketch="Cheese Shop Sketch" )

и она выведет:

-- Do you have any Limburger ?
-- I'm sorry, we're all out of Limburger
It's very runny, sir.
It's really very, VERY runny, sir.
----------------------------------------
client : John Cleese
shopkeeper : Michael Palin
sketch : Cheese Shop Sketch

4.        Приведите на на Python пример ссылки lambda-формы на переменные из содержащей их области видимости

Развёрнутый ответ:

>>> def make_incrementor(n):

     return lambda x: x + n

>>> f = make_incrementor(42)

>>> f(0)

42

>>> f(1)

43

5.        Написать на Python программу,  использующую большинство методов списка.

Развёрнутый ответ:

>>> a = [66.25, 333, 333, 1, 1234.5]

>>> print(a.count(333), a.count(66.25), a.count('x'))

2 1 0 # 333 встречается 2 раза, 66.25 – 1 раз, 'x‘ отсутствует

>>> a.insert(2, -1) # [66.25, 333, -1, 333, 1, 1234.5]

>>> a.append(333) # [66.25, 333, -1, 333, 1, 1234.5, 333]

>>> a.index(333)

1

# [66.25, 333, -1, 333, 1, 1234.5, 333]

>>> a.remove(333) # Убрать первое 333:

 [66.25, -1, 333, 1, 1234.5, 333]

>>> a.reverse()     # Перевернуть:

>>> a

[333, 1234.5, 1, 333, -1, 66.25]

>>> a.sort()           # Сортировать:

>>> a

[-1, 1, 66.25, 333, 333, 1234.5]

6.     Написать на Python программу получения единичной матрицы порядка n:

Развёрнутый ответ:

>>> n=3

>>> a=[[0]*i+[1]+[0]*(n-i-1) for i in range(n)]

>>> a

[[1, 0, 0], [0, 1, 0], [0, 0, 1]]

7.       Привести пример работы с множествами на Python.

Развёрнутый ответ:

Работа с множествами:

>>> корзина = {'яблоко', 'апельсин', 'яблоко', 'персик', 'апельсин', 'банан'}

# - создали СЛОВАРЬ

>>> print(корзина)

{'яблоко', 'апельсин', 'персик', 'банан'}

>>> список_фруктов = ['яблоко', 'апельсин', 'яблоко', 'персик', 'апельсин', 'банан']

>>> фрукты = set(список_фруктов)  # создать множество на основе данных из списка (заметьте исчезновение дубликатов.)

>>> фрукты

{'яблоко', 'апельсин', 'персик', 'банан' }

>>> фрукты = {'апельсин', 'яблоко'} # синтаксис { } эквивалентен [ ] у списков

>>> фрукты

{'яблоко', 'апельсин'}

>>> 'апельсин‘ in фрукты #быстрая проверка на вхождение

True

>>> 'ежевика' in fruit

NameError: name 'fruit' is not defined

8.      Написать на Python программу использования словарей.

Развёрнутый ответ:

>>> tel = {'jack': 4098, 'sape': 4139}

>>> tel

{'sape': 4139, 'jack': 4098}

>>> tel['jack']

4098

>>> del tel['sape']

>>> tel

{'jack': 4098}

>>> tel['irv'] = 4127

>>> tel

{'jack': 4098, 'irv': 4127}

>>> list(tel.keys())

['jack', 'irv']

>>> sorted(tel.keys())

['irv', 'jack']

>>> 'guido' in tel

False

>>> 'jack' not in tel

False

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

Развёрнутый ответ:

элементы можно предварительно сгруппировать функцией zip():

>>> вопросы = ['имя', 'приключение', 'любимый цвет']

>>> ответы = ['Ланселот', 'Поиск Святого Грааля', 'Голубой']

>>> for q, a in zip(вопросы, ответы):

             print(‘{0}?    {1}.'.format(q, a))

имя?    Ланселот.

приключение?    Святой Грааль.

любимый цвет?    Голубой.

10.    Описать на Python модуль и привести примеры работы с ним.

Развёрнутый ответ:

Модуль — это файл, содержащий определения и операторы Python.

Именем файла является имя модуля с добавленным суффиксом .py

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

__name__ ( __ - ДВА символа _ слитно с каждой стороны).

"""Модуль вычисления чисел Фибоначчи"""

 def fib(n):    # вывести числа Фибоначчи вплоть до n

    a, b = 0, 1

    while b < n:

        print(b, end=' ')

        a, b = b, a+b

    print()

 

  1. Варианты заданий для расчета на ЭВМ (контрольная работа).

Все следующие задания соответствуют компетенции ОК-3 (способность использовать естественнонаучные и математические знания для ориентирования в современном информационном пространстве).

Критерии оценки: 1. Ответ дан верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов.

  1. Описать все подстроки строки z=00110

Ответ:

 это строки  ε, 0, 1, 00, 01, 10, 11, 001, 011, 110, 0011, 0110 и сама строка z

  1. Дать определение и привести пример объединения двух формальных языков

Ответ:

Формальным языком L над алфавитом Σ называется произвольное подмножество множества Σ*

Если L1, L2 - два формальных языка, то их объединение L1L2 = { x y| x € L1, y € L2  } - тоже формальный язык.

Пример: если L1 = {01, 0}, L2 = {ε, 0, 10} , то

L1L2 = {01, 010, 0110, 0,00 } .

  1. Определить грамматику G1 [ <число> ].

Ответ:

Грамматика G1 [ <число> ] содержит 13 правил:

(1) <число> ::= <чс>        (2) <чс>::= <чс><цифра>

(3) <чс>::= <цифра>        (4) <цифра> ::= 0

(5) <цифра> ::= 1             (6) <цифра> ::= 2

(7) <цифра> ::= 3             (8)<цифра> ::= 4

(9) <цифра> ::= 5            (10)<цифра> ::= 6

(11)<цифра> ::= 7            (12)<цифра> ::= 8

(13)<цифра> ::= 9

Здесь V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, <цифра>, <чс>, <число> }

  1. Определить грамматику G1[<число>] с использованием нормальной формы Бэкуса (БНФ)  

Ответ:

грамматику G1[<число>] можно записать так:

(1) <число> ::= <чс>

(2) <чс>::= <чс><цифра> | <чс>

(3) <цифра> ::= 0 | 1 | 2 | 3 |4 | 5 | 6 | 7 | 8 | 9

  1. Дать определение и привести пример теста.

Ответ:

Тест — формула вида   e1 = e2  или вида e1 <e2, где e1 и e2 — выражения.

Примеры тестов:

x < succ (0)           succ (x)= succ (succ (y))

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

Ответ:

Alg Max;

 arg x, y;

 if x < y then

Max = y;

else

Max = x;   

end;

end;

  1. Дайте определение и приведите пример композиции отображений 

Ответ:

Пусть даны два (частичных) одноместных отображения: f : A → B и g : B → C.

Произведение отображений (композиция отображений) f и g— это (частичное) отображение h : A → C определенное следующим образом:

h = {(a, c): a ∈ A, c ∈ C и существует b ∈ B такой, что (a, b) ∈ f и (b, c) ∈ g} .

Пример. . Пусть A = {a1,a2}, B = {b1,b2}, C = {c1,c2}. Пусть f = {(a1,b1) , (a2,b1)} и g = {(b1,c2)}. Тогда, очевидно, gf = {(a1,c2) , (a2,c2)}

  1. Приведите на языке Python пример прохождения по всем индексам какой-либо последовательности. Вывести результат на экран.

Ответ:

>>> a = ['У', 'Мэри', 'есть', 'маленький', 'ягнёнок’]

>>> for i in range(len(a)): #  len(a)= 5 => range(5)

         print(i, a[i])

...

0 У

1 Мэри

2 есть

3 маленький

4 ягнёнок

  1. Написать программу поиска простых чисел

Ответ:

>>> for n in range(2, 10):

     for x in range(2, int(n ** 0.5) + 1):

                 if n % x == 0:

                             print(n, 'равно', x, '*', n//x)

                             break

     else:

                             print(n, '- простое число')

4 равно 2 * 2

5 - простое число

6 равно 2 * 3

7 - простое число

8 равно 2 * 4

9 равно 3 * 3

2 - простое число 3 - простое число

  1. Написать программу поиска чисел Фибоначчи

Ответ:

>>> def fib2(n): # вернуть числа Фибоначчи меньшие (вплоть до) n

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

     result = []

     a, b = 0, 1

     while b < n:

                 result.append(b)    # см. Ниже

                 a, b = b, a+b

     return result

...

>>> f100 = fib2(100)    # вызываем

>>> f100                # выводим результат

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

 

Проверка этапа формирования компетенции ОК-3:

Этап формирования компетенции, в котором участвует дисциплина

Типовые контрольные задания для оценки знаний, умений, навыков

Показатели и критерии оценивания компетенции, шкала оценивания

заключительный, владеть

1.      Приведите на языке Python пример прохождения по всем индексам какой-либо последовательности. Вывести результат на экран.

Ответ:

>>> a = ['У', 'Мэри', 'есть', 'маленький', 'ягнёнок’]

>>> for i in range(len(a)): #  len(a)= 5 => range(5)

         print(i, a[i])

...

0 У

1 Мэри

2 есть

3 маленький

4       ягнёнок

2. Написать программу поиска чисел Фибоначчи

Ответ:

>>> def fib2(n): # вернуть числа Фибоначчи меньшие (вплоть до) n

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

     result = []

     a, b = 0, 1

     while b < n:

                 result.append(b)    # см. Ниже

                 a, b = b, a+b

     return result

...

>>> f100 = fib2(100)    # вызываем

>>> f100                # выводим результат

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

 

1.Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

 

 

 

 

 

 

 

 

 

2. Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

 

 

 

 

заключительный, уметь

1.       Написать на на Python функцию, накапливающую переданные ей параметры.

Развёрнутый ответ:

>>> def f(a, L=[]): # Сначала список пуст: []

        L.append(a)  # Добавляем а в конец списка

        return L        # Возвращаем список

 >>> print(f(1))

[1]

>>> print(f(2)) #При следующем вызове в L уже содержится значение предыдущего вызова

[1, 2]

>>> print(f(3))

[1, 2, 3]

2. Написать программу поиска простых чисел

Ответ:

>>> for n in range(2, 10):

            for x in range(2, int(n ** 0.5) + 1):

                        if n % x == 0:

                                   print(n, 'равно', x, '*', n//x)

                                   break

            else:

                                   print(n, '- простое число')

4 равно 2 * 2

5 - простое число

6 равно 2 * 3

7 - простое число

8 равно 2 * 4

9 равно 3 * 3

2 - простое число 3 - простое число

 

1. Программа написана верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Программа выполняется верно – 2 балла, с ошибками – 1 балл, неверно  - 0 баллов

заключительный, знать

1. Дать определение и привести пример объединения двух формальных языков

Ответ:

Формальным языком L над алфавитом Σ называется произвольное подмножество множества Σ*

Если L1, L2 - два формальных языка, то их объединение L1L2 = { x y| x € L1, y € L2  } - тоже формальный язык.

Пример: если L1 = {01, 0}, L2 = {ε, 0, 10} , то

L1L2 = {01, 010, 0110, 0,00 } .

2. Определить  грамматику G1[<число>] с использованием нормальной формы Бэкуса (БНФ)  

Ответ:

грамматику G1[<число>] можно записать так:

(1) <число> ::= <чс>

(2) <чс>::= <чс><цифра> | <чс>

(3) <цифра> ::= 0 | 1 | 2 | 3 |4 | 5 | 6 | 7 | 8 | 9

3.Дать определение и привести пример теста.

Ответ:

Тест — формула вида   e1 = e2  или вида e1 <e2, где e1 и e2 — выражения.

Примеры тестов:

x < succ (0)           succ (x)= succ (succ (y))

 

 

1. Ответ верен – 2 балла, с ошибками – 1 балл, неверен  - 0 баллов

 

 

 

 

 

 

 

2. Ответ верен – 2 балла, с ошибками – 1 балл, неверен  - 0 баллов

 

 

 

 

3. Ответ верен – 2 балла, с ошибками – 1 балл, неверен  - 0 баллов

 

 

Проверка этапа формирования компетенции ОК-6:

Этап формирования компетенции, в котором участвует дисциплина

Типовые контрольные задания для оценки знаний, умений, навыков

Показатели и критерии оценивания компетенции, шкала оценивания

заключительный, владеть

1.        Написать на на Python функцию, накапливающую переданные ей параметры.

Развёрнутый ответ:

>>> def f(a, L=[]): # Сначала список пуст: []

        L.append(a)  # Добавляем а в конец списка

        return L        # Возвращаем список

 >>> print(f(1))

[1]

>>> print(f(2)) #При следующем вызове в L уже содержится значение предыдущего вызова

[1, 2]

>>> print(f(3))

[1, 2, 3]

2. Как можно в на Python вызвать следующую функцию:

def cheeseshop(kind, *arguments, **keywords):

    print("-- Do you have any", kind, "?")

    print("-- I'm sorry, we're all out of", kind)

    for arg in arguments: print(arg)

    print("-" * 40)

    keys = sorted(keywords.keys())

    for kw in keys: print(kw, ":", keywords[kw])

?

Развёрнутый ответ:

Функция может быть вызвана, например,  так:

cheeseshop('Limburger', "It's very runny, sir.", # слезящийся

           "It's really very, VERY runny, sir.",

           client="John Cleese",

           shopkeeper="Michael Palin",

           sketch="Cheese Shop Sketch" )

и она выведет:

-- Do you have any Limburger ?
-- I'm sorry, we're all out of Limburger
It's very runny, sir.
It's really very, VERY runny, sir.
----------------------------------------
client : John Cleese
shopkeeper : Michael Palin
sketch : Cheese Shop Sketch

1.Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

 

 

заключительный, уметь

1.       Приведите на на Python пример ссылки lambda-формы на переменные из содержащей их области видимости

Развёрнутый ответ:

>>> def make_incrementor(n):

     return lambda x: x + n

>>> f = make_incrementor(42)

>>> f(0)

42

>>> f(1)

43

2. Написать на Python программу,  использующую большинство методов списка.

Развёрнутый ответ:

>>> a = [66.25, 333, 333, 1, 1234.5]

>>> print(a.count(333), a.count(66.25), a.count('x'))

2 1 0 # 333 встречается 2 раза, 66.25 – 1 раз, 'x‘ отсутствует

>>> a.insert(2, -1) # [66.25, 333, -1, 333, 1, 1234.5]

>>> a.append(333) # [66.25, 333, -1, 333, 1, 1234.5, 333]

>>> a.index(333)

1

# [66.25, 333, -1, 333, 1, 1234.5, 333]

>>> a.remove(333) # Убрать первое 333:

 [66.25, -1, 333, 1, 1234.5, 333]

>>> a.reverse()     # Перевернуть:

>>> a

[333, 1234.5, 1, 333, -1, 66.25]

>>> a.sort()           # Сортировать:

>>> a

[-1, 1, 66.25, 333, 333, 1234.5]

1. Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

 

 

 

 

 

 

 

2. Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

заключительный, знать

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

Развёрнутый ответ:

элементы можно предварительно сгруппировать функцией zip():

>>> вопросы = ['имя', 'приключение', 'любимый цвет']

>>> ответы = ['Ланселот', 'Поиск Святого Грааля', 'Голубой']

>>> for q, a in zip(вопросы, ответы):

             print(‘{0}?    {1}.'.format(q, a))

имя?    Ланселот.

приключение?    Святой Грааль.

любимый цвет?    Голубой.

2. Написать на Python программу получения единичной матрицы порядка n:

Развёрнутый ответ:

>>> n=3

>>> a=[[0]*i+[1]+[0]*(n-i-1) for i in range(n)]

>>> a

[[1, 0, 0], [0, 1, 0], [0, 0, 1]]

1. Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

 

 

 

 

 

 

 

 

 

 

 

 

2. Программа написана верно – 20 баллов, с ошибками – 10 баллов, неверно  - 0 баллов

 

 

 

rich_text    
Перетащите для изменения порядка разделов
Форматированный текст
rich_text    

Комментарии страницы

Комментарии отсутствуют

Добавить новый комментарий:

Для добавления комментариев на этой странице необходимо войти в систему.