Лабораторный практикум первого семестра
Первый семестр должен решить две задачи одновременно: научить студента минимально необходимому JavaScript и сразу сформировать алгоритмическое мышление. Поэтому первые две работы вводные, а следующие четыре уже раскрывают дисциплину.
Лабораторная работа «JavaScript в Google Chrome и основы алгоритмов»
Цель: научиться запускать программу в Chrome, пользоваться консолью и Snippets, освоить переменные, числа, строки, логические выражения, ветвления и циклы.
Новые понятия: алгоритм, входные данные, выходные данные, переменная, выражение, условие, цикл, счётчик операций, тест.
Минимальный стартовый код:
"use strict";
function task(a, b) {
let result = 0;
// алгоритм
return result;
}
console.log(task(10, 20));
Обязательные задания.
Студент должен:
-
открыть Console и выполнить не менее десяти простых выражений;
-
создать Snippet;
-
реализовать функции суммы чисел от 1 до n;
-
найти максимум из трёх чисел;
-
вычислить факториал циклом;
-
реализовать алгоритм Евклида;
-
определить, является ли число простым;
-
для массива чисел найти минимум, максимум, сумму и среднее;
-
вывести промежуточные результаты через console.table;
-
подготовить не менее пяти тестов.
Для алгоритма Евклида требуется отдельно сравнить простой перебор делителей и алгоритм с остатками. Такой учебный ход соответствует подходу Златопольского: одна и та же задача рассматривается несколькими способами, после чего обсуждаются размер программы и быстродействие. fileciteturn0file7
Мини-эксперимент по сложности.
Для n = 10, 100, 1000, 10000 измерить число итераций хотя бы двух алгоритмов. Пока не требуется строгая асимптотическая теория: задача — заметить, что разные алгоритмы растут по-разному.
Индивидуализация: студент с номером k получает диапазон [10k, 100k + 100] для проверки простых чисел и собственную пару чисел для алгоритма Евклида.
Что сдаётся: код Snippet, скриншот выполнения, таблица тестов, краткое описание алгоритмов.
Контрольные вопросы: что такое алгоритм; чем let отличается от const; зачем нужен цикл; что такое условие окончания; что произойдёт при делении на ноль; чем тест отличается от примера.
