Чтобы начать серию учебных программ Renegade, я хотел начать с лаборатории, которую я часто использовал в прошлом для внедрения языка программирования. В частности, я хочу представить Java через лабораторию исследования чисел.
Обзор
В этой лаборатории студенты будут изучать различные типы чисел в Java с помощью всех основных математических операторов. Цель состоит в том, чтобы понаблюдать за поведением различных операторов и попытаться сделать некоторые выводы об их поведении. В следующих подразделах мы подробно расскажем, кому может быть полезна лабораторная работа, какие типы инструментов необходимы для завершения лабораторной работы и как ее проводить.
Целевая аудитория
В идеале лаборатория изучения чисел Java должна быть ориентирована на абсолютных новичков . Тем не менее, я мог видеть, где этот вид деятельности может быть полезен кому-то, у кого нет опыта работы с Java-подобными языками.
С точки зрения базовых знаний, учащиеся должны быть знакомы с основными математическими операциями, такими как сложение, вычитание, умножение и деление. Учащиеся также должны быть знакомы с реляционными математическими операциями, такими как меньше, больше и равно.
Инструменты
Для завершения этой лабораторной работы студенты должны получить копию DrJava . Я рекомендую DrJava, потому что он позволяет нам взаимодействовать с Java так, как будто это интерпретируемый язык программирования. Другими словами, мы можем экспериментировать с фрагментами кода, не создавая файлов.
Для тех, кто предпочел бы не использовать DrJava, они могут использовать j оболочка который включен в Java JDK начиная с версии 9. На момент написания этой статьи Java 12 была последней версией JDK.
Инструкции
Для такого типа лабораторных работ я рекомендую дать студентам около часа на выполнение как можно большего количества упражнений. Кроме того, я немного неравнодушен к парному программированию, поэтому позволять студентам работать в парах может быть забавно. Это также означает меньшую оценку для инструктора.
Периодически следует просить студентов сообщать о своих выводах своему преподавателю. Я рекомендую выполнять каждую пару упражнений, но это зависит от силы класса. Некоторым группам потребуется больше помощи, чем другим, поэтому во время лабораторной работы рекомендуется расхаживать по комнате.
В этой конкретной лаборатории студенты на самом деле не будут писать свой собственный код. Вместо этого они будут экспериментировать с фрагментами кода на панели взаимодействия Dr. Java. В результате каждое упражнение сопровождается несколькими вопросами, на которые студенты должны будут ответить. Не стесняйтесь собирать их ответы после лабораторной работы.
В конечном счете, лаборатория должна быть занятием с низким уровнем стресса, где студенты могут чувствовать себя комфортно, взаимодействуя с преподавателем. Цель состоит не в том, чтобы преподавать весь материал в лаборатории, а скорее в том, чтобы подкрепить некоторые лекционные материалы. Кроме того, лаборатория может быть полезна в качестве введения в более крупный проект.
Упражнения
В этом разделе студентам будет предложено выполнить несколько упражнений. В конце каждого упражнения студенту будет предложено ответить на несколько вопросов о написанном им коде.
Упражнение 0: Учебник по примитивным типам Java
В Java числа конечны. Другими словами, они имеют некоторый диапазон из-за их размера в битах (количество нулей и единиц, которые их составляют). Чтобы определить диапазон номеров, которые мы можем поддерживать, нам нужно знать тип номера.
К счастью, в Java существует всего несколько типов чисел. Для наших целей Java по умолчанию использует два типа, в частности: int
и двойной
. Тип int
представляет 32-разрядные целые числа со знаком (т.е. 4, 311, -7 и т.д.), в то время как тип double
представляет 64-разрядные десятичные дроби (т.е. 3,14, -14,5, 0,0001 и т.д.). В следующих упражнениях мы увидим эти два типа чисел в действии.
Упражнение 1: Арифметические операторы Java 1
После открытия Dr. Java перейдите на панель взаимодействия и введите следующие фрагменты кода по одной строке за раз:
2 + 4 2 + 4.0 3 + -2 3 + -2.0
Если непонятно, что делают эти строки кода, не стесняйтесь попробовать некоторые из ваших собственных примеров. В противном случае ответьте на следующие вопросы:
- Что делает оператор
+
? - Каков результат
2 + 4
отличается от2 + 4.0
? - Какое правило вы могли бы написать, чтобы описать свой предыдущий ответ?
Упражнение 2: Арифметические операторы Java 2
Еще раз введите следующие фрагменты кода по одной строке за раз:
12 - 7 12 - 7.0 5 - -6 5 - -6.0
Как всегда, если вам нужно попробовать больше примеров, чтобы понять, что делает оператор -
, не стесняйтесь. В противном случае ответьте на следующие вопросы:
- Что делает оператор
-
? - Каков результат
12 - 7
отличается от12 - 7.0
? - Работает ли ваше правило из предыдущего упражнения по-прежнему?
Упражнение 3: Арифметические операторы Java 3
Когда два оператора убраны с дороги, давайте попробуем другой:
3 * 3 3 * 3.0 -4 * -1 -4 * -1.0
Как всегда, не стесняйтесь попробовать еще несколько примеров. В противном случае ответьте на следующие вопросы:
- Что делает оператор
*
? - Работает ли ваше правило из предыдущих упражнений по-прежнему?
Упражнение 4: Арифметические операторы Java 4
На этом этапе все должно начать становиться немного интереснее. Введите следующие фрагменты кода по одной строке за раз:
5 / 2 5 / 2.0 5.0 / 2.0 5.0 / 2 -5 / 2
Поскольку оператор /
сильно отличается от предыдущих операторов, важно изучить множество комбинаций значений. Когда вы будете готовы, ответьте на следующие вопросы:
- Что делает оператор
/
? - Каков результат
5/2
отличается от5/2.0
? - Остается ли в силе ваше правило из предыдущих упражнений?
- Какое правило вы могли бы написать, чтобы описать, что происходит с
5/2
против-5/2
?
Упражнение 5: Арифметические операторы Java 5
Наконец, вот последний арифметический оператор:
5 % 3 6 % 3 7 % 3 8 % 3 4 % 2 5 % 2
До сих пор каждый оператор должен был быть более или менее очевиден: сложение, вычитание, умножение и деление. Естественно, оператор %
немного отличается. В качестве подсказки, это связано с разделением, но вы, вероятно, больше всего знакомы с ним в контексте длинного деления .
Как только вы получите хорошее представление о том, что делает оператор, ответьте на следующие вопросы:
- Что делает оператор
%
? - Как может быть полезен оператор
%
(т.е.5 % 2
против4 % 2
)?
Упражнение 6: Арифметические операторы Java 6
Еще раз введите следующие фрагменты кода по одной строке за раз:
3 * 7 4 + 5 * 6 (4 + 5) * 6 2 * 3 - 5
Не стесняйтесь попробовать несколько собственных примеров. В противном случае ответьте на следующие вопросы:
- Какое правило использует Java для оценки этих выражений? Другими словами, как Java узнает, какую операцию выполнить в первую очередь?
Упражнение 7: Реляционные операторы Java
Теперь, когда с арифметическими операторами покончено, пришло время ввести реляционные операторы:
2 > 5 3 >= 2 4 == 10 8 <= 2 1 < 2 5 = 6
Как обычно, не стесняйтесь пробовать больше примеров. В противном случае ответьте на следующие вопросы:
- Что делает каждый из следующих операторов:
>
,>=
,==
,<=
,<
? - Когда эти операторы могут быть полезны?
- Почему делает
5
потерпеть неудачу?
Упражнение 8: Ограничения по количеству Java
Убрав операторы с дороги, давайте посмотрим, насколько велик (и мал) тип int
(не беспокойтесь слишком сильно о синтаксисе):
Integer.MAX_VALUE Integer.MAX_VALUE + 1 Integer.MIN_VALUE Integer.MIN_VALUE - 1
Здесь мы проверили пределы целого числа и попытались выйти за их пределы. Если это имеет смысл, ответьте на следующие вопросы:
- Каково максимально возможное целое число? Что произойдет, когда мы добавим единицу к этому значению?
- Каково наименьшее возможное целое число? Что произойдет, когда мы вычтем единицу из этого значения?
Упражнение 9: Переменные Java
На данный момент все основные операторы были изучены, и мы даже проверили пределы целых чисел. Давайте используем эти знания для создания некоторых переменных:
int x = 5 x = x + 1 int y = x + 5 double z = (x * y) / 2.0
В отличие от предыдущего, делайте не пробуйте больше примеров, прежде чем отвечать на следующие вопросы:
- Что хранит каждая переменная в конце выполнения всех трех строк?
- Чем
z
отличается отx
иу
? - В чем смысл оператора
=
? - Как работает
x + 1
?
Заканчиваем!
После завершения этой лабораторной работы студенты должны чувствовать себя гораздо более комфортно с различными арифметическими и реляционными операторами. Если бы они продвинулись достаточно далеко, то, возможно, даже получили бы некоторое представление о переменных. Кроме того, они должны лучше понимать арифметику целых чисел и чисел с плавающей запятой.
После такой лаборатории было бы безопасно вводить переменные, примитивные типы и даже пользовательские типы (классы). Поскольку Java является объектно-ориентированной, я рекомендую вводить классы как можно скорее. В противном случае им придется изучать Java с помощью какого-нибудь причудливого шаблона, и позже будет гораздо сложнее представить объекты.
В любом случае, если эта лаборатория показалась вам интересной, не стесняйтесь использовать ее для всего, что вам нужно. Я планирую создавать больше контента такого типа, так что ожидайте увидеть более продвинутые лаборатории в ближайшее время. Если вы хотите, чтобы будущие материалы попадали в ваш почтовый ящик, станьте участником . Я ценю вашу поддержку.
Оригинал: “https://dev.to/renegadecoder94/java-number-exploration-lab-53p”