Introduction
Setup
1.
Software
1.1.
Terminal
1.2.
Text Editor
1.3.
Java
2.
Quickstart
2.1.
Jshell
2.2.
Output
2.3.
Variables
2.4.
Input
2.5.
Data Types
2.6.
Functions
2.7.
Comments
Jshell
3.
Variables
3.1.
Creating Variables
3.2.
Assignment Operator
3.3.
Variable Names
3.4.
Pen & Paper Analogy
3.5.
Scope and Shadowing
3.6.
Reference Types
4.
I/O
4.1.
Outputting to System.out and System.err
4.2.
Formatting with printf
4.3.
Reading from System.in with a Scanner
4.4.
Redirecting Standard I/O
4.5.
File Input with Scanner
4.6.
File Output with PrintWriter
5.
Types
5.1.
Numeric Types
5.1.1.
Integers
5.1.2.
Floating-Point Numbers
5.1.3.
Chars
5.1.4.
Modulo
5.1.5.
Numeric Conversions
5.2.
Strings
5.3.
Booleans
5.4.
Primitive Type Summary
6.
Flowcharts
6.1.
Sequential Instructions
6.2.
Decision Points
6.3.
Functions
7.
If Statements
7.1.
If
7.2.
Comparisons
7.3.
Else
7.4.
Nested Ifs
7.5.
Else-If
7.6.
Mistakes to Avoid
8.
Boolean Logic
8.1.
Boolean Operators
8.2.
Short-Circuiting
8.3.
Bitwise Operators
9.
Early Java API
9.1.
Math
9.2.
String
10.
Loops
10.1.
While Loop
10.2.
Do-While Loop
10.3.
Counting Loop
10.4.
Flag-Controlled Loop
10.5.
For Loop
10.6.
Nested Loops
11.
Functions
11.1.
Defining Functions in Jshell
11.2.
Calling Functions
12.
Arrays
12.1.
Creating Arrays
12.2.
Accessing and Mutating Arrays
12.3.
Iterating Over Arrays
12.4.
Reference vs Value Types
Compiled Java
13.
Jshell to Compiled Java
13.1.
Java Program Structure
13.2.
Compile and Run
13.3.
Syntax Changes
Glossary
Syntax Templates and Common Patterns
Light
Rust
Coal
Navy
Ayu
CSC110 Notebook
Software
This section explains some of the software you'll be using during the semester.