Алгоритмы: разработка и применение. Клейнберг Дж., Тардос Е.

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

Алгоритмы: разработка и применение. Клейнберг Дж., Тардос Е.

Алгоритмы: разработка и применение.

. Диапазон и содержание: что должен знать ученик
В этом разделе говорится, что ученик должен знать к концу ключевого этапа 1, 2, 3 и 4. Его следует читать не как изложение того, как следует преподавать предмет, а просто как краткое изложение того, что должен знать ученик.
То, что действительно может быть преподано, скажем, на ключевом этапе 3, зависит от того, сколько учебного времени доступно, и это будет варьироваться от школы к школе и с изменениями в образовательной политике. Вместо того, чтобы предрешать этот вопрос, эта учебная программа фокусируется на соответствующем возрасту материале; то есть, ключевой этап 3 материал должен быть понятен для ключевого этапа 3 ученика. Почти наверняка не все из них подойдут, и преподавателям придется выбирать материал из предлагаемого здесь ассортимента.
Первоначально учащиеся на ключевых этапах 2-4, возможно, ранее не сталкивались с информатикой, поэтому при планировании учебной программы следует учитывать диапазон и содержание предыдущих ключевых этапов.
Примеры и текст в [квадратных скобках] предназначены для иллюстрации, а не для предписания. Материал, отмеченный ( ), является более продвинутым.
4.1 алгоритмы
Ученик должен понимать, что такое алгоритм и для чего его можно использовать. КЛЮЧЕВОЙ ЭТАП 1
Алгоритмы — это наборы инструкций для достижения целей, состоящие из заранее определенных шагов [«как» часть рецепта торта].
• Алгоритмы могут быть представлены в простых форматах [раскадровки и повествовательный текст].
Они могут описывать повседневную деятельность и могут сопровождаться людьми и компьютерами.
Компьютеры нуждаются в более точных инструкциях, чем люди.
Шаги могут быть повторены, и некоторые шаги могут быть составлены из более мелких шагов. КЛЮЧЕВОЙ ЭТАП 2
Алгоритмы могут быть представлены символически [блок-схемы] или с использованием инструкций на четко определенном языке [черепашья графика].
Алгоритмы могут включать выбор (if) и повторение (циклы).
Алгоритмы могут быть разложены на составные части (процедуры), каждая из которых сама содержит алгоритм.
Алгоритмы должны быть сформулированы без двусмысленности, а осторожность и точность необходимы, чтобы избежать ошибок.
Алгоритмы разрабатываются в соответствии с планом и затем тестируются. Алгоритмы исправляются, если они не проходят эти тесты.
• Это может быть проще планировать, тестировать и исправлять части алгоритма отдельно. КЛЮЧЕВОЙ ЭТАП 3
Алгоритм-это последовательность точных шагов для решения данной задачи.
Одна задача может быть решена несколькими различными алгоритмами.
Выбор алгоритма для решения задачи определяется тем, что требуется от решения [например, сложность кода, скорость, объем используемой памяти, объем данных, источник данных и требуемые выходные данные].
Необходимость точности как алгоритма, так и данных [сложность проверки данных; мусор в, мусор из]
КЛЮЧЕВОЙ ЭТАП 4
На выбор алгоритма должны влиять структура данных и значения данных, которыми необходимо манипулировать.
Знакомство с несколькими ключевыми алгоритмами [сортировка и поиск].
Разработка алгоритмов включает в себя возможность легко переписывать, проверять, тестировать и исправлять полученный код.
Различные алгоритмы могут иметь различные характеристики производительности для одной и той же задачи.
4.2 программы
Ученик должен уметь писать исполняемые программы хотя бы на одном языке.
КЛЮЧЕВОЙ ЭТАП 1
Компьютеры (понимаемые здесь как все устройства, управляемые процессором, включая программируемые игрушки, телефоны, игровые консоли и ПК) управляются последовательностями инструкций.
Компьютерная программа похожа на повествовательную часть истории, и работа компьютера заключается в том, чтобы делать то, что говорит рассказчик. Компьютеры не обладают интеллектом, и поэтому слепо следуют инструкциям рассказчика.
Конкретные задачи можно решить, создав программу для компьютера. Некоторые компьютеры позволяют своим пользователям создавать собственные программы.
Компьютеры обычно принимают входные сигналы, следуют сохраненной последовательности инструкций и производят выходы.
Программы могут включать в себя повторные инструкции.
КЛЮЧЕВОЙ ЭТАП 2
Компьютерная программа-это последовательность инструкций, написанных для выполнения определенной задачи с помощью компьютера.
Идея программы как последовательности операторов, написанных на языке программирования [Scratch]
• Один или несколько механизмов для выбора последовательности операторов, которая будет выполняться, на основе значения некоторого элемента данных
• Один или несколько механизмов для повторения выполнения последовательности операторов и использования значения некоторого элемента данных для управления числом повторений последовательности
Программы могут моделировать и моделировать среду, чтобы ответить на вопросы» Что, если».
• Программы могут быть созданы с помощью визуальных инструментов. Программы могут работать с различными типами данных. Они могут использовать различные структуры управления [ выбор и процедуры].
Программы являются однозначными и что внимательность и точность необходимы, чтобы избежать ошибок.
Программы разрабатываются в соответствии с планом и затем тестируются. Программы исправляются, если они не проходят эти тесты.
Поведение программы должно быть спланировано.
Хорошо написанная программа рассказывает читателю историю о том, как она работает, как в коде, так и в удобочитаемых комментариях
Веб-страница-это HTML-скрипт, который создает внешний вид. Это также носитель для другого кода, который может быть обработан браузером.
Компьютеры можно запрограммировать так, чтобы они «разумно» реагировали на определенные входные сигналы.
КЛЮЧЕВОЙ ЭТАП 3
Программирование-это деятельность по решению проблем, и обычно существует множество различных программ, которые могут решить одну и ту же проблему.
Переменные и присвоение.
Программы могут работать с различными типами данных [целые числа, символы, строки].
Использование реляционных операторов и логики для управления тем, какие программные операторы выполняются и в каком порядке
простое использование AND, OR и NOT
как отрицание влияет на реляционные операторы [например, NOT (a>b) = a<b]. Абстракция с помощью функций и процедур (определение и вызов), в том числе: o функции и процедуры с параметрами. o программы с несколькими вызовами одной процедуры.
• Документирование программ, чтобы объяснить, как они работают.
Понимание разницы между ошибками в синтаксисе программы и ошибками в значении. Поиск и исправление ошибок обоих типов.
КЛЮЧЕВОЙ СТАДИИ 4
Манипулирование логическими выражениями, например таблицами истинности и булевыми переменными.
• Двумерные массивы (и выше).
• Программирование на языке низкого уровня.
Процедуры, которые вызывают процедуры, на несколько уровней. [Построение одной абстракции поверх другой.]
Программы, которые читают и записывают постоянные данные в файлы.
Программы разрабатываются в соответствии со спецификацией и корректируются, если они не соответствуют спецификации.
• Документирование программ помогает объяснить, как они работают.

[свернуть]

Предложения интернет-магазинов.