Difference between revisions of "Java 9: Summary"

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

Latest revision as of 22:03, 29 September 2016

Java Basics

  1. Developer Tools - Eclipse (for writing code) and GitHub (for collaboration and version control)
  2. Hello World - A simple example of a Java program
  3. Data Types - Formats for storing information
  4. Variables - Data structures that store values
  5. Operators - Operations that can be performed on or between variables/values
  6. Control Statements - Statements that change the order in which code is executed
  7. Comments - Code that is not executed by the compiler

Object-Oriented Programming

  1. Objects and Classes - Collections of variables and methods
  2. Methods - Actions that objects can perform
  3. Instantiation - Creating a new object
  4. Fields - Variables that an object possesses
  5. Modifiers - Keywords that affect properties of a variable, method, or class
  6. Type Casting - Converting between different data types
  7. Imports - Bringing outside code into a program
  8. Math - A library of more advanced mathematical functions
  9. String - A class for manipulating strings of text
  10. Array - A data structure that stores multiple values in a single variable
  11. System I/O - Communicating with the program through the console

WPILib Basics

  1. FRC Updates - Installing the FRC software at kickoff or on new computers
  2. Iterative Robot - A class containing robot methods that are repeatedly called
  3. WPILib - The FRC library
  4. Actuators - Components on the robot that can perform actions (outputs)
  5. Sensors - Components on the robot that can collect data (inputs)
  6. Joysticks - Devices that the operator uses to control the robot (inputs)
  7. RobotDrive - A class for controlling the robot drivetrain
  8. FRC DriverStation - A program for operating the robot
  9. SmartDashboard - A program for displaying robot output to the operator
  10. Webdash - The online interface for the RoboRIO

Command-Based Programming

  1. Robot Builder - A program for generating the general framework of the robot code
  2. Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO
  3. Subsystems - Parts of the robot that perform individual tasks
  4. Commands - Actions that the robot can perform
  5. Command Groups - Groups of actions for the robot to perform in sequence or in parallel
  6. Operator Interface - A class that maps the joysticks and buttons with robot commands
  7. Robot - An Iterative Robot class that manages the rest of the robot project
  8. SmartDashboard Continued - Using additional features of SmartDashboard
  9. Timer - A class for keeping track of real time

Inheritance

  1. Subclasses - Extensions of another class that inherit its code
  2. Overriding - Code in a subclass replacing code from a superclass
  3. Super - Accessing methods and constructors of a superclass
  4. Interfaces - Collections of methods that a class is required to implement
  5. Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance

Design Principles

  1. Code Reuse - Not writing the same code twice
  2. Encapsulation - Keeping information self-contained
  3. Polymorphism - Using different data types interchangeably
  4. Type Safety - Preventing incorrect use of data types
  5. Efficiency - Writing algorithms that use less processing power
  6. Memory Management - Garbage collection and avoiding memory leaks

Additional Topics

  1. Nested Classes - Defining a class inside of another class
  2. Generics - Generic datatypes that can represent any datatype
  3. Enums - A special data type to define a collection of constants
  4. Exceptions - Errors thrown at runtime
  5. Threading - The sequence in which code is executed
  6. I/O Streams - Sequences of input or output information
  7. Graphics - Visual effects displayed on the screen by the program
  8. Annotations - A system for documenting code
  9. Regular Expressions - A technique for sorting through Strings
  10. Dynamic Programming - A technique for making algorithms more efficient
  11. Functional Programming - A style of programming that avoids changes of state
  12. Stream Operations - Functional programming techniques for manipulating collections

Advanced Topics

  1. Custom Widgets - Creating new widgets for the SmartDashboard
  2. Device Characterization - Investigating the usage of various actuators and sensors
  3. Motion Profiling - Calculating a trajectory for the robot to follow
  4. NetTables Client - Reading data from network tables
  5. PID Control - A type of feedback loop
  6. RoboRIO Files - Storing files on the RoboRIO
  7. Robot Simulator - A program that simulates the robot for testing purposes
  8. Vision - Analyzing input from the camera