|
|
(не показаны 3 промежуточные версии 2 участников) |
Строка 2: |
Строка 2: |
|
| |
|
| == Snap! == | | == Snap! == |
| | |
| * https://snap.berkeley.edu/project?username=kuptsovaid&projectname=KuptovaID%2dPBD%2d221m | | * https://snap.berkeley.edu/project?username=kuptsovaid&projectname=KuptovaID%2dPBD%2d221m |
| <snap project="KuptovaID-PBD-221m" user="by kuptsovaid" /> | | |
| | <snap project="KuptovaID%2dPBD%2d221m" user="kuptsovaid" /> |
|
| |
|
|
| |
|
Строка 9: |
Строка 11: |
|
| |
|
| </center> | | </center> |
|
| |
| * теоретические знания и практический опыт в области основ алгоритмизации задач, классификации языков программирования, типов данных, структур данных, взаимосвязь алгоритмов и структур данных, особенностей реализации алгоритмов и типов данных в языках блочного программирования Scratch, Snap!, GP
| |
| ; Знать
| |
| : Основные понятия, связанные с миром алгоритмов и структур данных
| |
| : основы алгоритмизации задач, структуры данных;
| |
| : типы данных, структуры данных;
| |
| : методы и алгоритмы поиска и сортировки данных;
| |
| ; Уметь
| |
| * обращаться к внешним и внутренним данным из среды Semantic MediaWiki, уметь использовать различные типы данных внутри Semantic MediaWiki
| |
| * обмениваться проектами и блоками программ в Snap!
| |
| * сравнивать и объединять статьи о языках программирования
| |
| * импортировать и экспортировать данные в среду визуального программирования Snap!
| |
| * проектировать и программировать линейные и разветвляющиеся структуры алгоритмов;
| |
| * планировать процесс реализации алгоритма при помощи псевдокода и диаграмм
| |
| * использовать язык '''dgl''' , mermaid, '''PlantUML''' встраивать диаграммы алгоритмов в вики страницы
| |
| * представлять алгоритмы на страницах вики в виде диаграмм, псевдокода, кода на различных языках программирования
| |
| * создавать собственные блоки (команды и процедуры с входными параметрами) в среде Snap! (создавать функции с использованием различных типов данных))
| |
| * оценивать и сравнивать эффективность алгоритмов, вычислительную сложность алгоритмов
| |
| * использовать рекурсию в командах и процедурах, использовать рекурсию при создании собственных функций
| |
| * использовать объекты первого класса и лямбда исчисления.
| |
|
| |
| == Уметь обращаться к внешним и внутренним дым из среды Semantic MediaWiki, уметь использовать различные типы данных внутри Semantic MediaWiki ==
| |
| ; Примеры задач на внутренние данные
| |
| * Посчитай внутри вики количество участников из МГПУ [[:Category:UserMGPU]]?
| |
|
| |
| {{#ask: [[Category:UserMGPU]] | format = count }}
| |
| {{#ask: [[Category:UserMGPU]] | format = ul }}
| |
|
| |
| * Посчитай внутри вики количество участников из ПБД-221м [[:Category:ПБД221м]]?
| |
|
| |
| {{#ask: [[Category:ПБД221м]] | format = count }}
| |
| {{#ask: [[Category:ПБД221м]] | format = ul }}
| |
|
| |
| * Посчитай число участников, которые указали, что используют язык Scratch?
| |
| * Собери таблицу с описанием писателей [[Category:Person]], которые оказали влияние на язык [[R]]
| |
| * Собери тайм-лайн с языками, ведущими свое происхождение от языка [[Prolog]]
| |
| * ''' Предложи собственную задачу на использование внутренних данных в среде Semantic MediaWiki '''
| |
|
| |
| ; Примеры задач на внешние данные
| |
| * Размести на странице выборку из датасета, который уже есть в категории [[:Category:Dataset]]
| |
| * ''' Добавь новый датасет в [[:Category:Dataset]] и предложи вариант его использования '''
| |
|
| |
|
| |
| ; Учебная группа, работающая с курсом Алгоритмы и структуры данных данных в в 2023 году - [[:Категория:ПБД221м|ПБД221м]]
| |
| * Учебная группа, работающая с курсом Алгоритмы и структуры данных данных в в 2022 году - [[:Категория:ПБД211М|ПБД211М]]
| |
|
| |
| ; Особенность курса - [[Active Essay]] смотрим и тестируем на поле
| |
|
| |
| <scratchblocks>
| |
| when [up arrow v] key pressed
| |
| point in direction (0)
| |
| move (10) steps
| |
| when [down arrow v] key pressed
| |
| point in direction (180)
| |
| move (10) steps
| |
| when [right arrow v] key pressed
| |
| point in direction (90)
| |
| move (10) steps
| |
| when [left arrow v] key pressed
| |
| point in direction (-90)
| |
| move (10) steps</scratchblocks>
| |
|
| |
| : И смотрим на то, как они выполняются
| |
| <scratch project="210120481" />
| |
| : или в [[Snap!]]
| |
|
| |
| <snap project="Flocking_Snap" user="patarakin" />
| |
|
| |
| == Цель, результаты освоения дисциплины ==
| |
| В результате изучения данной дисциплины студенты будут иметь представление о современных алгоритмических языках, о способах записи [[алгоритм]]ов и конструирования программ, основах объектного подхода в программировании
| |
| ; Цель
| |
| : теоретические знания и практический опыт в области основ алгоритмизации задач, классификации языков программирования, типов данных, структур данных, взаимосвязь алгоритмов и структур данных, особенностей реализации алгоритмов и типов данных в языках блочного программирования [[Scratch]], [[Snap!]], [[GP]]
| |
|
| |
| ; Знать:
| |
| # Основные понятия, связанные с миром алгоритмов и структур данных См. [[:Категория:Понятие]]
| |
| # основы алгоритмизации задач, структуры данных;
| |
| # типы данных, структуры данных;
| |
| # методы и алгоритмы поиска и сортировки данных;
| |
| ; Уметь
| |
| # обращаться к внешним и внутренним данным из среды [[Semantic MediaWiki]], уметь использовать различные типы данных внутри Semantic MediaWiki см. [[:Категория:Dataset]]
| |
| # обмениваться проектами и блоками программ в [[Snap!]]
| |
| # сравнивать и объединять статьи о языках программирования [[Taxonomic_sandbox]]
| |
| # импортировать и экспортировать данные в среду визуального программирования [[Snap!]]
| |
| # проектировать и программировать линейные и разветвляющиеся структуры алгоритмов;
| |
| # планировать процесс реализации алгоритма при помощи псевдокода и диаграмм - [[:Категория:Diagrams]]
| |
| # использовать язык [[graphviz]], [[mermaid]], [[PlantUML]] встраивать диаграммы алгоритмов в вики страницы см. Graphviz + [[:Категория:Diagrams]] -
| |
| # представлять алгоритмы на страницах вики в виде диаграмм, псевдокода, кода на различных языках программирования
| |
| # создавать собственные блоки (команды и процедуры с входными параметрами) в среде Snap! (создавать функции с использованием различных типов данных))
| |
| # оценивать и сравнивать эффективность алгоритмов, вычислительную сложность алгоритмов
| |
| # использовать рекурсию в командах и процедурах, использовать рекурсию при создании собственных функций
| |
| # использовать объекты первого класса и лямбда исчисления
| |
|
| |
| == Содержание разделов дисциплины: ==
| |
| === Введение. Основные понятия. Пространство для совместной деятельности ===
| |
| Основы алгоритмизации задач. Semantic MediaWiki как поле совместной деятельности. Типы данных внутри Semantic MediaWiki. Обращение к внешним данным.
| |
|
| |
| === История языков программирования и обучающих языков ===
| |
| Современные алгоритмические языки. Вычислительное мышление и вычислительное участие.
| |
|
| |
| === Представление алгоритмов в виде диаграмм, псевдокода, кода на различных языках программирования ===
| |
| # проектировать и программировать линейные и разветвляющиеся структуры алгоритмов;
| |
| # планировать процесс реализации алгоритма при помощи псевдокода и диаграмм - [[:Категория:Diagrams]] - например, [[Binary search (diagram)]]
| |
| # использовать язык dgl и [[mermaid]] встраивать диаграммы алгоритмов в вики страницы см. [[Graphviz]]
| |
|
| |
| http://digida.mgpu.ru/images/diagrams/Diagrams_37be5e92fa212a080558fc26c16ac9cb.png
| |
|
| |
| {{#mermaid:graph TB
| |
| A[1-6] --> |Да| B[1-3]
| |
| A --> |Нет| C[7-9]
| |
|
| |
| B --> |Да| D[1-2]
| |
| B --> |Нет| E[4-5]
| |
|
| |
| D --> |Да| 1
| |
| D --> |Нет| 3
| |
| 1 --> |Нет| 2
| |
|
| |
|
| |
| E --> |Нет| 6
| |
| E --> |Да| 4
| |
| 4 --> |Нет| 5
| |
|
| |
| C -->|Да| F[7-8]
| |
| C -->|Нет| G[10-11]
| |
|
| |
| F --> |Да| 7
| |
| 7 --> |Нет| 8
| |
|
| |
| F --> |Нет| 9
| |
|
| |
| G --> | Да | 10
| |
| 10 --> | Нет| 11
| |
| G --> | Нет| 12
| |
|
| |
| }}
| |
|
| |
| === Основные характеристики изучаемого алгоритмического языка ===
| |
| Типы данных. Константы. Переменные. Выражения. Арифметические и логические выражения.
| |
|
| |
| [[Файл:Snap data types2.png|600px]]
| |
|
| |
| Спрайты, данные, процедуры как объекты первого класса. Структуры данных. Импорт и экспорт данных.
| |
| Список случайных чисел из %сколько от %min до %max
| |
| [[Файл:Table sprite.png|800px]]
| |
|
| |
|
| |
| === Структуры данных ===
| |
|
| |
| [[Файл:Collab dataset JSON.png]]
| |
|
| |
| * [[Массив]]ы и связные [[список|списки]]
| |
| * Стеки и очереди
| |
| * Деревья (бинарные, сбалансированные, двоичные деревья поиска)
| |
| * Графы (ориентированные и неориентированные, поиск в глубину и ширину)
| |
|
| |
| === Алгоритмы сортировки и поиска ===
| |
| Сравнение эффективности и вычислительной сложности алгоритмов
| |
| * [[Временная сложность алгоритма]]
| |
|
| |
| === Рекурсия ===
| |
| * [[Рекурсия]]
| |
| * [[Фрактал]]
| |
|
| |
| == Литература ==
| |
| === Основная литература ===
| |
|
| |
| # [[Стили и методы программирования]],
| |
| # [[Computer Science with Snap! by Examples]],
| |
| # [[Initiation to Algorithmics with Scratch]]
| |
|
| |
| === Дополнительная литература ===
| |
| https://snap.berkeley.edu/snap/help/SnapManual.pdf - Руководство по Snap!
| |
|
| |
|
| |
|
| |
| == Напоминание по работа в вики среде ==
| |
| ; [[Мастер-класс «Совместная работа со знаниями на поле цифровой дидактики»]]
| |
|
| |
|
| |
| ----
| |
|
| |
| [[Category:РУП]]
| |