This unit introduces students to the Java programming language and the use of classes, providing students with a firm foundation of concepts that will be leveraged and built upon in all future units. Students will focus on writing the main method and will start to call preexisting methods to produce output. The use of preexisting methods for input is not prescribed in the course; however, input is a necessary part of any computer science course so teachers will need to determine how they will address this in their classrooms. Students will start to learn about three built-in data types and learn how to create variables, store values, and interact with those variables using basic operations. The ability to write expressions is essential to representing the variability of the real world in a program and will be used in all future units. Primitive data is one of two categories of variables covered in this course. The other category, reference data, will be covered in Unit 2.
ESSENTIAL QUESTIONS
Modularity [MOD]
How can we use programs to solve problems?
Variables [VAR]
In what ways are numbers used in the programs and apps you use most often?
Control [CON]
How are mathematical concepts being used in the programs and apps that you use most often?
BIG IDEAS
+ Primitive data types including int, double, and Boolean
+ Evaluating arithmetic expressions in program code
+ Using assignment operators to produce a value
+ How variables and operators are sequenced and combined in an expression to create a result
UNIT TOPICS & ACTIVITIES
1.1: Why Programming? Why Java?
Lab: Knock, Knock
1.2: Variables & Data Types
Lab: My Favorites
1.3: Expressions & Assignment Statements
Lab: My Quadratic
1.4: Compound Assignment Operators
Lab: My Change Counter
1.5: Casting & Ranges of Variables

SKILLS ADDRESSED
Program Design and Algorithm Development
1.A: Determine an appropriate program design to solve a problem or accomplish a task
1.B: Determine code that would be used to complete code segments.
Code Logic
2.A: Apply the meaning of specific operators.
2.B: Determine the result or output based on statement execution order in a code segment without method calls (other than output).
Code Testing
4.B: Identify errors in program code.
Documentation
5.A: Describe the behavior of a given segment of program code
5.B: Explain why a code segment will not compile or work as intended.