Difference between revisions of "Java 9: Summary"

From Deep Blue Robotics Wiki
Jump to: navigation, search
Line 1: Line 1:
 
[[http://wiki.carlmontrobotics.org/Java_1:_Basics '''Java Basics''']]
 
[[http://wiki.carlmontrobotics.org/Java_1:_Basics '''Java Basics''']]
<ol start="0">
+
 
 +
<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>
Line 11: Line 12:
  
 
[[http://wiki.carlmontrobotics.org/Java_2:_Object_Oriented_Programming '''Object-Oriented Programming''']]
 
[[http://wiki.carlmontrobotics.org/Java_2:_Object_Oriented_Programming '''Object-Oriented Programming''']]
 
+
<ol start="1">
  Objects and Classes - Collections of variables and methods
+
<li>Objects and Classes - Collections of variables and methods
  Methods - Actions that objects can perform
+
<li>Methods - Actions that objects can perform
  Instantiation - Creating a new object
+
<li>Instantiation - Creating a new object
  Fields - Variables that an object possesses
+
<li>Fields - Variables that an object possesses
  Modifiers - Keywords that affect properties of a variable, method, or class
+
<li>Modifiers - Keywords that affect properties of a variable, method, or class
  Type Casting - Converting between different data types
+
<li>Type Casting - Converting between different data types
  Imports - Bringing outside code into a program
+
<li>Imports - Bringing outside code into a program
  Math - A library of more advanced mathematical functions
+
<li>Math - A library of more advanced mathematical functions
  String - A class for manipulating strings of text
+
<li>String - A class for manipulating strings of text
  Array - A data structure that stores multiple values in a single variable
+
<li>Array - A data structure that stores multiple values in a single variable
  System I/O - Communicating with the program through the console
+
<li>System I/O - Communicating with the program through the console
  
 
[[http://wiki.carlmontrobotics.org/Java_3:_WPILIB '''WPILib Basics''']]
 
[[http://wiki.carlmontrobotics.org/Java_3:_WPILIB '''WPILib Basics''']]
 
+
<ol start="1">
  FRC Updates - Installing the FRC software at kickoff or on new computers
+
<li>FRC Updates - Installing the FRC software at kickoff or on new computers
  Iterative Robot - A class containing robot methods that are repeatedly called
+
<li>Iterative Robot - A class containing robot methods that are repeatedly called
  WPILib - The FRC library
+
<li>WPILib - The FRC library
  Actuators - Components on the robot that can perform actions (outputs)
+
<li>Actuators - Components on the robot that can perform actions (outputs)
  Sensors - Components on the robot that can collect data (inputs)
+
<li>Sensors - Components on the robot that can collect data (inputs)
  Joysticks - Devices that the operator uses to control the robot (inputs)
+
<li>Joysticks - Devices that the operator uses to control the robot (inputs)
  RobotDrive - A class for controlling the robot drivetrain
+
<li>RobotDrive - A class for controlling the robot drivetrain
  FRC DriverStation - A program for operating the robot
+
<li>FRC DriverStation - A program for operating the robot
  SmartDashboard - A program for displaying robot output to the operator
+
<li>SmartDashboard - A program for displaying robot output to the operator
  Webdash - The online interface for the RoboRIO
+
<li>Webdash - The online interface for the RoboRIO
  
 
[[http://wiki.carlmontrobotics.org/Java_4:_Command-Based_Programming '''Command-Based Programming''']]
 
[[http://wiki.carlmontrobotics.org/Java_4:_Command-Based_Programming '''Command-Based Programming''']]
 
+
<ol start="1">
  Robot Builder - A program for generating the general framework of the robot code
+
<li>Robot Builder - A program for generating the general framework of the robot code</li>
  Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO
+
<li>Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO</li>
  Subsystems - Parts of the robot that perform individual tasks
+
<li>Subsystems - Parts of the robot that perform individual tasks</li>
  Commands - Actions that the robot can perform
+
<li>Commands - Actions that the robot can perform</li>
  Command Groups - Groups of actions for the robot to perform in sequence or in parallel
+
<li>Command Groups - Groups of actions for the robot to perform in sequence or in parallel</li>
  Operator Interface - A class that maps the joysticks and buttons with robot commands
+
<li>Operator Interface - A class that maps the joysticks and buttons with robot commands</li>
  Robot - An Iterative Robot class that manages the rest of the robot project
+
<li>Robot - An Iterative Robot class that manages the rest of the robot project</li>
  SmartDashboard Continued - Using additional features of SmartDashboard
+
<li>SmartDashboard Continued - Using additional features of SmartDashboard</li>
  Timer - A class for keeping track of real time
+
<li>Timer - A class for keeping track of real time</li>
  
 
[[http://wiki.carlmontrobotics.org/Java_5:_Inheritance '''Inheritance''']]
 
[[http://wiki.carlmontrobotics.org/Java_5:_Inheritance '''Inheritance''']]
 
+
<ol start="1">
  Subclasses - Extensions of another class that inherit its code
+
<li>Subclasses - Extensions of another class that inherit its code</li>
  Overriding - Code in a subclass replacing code from a superclass
+
<li>Overriding - Code in a subclass replacing code from a superclass</li>
  Super - Accessing methods and constructors of a superclass
+
<li>Super - Accessing methods and constructors of a superclass</li>
  Interfaces - Collections of methods that a class is required to implement
+
<li>Interfaces - Collections of methods that a class is required to implement</li>
  Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance
+
<li>Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance</li>
  
 
[[http://wiki.carlmontrobotics.org/Java_6:_Design_Principles '''Design Principles''']]
 
[[http://wiki.carlmontrobotics.org/Java_6:_Design_Principles '''Design Principles''']]
 
+
<ol start="1">
 
   Code Reuse - Not writing the same code twice
 
   Code Reuse - Not writing the same code twice
 
   Encapsulation - Keeping information self-contained
 
   Encapsulation - Keeping information self-contained
Line 67: Line 68:
  
 
[[http://wiki.carlmontrobotics.org/Java_7:_Additional_Topics '''Additional Topics''']]
 
[[http://wiki.carlmontrobotics.org/Java_7:_Additional_Topics '''Additional Topics''']]
 
+
<ol start="1">
 
   Nested Classes - Defining a class inside of another class
 
   Nested Classes - Defining a class inside of another class
 
   Generics - Generic datatypes that can represent any datatype
 
   Generics - Generic datatypes that can represent any datatype
Line 82: Line 83:
  
 
'''Projects'''
 
'''Projects'''
 
+
<ol start="1">
 
   Custom Widgets - Creating new widgets for the SmartDashboard
 
   Custom Widgets - Creating new widgets for the SmartDashboard
 
   Device Characterization - Investigating the usage of various actuators and sensors
 
   Device Characterization - Investigating the usage of various actuators and sensors

Revision as of 22:07, 22 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
      10. [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
        6. [Design Principles]

            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 [Additional Topics]
              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 Projects
                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