| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Lesson # | Name | Review | Project (what they should be able to do by the end of class) | Key points | ||||||||||||||||||||||||
2 | Lesson 1 | Hello, World | N/A | Printing Calculations | Intro to Java language | Overview of curriculum | Explanation of JShell | Printing "Hello World" | Numeric variables/say what Strings are | Operators | Results vs. Side effects | Have them figure out what % does | |||||||||||||||||
3 | Lesson 2 | Tough decisions | Difference between int and double | Complex grade calculator (determine A-F) | Boolean logic/operators | Comparison operators | The almighty if statement | Or else | Chaining else-if's | A case for switches (and a case against) | Pseudocode (not pseudoscience) | Simple grade calculator (Pass/Fail) | |||||||||||||||||
4 | Lesson 3 | Letting your program flow | Print out if number is even or odd | Fizzbuzz (both while and for loops) | While loops | Not getting stuck in an infinite loop | Print out 1-10 with while loop | Do-While loop | For loop | Print out 1-10 with for loop | Print out even numbers (both with skipping and with if statements) | ||||||||||||||||||
5 | Lesson 4 | A method to the madness | Sum all odd numbers below 1000 | Print prime numbers (write isPrime(int i) method) | Write once, use many times | Methods are a bit like operators-side effects and results | Write void method (only has side-effects) | Method to print out 1-10 | Calling methods | Returning a value | Taking a single parameter | Write method to square a number | isEven(int) method | More than one parameter- exponent method | What happens when you define more than one method with the same name (different parameter lists)- overloading | ||||||||||||||
6 | Lesson 5 | Giving your program some class | Find angle between hands on clock | Person/House project | Grouping variables together, instantiating group | Method to process the "grouped" variables | Moving methods inside the group (adding a class method) | Blueprint analogy | Reference vs value types | Accessibility modifiers | Composition (putting one class inside of another) | Mutability vs immutibility, side-effects | |||||||||||||||||
7 | Lesson 6 | Strings and yarn (and Javadoc) | Create a class for something | Simple text based calculator | Explain ASCII/ char type | Operations on Strings have no side effects | Use .equals() to compare Strings | Switch statements don't work | Converting Strings to numbers (and the other way) | Go through String methods | Find earliest letter in alphabet | ||||||||||||||||||
8 | Lesson 7 | An array of... stuff | Does a String contain a letter | Sequential search | Arrays are reference types | Arrays of objects hold references | Arrays of primitives hold the value itself | Looping through an array/ changing values | Foreach loop and limitations | ||||||||||||||||||||
9 | Lesson 8 | The shadow of the eclipse/ Basically a git | Calculate average of array | Create multi-class eclipse project | Installing/Launching eclipse | Workspaces | Eclipse GUI Overview (Perspectives/Views) | Projects, main method | Create github accounts | Staging, committing and pushing to git | Reverting changes in git | Pulling/Fetching | |||||||||||||||||
10 | Lesson 9 | Static electricity | Open eclipse and create project | Singleton pattern | Normal fields aren't shared between instances | Creating objects with static fields | Static methods can't access non-static fields | Non-static methods can access static fields | Calling static vs. non-static methods | Why static (can be) evil | How to correctly use static fields | ||||||||||||||||||
11 | Lesson 10 | Say it to my interface | Count how many instances of an object there are | Implement the Iterable interface to encapsulate an array | Why they are useful (reference an object by functionality) | Implementing an interface | Referencing an object by its interface | Implementing multiple interfaces | Accepting interfaces as parameters | Casting from an interface | Static methods | Different types of interfaces | (If there's time) Overview of some common interfaces | ||||||||||||||||
12 | Lesson 11 | A large inheritance | Print out all numbers in an Iterator<Double> | Probably a Person or Animal inheritance chain | Abstract classes are like interfaces, but they can have both kinds of methods | You can only extend one class (diamond inheritance problem) | You can also extend non-abstract classes | A subclass can be treated like its superclass | Casting and conversion | The Object class | Overriding methods | Calling super methods and constructors | Methods that accept a supertype | The instanceof operator | Arrays and inheritance | ||||||||||||||
13 | Lesson 12 | Exceptional times call for Exceptions | The Exception class | Throwing (checked) exceptions (also adding throws declaration) | Catching exceptions | Pros/cons of throwing exceptions | Writing your own exception | Unchecked exceptions/ RuntimeException | Catching multiple exceptions/ multiple catch statements | Exceptions and inheritance | Common Exceptions | ||||||||||||||||||
14 | Lesson 13 | Generic collection #109827 | Collection/List interfaces, and the angle brackets | Using lists, find median/mean of list | LinkedList vs ArrayList | Writing own generic class | Generic methods | Diamond operator, wildcards | Inheritance | Using HashMap | |||||||||||||||||||
15 | Lesson 14 | Not just regular nums, but enums | |||||||||||||||||||||||||||
16 | Lesson 15 | Going to college (wpilib) | Installing wpilib | IterativeRobot | Reading and writing to SmartDashboard | Using Riolog | |||||||||||||||||||||||
17 | Lesson 16 | Reading input with sensors | |||||||||||||||||||||||||||
18 | Lesson 17 | Actuators | |||||||||||||||||||||||||||
19 | Lesson 18 | PID | |||||||||||||||||||||||||||
20 | Lesson 19 | Robotbuilder/command-based programming | |||||||||||||||||||||||||||
21 | Lesson 20 | Advanced git/ Writing a robot | |||||||||||||||||||||||||||
22 | Lesson 21 | Bonus: Anonymous classes and lambda expressions | |||||||||||||||||||||||||||
23 | Lesson 22 | Bonus: Streams | |||||||||||||||||||||||||||
24 | |||||||||||||||||||||||||||||
25 | Notes: | ||||||||||||||||||||||||||||
26 | Lesson 11 may take longer than planned | ||||||||||||||||||||||||||||
27 | Should there be homework? | ||||||||||||||||||||||||||||
28 | Fit in reading javadoc somewhere | ||||||||||||||||||||||||||||
29 | |||||||||||||||||||||||||||||
30 | |||||||||||||||||||||||||||||
31 | |||||||||||||||||||||||||||||
32 | |||||||||||||||||||||||||||||
33 | |||||||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||
100 |