Презентация по АТД (контейнеры, последовательности и списки). Версия для C++, по сравнению с версией для C# добавлены новые рисунки для последовательностей и детализированные задачи.
Основы С++ (массивы, указатели). Задачи с массивамиOlga Maksimenkova
Расширенная версия презентации со школы учителей 2016. Изменён порядок материала, добавлены сортировки и индексация, слайды Незнанова А.А. и слайды с задачами.
Слайды использовались на краткосрочных курсах повышения квалификации учителей информатики, 2 лекции по 1 час 20 минут.
Изложен опорный (предельно ужатый) материал по основами C++.
Версия презентации по основам C++ с летней школы учителей информатики 2016 года.
Презентация расширена слайдами Незнанова А.А., изменён порядок материала, добавлены задачи.
Слайды по представлению графов в памяти компьютера. Примеры кода на языке C++. Акценты расставлены на дообъектных представлениях, которые могут быть использованы школьниками при решении олимпиадных задач по программированию.
Презентация по АТД (контейнеры, последовательности и списки). Версия для C++, по сравнению с версией для C# добавлены новые рисунки для последовательностей и детализированные задачи.
Основы С++ (массивы, указатели). Задачи с массивамиOlga Maksimenkova
Расширенная версия презентации со школы учителей 2016. Изменён порядок материала, добавлены сортировки и индексация, слайды Незнанова А.А. и слайды с задачами.
Слайды использовались на краткосрочных курсах повышения квалификации учителей информатики, 2 лекции по 1 час 20 минут.
Изложен опорный (предельно ужатый) материал по основами C++.
Версия презентации по основам C++ с летней школы учителей информатики 2016 года.
Презентация расширена слайдами Незнанова А.А., изменён порядок материала, добавлены задачи.
Слайды по представлению графов в памяти компьютера. Примеры кода на языке C++. Акценты расставлены на дообъектных представлениях, которые могут быть использованы школьниками при решении олимпиадных задач по программированию.
1. Записи
2. Массивы.
3. Адресация в многомерных массивах: C-style, FORTRAN-style.
4. Данные как «белый ящик» и как «черный ящик».
5. Стеки, очереди и их применение в различных задачах.
6. Реализация стека с помощью массива в С.
7. Связные списки: структура и свойства.
8. Операции над списками.
9. Реализация стека с помощью связного списка в С.
10. Двусвязные списки, кольцевые списки, двусвязные кольцевые списки.
Математические основы методов решений систем логических уравненийOlga Maksimenkova
Презентация с вебинара, организованного в рамках проекта "Предуниверсарий" НИУ ВШЭ. Рассмотрены основы алгебры логики (ДНФ, КНФ, СДНФ, СКНФ), рекуррентные функции, начала теории матриц, базовые понятия теории графов.
1. Записи
2. Массивы.
3. Адресация в многомерных массивах: C-style, FORTRAN-style.
4. Данные как «белый ящик» и как «черный ящик».
5. Стеки, очереди и их применение в различных задачах.
6. Реализация стека с помощью массива в С.
7. Связные списки: структура и свойства.
8. Операции над списками.
9. Реализация стека с помощью связного списка в С.
10. Двусвязные списки, кольцевые списки, двусвязные кольцевые списки.
Математические основы методов решений систем логических уравненийOlga Maksimenkova
Презентация с вебинара, организованного в рамках проекта "Предуниверсарий" НИУ ВШЭ. Рассмотрены основы алгебры логики (ДНФ, КНФ, СДНФ, СКНФ), рекуррентные функции, начала теории матриц, базовые понятия теории графов.
Современные образовательные технологии в области компьютерных наукOlga Maksimenkova
В презентации собраны слайды по современным образовательных технологиям, относящимся как к дизайну и проектированию обучени, так и к урочным и внеурочным практикам. Особое внимание уделено конструктивистскому подходу, активным и коллаборативным практикам.
Презентация с осенней школы педагогического мастерства по информатике. Школа проводилась дирекцией среднего образовани НИУ ВШЭ.
Слайды лекции факультатива "Введение в программирование". Немного об абстрактных типах данных. Стек, дек, очередь. Односвязный, двусвязный и закольцованный списки. Реализации на С#.
[Maksimenkova_Neznanov] Peer Assessment to Programmers & Peer Assessment Syst...Olga Maksimenkova
Презентация доклада конференции АПКИТ-2016. Взаимное оценивание в курсах для разработчиков программного обеспечения. Описание и презентация системы поддержки взаимного оценивания PASCA
Решение систем логических уравнений, ЕГЭ 23 информатикаOlga Maksimenkova
Презентация второго вебинара по решению систем логических уравнений. Универсальный метод решения систем однородных логических уравнений, предложенный в пособии Авдошин С. М., Ахметсафина Р. З., Максименкова О. В. Информатика: Логика и алгоритмы. Эффективные методы решения задач: Пособие для самостоятельной подготовки. М., СПб. : Просвещение, 2013.
Очистка данных на практике: мифы и легенты Excel и ROlga Maksimenkova
Презентация с мастер-класса хакатона "Культура в современном медиапространстве", 4-5 февраля 2017 года.
Презентация посвящена процессам очистки данных и акцентируется на двух инструментах R и Excel.
The SlideShare 101 is a quick start guide if you want to walk through the main features that the platform offers. This will keep getting updated as new features are launched.
The SlideShare 101 replaces the earlier "SlideShare Quick Tour".
Информатика в школе: методы и технологии активного обученияOlga Maksimenkova
Презентация выступления с форума "Стань выше с вышкой", видео по ссылке: https://youtu.be/JrY2zUqDa-Q?t=740. На мастер-классе мы обсудим вопросы внедрения активных методик обучения в процесс преподавания информатики в школе. Поговорим о том, что такое активное обучение, об его идеологии, методах и примерах успешного применения. Обсудим прогрессивный подход интерактивного коллаборативного обучения (Computer-Supported Collaborative Learning). Участники познакомятся не только с педагогическими, но и с технологическими аспектами активных образовательных практик. Мы на примерах разберем особенности внедрения в учебный процесс следующих методик: формирующего оценивания (в общем виде), взаимного оценивания, игровых и командных практик. Кроме того, мы посмотрим, как разграничивать зоны ответственности при использовании специализированных программных средств в обучении, обсудим примеры и особенности их внедрения в учебный процесс.
Презентация с лекции для магистрантов Института Образования НИУ ВШЭ по вопросам цифровой трансформации образования. Рассмотрены вопросы, связанные с четвёртой промышленной революцией и ее следствиями и основными движущими силами.
Providing Cognitive Scaffolding within Computer-Supported Adaptive Learning E...Olga Maksimenkova
Presenation at ICL-2018 by Fedor Dudyrev, Olga Maksimenkova, and Alexey Neznanov. The paper deals with adaptive learning system which provides cognitive scaffolding in Vygotsky meaning and based on FCA and descriptive logic foundation.
Collaborative Learning in Data Science Education: a Data Expedition as a Form...Olga Maksimenkova
Presentation by Maksimenkova Olga, Neznanov Alexey, Radchenko Irina, which presents a paper about a data expedition as a formative assessment tool to data-driven courses, ICL-2018.
Презентация с семинара ИТМО "Формализация знаний и искусственный интеллект в образовании" (http://iam.ifmo.ru/ru/viewnews/17227/formalizaciya_znaniy_i_iskusstvennyy_intellekt_v_obrazovanii.htm). Доклад "Информационные системы поддержки активного обучения: облачные технологии, управление знаниями и коллаборативные платформы".
Lec 03. The fates of the Games. Game engines, developmentOlga Maksimenkova
Case studies: Warcraft adventures, Heroes of Might and Magic IV, Master of Orion 2016. Game as a software project. Game engines (brief overview). Game difficulty and balance.
Презентация с конференции "Преподавание ИТ в РФ 2017", обобщены методики активного обучения и формирующего оценивания для курсов программирования, наук о данных и др. Описана технологическая база поддержки курсов.
Презентация с конференции "Новое в образовании и науке". Доклад посвящён развёртыванию открытого образовательного ресурса на портале университета или подразделения университета и связанным с этим вопросам.
Абстрактные типы данных, последовательности, списки
1. АБСТРАКТНЫЕ ТИПЫ ДАННЫХ
ПОСЛЕДОВАТЕЛЬНОСТИ, СПИСКИ
Максименкова Ольга Вениаминовна
Младший научный сотрудник МНУЛ ИССА
Старший преподаватель Департамента программной инженерии
Факультета компьютерных наук
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 1
2. Цели
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 2
Познакомиться
• С контейнерами и последовательностями, как с
абстрактными типами данных;
• С динамическими структурами данных;
• Со способами реализации этих представлений на языке
C++
Получить навыки
• Реализации некоторых АТД на языке C++
3. Соглашения о терминологии
• Абстрактный Тип Данных (АТД) [abstract logic design] –
функциональное описание некоторого класса сущностей в
терминах операций, которые могут выполняться над ними.
• Интерфейс АТД – формальное и однозначное описание синтаксиса
и семантики операций, которые могут выполняться над
экземплярами АТД.
ТАК ЖЕ, КАК ОПИСАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ НЕ
ОПРЕДЕЛЯЕТ ОСОБЕННОСТИ ЕГО РЕАЛИЗАЦИИ, ТАК И
ИНТЕРФЕЙС АТД НЕ ОПРЕДЕЛЯЕТ РЕАЛИЗАЦИЮ АТД.
4. Контейнер
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 4
• Контейнер [container] – Абстрактный тип данных, представляющий
собой структурированную коллекцию информационных элементов,
доступ к которым определяется структурой контейнера.
• Добавление и удаление элементов контейнера назовём его
трансформацией.
• Доступ к элементу контейнера – операция получения или
изменения значения этого элемента.
• Последовательность [sequence] – контейнер, в котором элементы
упорядочены по индексам (пронумерованы).
5. Некоторые виды
последовательностей
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 5
• Вектор [vector]
• последовательность, в которой возможен доступ к любому
элементу по индексу элемента
• Дек
• Стек
• Очередь
6. Дек
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 6
• Дек [deque, double ended queue] – последовательность, в
которой возможны только:
1. доступ: к концевым элементам;
2. добавление: до начального и после конечного элемента;
3. удаление: концевых элементов.
Удаление Добавление
Добавление Удаление
Deque
7. Очередь
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 7
• Очередь [queue] – дек, в котором возможны только:
1. доступ: к начальному элементу;
2. добавление: после конечного элемента;
3. удаление: начального элемента.
• Конечный элемент очереди часто называют хвостом очереди,
а начальный – головой очереди.
Добавление Удаление
Queue
8. Стек
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 8
• Стек [stack] – дек, в котором возможны только:
1. доступ: к конечному элементу;
2. добавление: после конечного элемента;
3. удаление: конечного элемента.
• Конечный элемент стека называют вершиной стека.
Удаление
Добавление
Stack
10. Список
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 10
• Список представляет собой такую реализацию
последовательности однотипных элементов, когда
элементы связаны друг с другом посредством ссылок.
• Каждый элемент списка содержит не только
информационное поле, но одно или более полей со
ссылками на другие элементы.
11. Наиболее распространённые списки
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 11
• односвязные списки
• каждый элемент, кроме последнего, содержит ссылку на
следующий, последний элемент ссылается на null
• двухсвязные списки
• каждый элемент, кроме первого и последнего, содержит ссылки на
предыдущий и следующий
12. Односвязный список
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 12
Value Value Value null...
Начало списка [Top]
5 7 10 null...
foo bar baz null...
Примеры
13. Модель элемента односвязного списка
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 13
Value Value Value null...
Начало списка [Top]
#include "iostream"
using namespace std;
struct ListItem {
int n;
ListItem* next;
};
void main() {
ListItem head; // создаём структуру
head.n = 1; // значение поля структуры
head.next = NULL; // значение поля типа указатель
}
14. Как добавить элемент в односвязный
список?
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 14
// добавим элемент
ListItem newItem;
newItem.n = 2;
newItem.next = NULL;
// head должен "указывать" на новый элемент
head.next = &newItem;
// пройдём по списку, нужен "указатель"
ListItem* curr = &head;
while (curr != NULL) {
cout << curr->n << endl;
curr = curr->next;
}
system("pause");
Самостоятельно напишем функцию, добавления элемента в конец
односвязного списка следующий слайд
15. Задание
1. Описать функцию добавления нового элемента в конец
односвязного списка (как узнать, в какой список добавить
элемент?).
2. Описать функцию вывода на экран всех элементов
списка, начиная с головы.
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 15
16. Вставка элемента в односвязный список
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 16
Пусть имеется некоторый односвязный список и ссылка р на элемент,
после которого мы хотим вставить новый элемент.
Value Value ...
n n+1
...
Предшествующий
элемент
Состояние списка перед
добавление элемента
1. создание нового элемента
2. присвоение значений его полям
3. добавление связи с элементом, следующим за P
4. добавление связи с элементом P
Алгоритм добавления элемента
17. Создание и инициализация нового
элемента
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 17
?
Новый элемент [Tmp]
?
New
Новый элемент [Tmp]
?
1. Создание нового элемента
2. Присвоение значений его полям
ListItem Tmp;
Tmp.n = 2;
Tmp.next = NULL;
18. Добавление связей
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 18
Максименкова О.В., 2015 18
Value Value ...
n n+1
...
New
Новый элемент [Tmp]
Предшествующий
элемент [P]
Value Value ...
n n+1
...
New
Новый элемент [Tmp]
Предшествующий
элемент [P]
3. добавление связи с элементом, следующим за P
4. добавление связи с элементом P
Tmp.next = p.next;
p.next = &Tmp;
19. Удаление элемента из односвязного
списка
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 19
Пусть имеется некоторый односвязный список и ссылка р на
элемент, предшествующий тому, который мы хотим удалить.
Состояние списка перед
удалением элемента
1. добавление связи между P и следующим за удаляемым элементом
2. Освобождение памяти из под удалённого элемента!!!
Алгоритм удаления элемента
Value Value
n n+1
...
Предшествующий
элемент [P]
Value ...
n+2
20. Задание
1. Описать функцию добавления элемента в произвольное
место в списке (как задавать это место?)
2. Описать функцию удаления элемента из списка.
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 20
21. Двусвязный список
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 21
Value Valuenull Value... null
Начало списка [Head] Конец списка [Tail]
5 7null 9... null
22. Модель элемента двусвязного списка
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 22
Value Valuenull Value... null
Начало списка [Head] Конец списка [Tail]
struct DblListItem {
int n;
ListItem* next;
ListItem* prev;
};
void main() {
DblListItem head;
head.n = 1;
head.next = NULL;
head.prev = NULL;
}
23. Задание
1. Опишите набор функций для управления двусвязным
списком: добавление элемента списка, удаление
элемента списка, добавление элемента в конец списка,
добавление элемента в начало списка; вывод списка в
прямом и обратном порядке.
2. Каким образом реализовать закольцованный список?
3. * Опишите функции для управления односвязным и
двусвязным закольцованным списком.
4. ** Реализуйте любой алгоритм сортировки для списка.
(с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 23
24. (с) Максименкова О.В., НИУ ВШЭ, ФКН, ДПИ, 20.06.2016 24
Спасибо за внимание!
Максименкова Ольга Вениаминовна
Старший преподаватель Департамента программной инженерии, ФКН
E-mail: omaksimenkova@hse.ru
Blog: Stop To Scale (http://stoptoscale.blogspot.ru)