Difference between revisions of "Java 9: Summary"
From Deep Blue Robotics Wiki
Nelson yip (Talk | contribs) |
Nelson yip (Talk | contribs) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[ | + | [[Java_1:_Basics | '''Java Basics''']] |
<ol start="1"> | <ol start="1"> | ||
− | <li>Developer Tools - Eclipse (for writing code) and GitHub (for collaboration and version control)</li> | + | <li>'''Developer Tools''' - Eclipse (for writing code) and GitHub (for collaboration and version control)</li> |
− | <li>Hello World - A simple example of a Java program</li> | + | <li>'''Hello World''' - A simple example of a Java program</li> |
− | <li>Data Types - Formats for storing information</li> | + | <li>'''Data Types''' - Formats for storing information</li> |
− | <li>Variables - Data structures that store values</li> | + | <li>'''Variables''' - Data structures that store values</li> |
− | <li>Operators - Operations that can be performed on or between variables/values</li> | + | <li>'''Operators''' - Operations that can be performed on or between variables/values</li> |
− | <li>Control Statements - Statements that change the order in which code is executed</li> | + | <li>'''Control Statements''' - Statements that change the order in which code is executed</li> |
− | <li>Comments - Code that is not executed by the compiler</li> | + | <li>'''Comments''' - Code that is not executed by the compiler</li> |
</ol> | </ol> | ||
− | [[ | + | [[Java_2:_Object_Oriented_Programming | '''Object-Oriented Programming''']] |
+ | |||
<ol start="1"> | <ol start="1"> | ||
− | <li>Objects and Classes - Collections of variables and methods</li> | + | <li>'''Objects and Classes''' - Collections of variables and methods</li> |
− | <li>Methods - Actions that objects can perform</li> | + | <li>'''Methods''' - Actions that objects can perform</li> |
− | <li>Instantiation - Creating a new object</li> | + | <li>'''Instantiation''' - Creating a new object</li> |
− | <li>Fields - Variables that an object possesses</li> | + | <li>'''Fields''' - Variables that an object possesses</li> |
− | <li>Modifiers - Keywords that affect properties of a variable, method, or class</li> | + | <li>'''Modifiers''' - Keywords that affect properties of a variable, method, or class</li> |
− | <li>Type Casting - Converting between different data types</li> | + | <li>'''Type Casting''' - Converting between different data types</li> |
− | <li>Imports - Bringing outside code into a program</li> | + | <li>'''Imports''' - Bringing outside code into a program</li> |
− | <li>Math - A library of more advanced mathematical functions</li> | + | <li>'''Math''' - A library of more advanced mathematical functions</li> |
− | <li>String - A class for manipulating strings of text</li> | + | <li>'''String''' - A class for manipulating strings of text</li> |
− | <li>Array - A data structure that stores multiple values in a single variable</li> | + | <li>'''Array''' - A data structure that stores multiple values in a single variable</li> |
− | <li>System I/O - Communicating with the program through the console</li> | + | <li>'''System I/O''' - Communicating with the program through the console</li> |
</ol> | </ol> | ||
− | [[ | + | |
+ | [[Java_3:_WPILIB | '''WPILib Basics''']] | ||
+ | |||
<ol start="1"> | <ol start="1"> | ||
− | <li>FRC Updates - Installing the FRC software at kickoff or on new computers</li> | + | <li>'''FRC Updates''' - Installing the FRC software at kickoff or on new computers</li> |
− | <li>Iterative Robot - A class containing robot methods that are repeatedly called</li> | + | <li>'''Iterative Robot''' - A class containing robot methods that are repeatedly called</li> |
− | <li>WPILib - The FRC library</li> | + | <li>'''WPILib''' - The FRC library</li> |
− | <li>Actuators - Components on the robot that can perform actions (outputs)</li> | + | <li>'''Actuators''' - Components on the robot that can perform actions (outputs)</li> |
− | <li>Sensors - Components on the robot that can collect data (inputs)</li> | + | <li>'''Sensors''' - Components on the robot that can collect data (inputs)</li> |
− | <li>Joysticks - Devices that the operator uses to control the robot (inputs)</li> | + | <li>'''Joysticks''' - Devices that the operator uses to control the robot (inputs)</li> |
− | <li>RobotDrive - A class for controlling the robot drivetrain</li> | + | <li>'''RobotDrive''' - A class for controlling the robot drivetrain</li> |
− | <li>FRC DriverStation - A program for operating the robot</li> | + | <li>'''FRC DriverStation''' - A program for operating the robot</li> |
− | <li>SmartDashboard - A program for displaying robot output to the operator</li> | + | <li>'''SmartDashboard''' - A program for displaying robot output to the operator</li> |
− | <li>Webdash - The online interface for the RoboRIO</li> | + | <li>'''Webdash''' - The online interface for the RoboRIO</li> |
+ | </ol> | ||
+ | |||
+ | [[Java_4:_Command-Based_Programming | '''Command-Based Programming''']] | ||
− | |||
<ol start="1"> | <ol start="1"> | ||
− | <li>Robot Builder - A program for generating the general framework of the robot code</li> | + | <li>'''Robot Builder''' - A program for generating the general framework of the robot code</li> |
− | <li>Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO</li> | + | <li>'''Robot Map''' - A class that maps actuators and sensors to their ports on the RoboRIO</li> |
− | <li>Subsystems - Parts of the robot that perform individual tasks</li> | + | <li>'''Subsystems''' - Parts of the robot that perform individual tasks</li> |
− | <li>Commands - Actions that the robot can perform</li> | + | <li>'''Commands''' - Actions that the robot can perform</li> |
− | <li>Command Groups - Groups of actions for the robot to perform in sequence or in parallel</li> | + | <li>'''Command Groups''' - Groups of actions for the robot to perform in sequence or in parallel</li> |
− | <li>Operator Interface - A class that maps the joysticks and buttons with robot commands</li> | + | <li>'''Operator Interface''' - A class that maps the joysticks and buttons with robot commands</li> |
− | <li>Robot - An Iterative Robot class that manages the rest of the robot project</li> | + | <li>'''Robot''' - An Iterative Robot class that manages the rest of the robot project</li> |
− | <li>SmartDashboard Continued - Using additional features of SmartDashboard</li> | + | <li>'''SmartDashboard Continued''' - Using additional features of SmartDashboard</li> |
− | <li>Timer - A class for keeping track of real time</li> | + | <li>'''Timer''' - A class for keeping track of real time</li> |
</ol> | </ol> | ||
− | [[ | + | |
+ | [[Java_5:_Inheritance | '''Inheritance''']] | ||
+ | |||
<ol start="1"> | <ol start="1"> | ||
− | <li>Subclasses - Extensions of another class that inherit its code</li> | + | <li>'''Subclasses''' - Extensions of another class that inherit its code</li> |
− | <li>Overriding - Code in a subclass replacing code from a superclass</li> | + | <li>'''Overriding''' - Code in a subclass replacing code from a superclass</li> |
− | <li>Super - Accessing methods and constructors of a superclass</li> | + | <li>'''Super''' - Accessing methods and constructors of a superclass</li> |
− | <li>Interfaces - Collections of methods that a class is required to implement</li> | + | <li>'''Interfaces''' - Collections of methods that a class is required to implement</li> |
− | <li> | + | <li>I'''nheritance Modifiers''' - Using abstract, default, final, and access modifiers with inheritance</li> |
</ol> | </ol> | ||
− | [[ | + | |
+ | [[Java_6:_Design_Principles | '''Design Principles''']] | ||
+ | |||
<ol start="1"> | <ol start="1"> | ||
− | <li>Code Reuse - Not writing the same code twice</li> | + | <li>'''Code Reuse''' - Not writing the same code twice</li> |
− | <li>Encapsulation - Keeping information self-contained</li> | + | <li>'''Encapsulation''' - Keeping information self-contained</li> |
− | <li>Polymorphism - Using different data types interchangeably</li> | + | <li>'''Polymorphism''' - Using different data types interchangeably</li> |
− | <li>Type Safety - Preventing incorrect use of data types</li> | + | <li>'''Type Safety''' - Preventing incorrect use of data types</li> |
− | <li>Efficiency - Writing algorithms that use less processing power</li> | + | <li>'''Efficiency''' - Writing algorithms that use less processing power</li> |
− | <li>Memory Management - Garbage collection and avoiding memory leaks</li> | + | <li>'''Memory Management''' - Garbage collection and avoiding memory leaks</li> |
</ol> | </ol> | ||
− | [[ | + | |
+ | [[Java_7:_Additional_Topics | '''Additional Topics''']] | ||
+ | |||
<ol start="1"> | <ol start="1"> | ||
− | <li>Nested Classes - Defining a class inside of another class</li> | + | <li>'''Nested Classes''' - Defining a class inside of another class</li> |
− | <li>Generics - Generic datatypes that can represent any datatype</li> | + | <li>'''Generics''' - Generic datatypes that can represent any datatype</li> |
− | <li>Enums - A special data type to define a collection of constants</li> | + | <li>'''Enums''' - A special data type to define a collection of constants</li> |
− | <li>Exceptions - Errors thrown at runtime</li> | + | <li>'''Exceptions''' - Errors thrown at runtime</li> |
− | <li>Threading - The sequence in which code is executed</li> | + | <li>'''Threading''' - The sequence in which code is executed</li> |
− | <li>I/O Streams - Sequences of input or output information</li> | + | <li>'''I/O Streams''' - Sequences of input or output information</li> |
− | <li>Graphics - Visual effects displayed on the screen by the program</li> | + | <li>'''Graphics''' - Visual effects displayed on the screen by the program</li> |
− | <li>Annotations - A system for documenting code</li> | + | <li>'''Annotations''' - A system for documenting code</li> |
− | <li>Regular Expressions - A technique for sorting through Strings</li> | + | <li>'''Regular Expressions''' - A technique for sorting through Strings</li> |
− | <li>Dynamic Programming - A technique for making algorithms more efficient</li> | + | <li>'''Dynamic Programming''' - A technique for making algorithms more efficient</li> |
− | <li>Functional Programming - A style of programming that avoids changes of state</li> | + | <li>'''Functional Programming''' - A style of programming that avoids changes of state</li> |
− | <li>Stream Operations - Functional programming techniques for manipulating collections</li> | + | <li>'''Stream Operations''' - Functional programming techniques for manipulating collections</li> |
</ol> | </ol> | ||
− | ''' | + | |
+ | [[Java_10:_Advanced_Topics | '''Advanced Topics''']] | ||
+ | |||
<ol start="1"> | <ol start="1"> | ||
− | <li>Custom Widgets - Creating new widgets for the SmartDashboard</li> | + | <li>'''Custom Widgets''' - Creating new widgets for the SmartDashboard</li> |
− | <li>Device Characterization - Investigating the usage of various actuators and sensors</li> | + | <li>'''Device Characterization''' - Investigating the usage of various actuators and sensors</li> |
− | <li>Motion Profiling - Calculating a trajectory for the robot to follow</li> | + | <li>'''Motion Profiling''' - Calculating a trajectory for the robot to follow</li> |
− | <li>NetTables Client - Reading data from network tables</li> | + | <li>'''NetTables Client''' - Reading data from network tables</li> |
− | <li>PID Control - A type of feedback loop</li> | + | <li>'''PID Control''' - A type of feedback loop</li> |
− | <li>RoboRIO Files - Storing files on the RoboRIO</li> | + | <li>'''RoboRIO Files''' - Storing files on the RoboRIO</li> |
− | <li>Robot Simulator - A program that simulates the robot for testing purposes</li> | + | <li>'''Robot Simulator''' - A program that simulates the robot for testing purposes</li> |
− | <li>Vision - Analyzing input from the camera</li> | + | <li>'''Vision''' - Analyzing input from the camera</li> |
</ol> | </ol> |
Latest revision as of 22:03, 29 September 2016
- Developer Tools - Eclipse (for writing code) and GitHub (for collaboration and version control)
- Hello World - A simple example of a Java program
- Data Types - Formats for storing information
- Variables - Data structures that store values
- Operators - Operations that can be performed on or between variables/values
- Control Statements - Statements that change the order in which code is executed
- Comments - Code that is not executed by the compiler
- Objects and Classes - Collections of variables and methods
- Methods - Actions that objects can perform
- Instantiation - Creating a new object
- Fields - Variables that an object possesses
- Modifiers - Keywords that affect properties of a variable, method, or class
- Type Casting - Converting between different data types
- Imports - Bringing outside code into a program
- Math - A library of more advanced mathematical functions
- String - A class for manipulating strings of text
- Array - A data structure that stores multiple values in a single variable
- System I/O - Communicating with the program through the console
- FRC Updates - Installing the FRC software at kickoff or on new computers
- Iterative Robot - A class containing robot methods that are repeatedly called
- WPILib - The FRC library
- Actuators - Components on the robot that can perform actions (outputs)
- Sensors - Components on the robot that can collect data (inputs)
- Joysticks - Devices that the operator uses to control the robot (inputs)
- RobotDrive - A class for controlling the robot drivetrain
- FRC DriverStation - A program for operating the robot
- SmartDashboard - A program for displaying robot output to the operator
- Webdash - The online interface for the RoboRIO
- Robot Builder - A program for generating the general framework of the robot code
- Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO
- Subsystems - Parts of the robot that perform individual tasks
- Commands - Actions that the robot can perform
- Command Groups - Groups of actions for the robot to perform in sequence or in parallel
- Operator Interface - A class that maps the joysticks and buttons with robot commands
- Robot - An Iterative Robot class that manages the rest of the robot project
- SmartDashboard Continued - Using additional features of SmartDashboard
- Timer - A class for keeping track of real time
- Subclasses - Extensions of another class that inherit its code
- Overriding - Code in a subclass replacing code from a superclass
- Super - Accessing methods and constructors of a superclass
- Interfaces - Collections of methods that a class is required to implement
- Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance
- Code Reuse - Not writing the same code twice
- Encapsulation - Keeping information self-contained
- Polymorphism - Using different data types interchangeably
- Type Safety - Preventing incorrect use of data types
- Efficiency - Writing algorithms that use less processing power
- Memory Management - Garbage collection and avoiding memory leaks
- Nested Classes - Defining a class inside of another class
- Generics - Generic datatypes that can represent any datatype
- Enums - A special data type to define a collection of constants
- Exceptions - Errors thrown at runtime
- Threading - The sequence in which code is executed
- I/O Streams - Sequences of input or output information
- Graphics - Visual effects displayed on the screen by the program
- Annotations - A system for documenting code
- Regular Expressions - A technique for sorting through Strings
- Dynamic Programming - A technique for making algorithms more efficient
- Functional Programming - A style of programming that avoids changes of state
- Stream Operations - Functional programming techniques for manipulating collections
- Custom Widgets - Creating new widgets for the SmartDashboard
- Device Characterization - Investigating the usage of various actuators and sensors
- Motion Profiling - Calculating a trajectory for the robot to follow
- NetTables Client - Reading data from network tables
- PID Control - A type of feedback loop
- RoboRIO Files - Storing files on the RoboRIO
- Robot Simulator - A program that simulates the robot for testing purposes
- Vision - Analyzing input from the camera