Difference between revisions of "Java 9: Summary"

From Deep Blue Robotics Wiki
Jump to: navigation, search
Line 11: Line 11:
 
'''Object-Oriented Programming'''
 
'''Object-Oriented Programming'''
  
Objects and Classes - Collections of variables and methods
+
  Objects and Classes - Collections of variables and methods
Methods - Actions that objects can perform
+
  Methods - Actions that objects can perform
Instantiation - Creating a new object
+
  Instantiation - Creating a new object
Fields - Variables that an object possesses
+
  Fields - Variables that an object possesses
Modifiers - Keywords that affect properties of a variable, method, or class
+
  Modifiers - Keywords that affect properties of a variable, method, or class
Type Casting - Converting between different data types
+
  Type Casting - Converting between different data types
Imports - Bringing outside code into a program
+
  Imports - Bringing outside code into a program
Math - A library of more advanced mathematical functions
+
  Math - A library of more advanced mathematical functions
String - A class for manipulating strings of text
+
  String - A class for manipulating strings of text
Array - A data structure that stores multiple values in a single variable
+
  Array - A data structure that stores multiple values in a single variable
System I/O - Communicating with the program through the console
+
  System I/O - Communicating with the program through the console
  
 
'''WPILib Basics'''
 
'''WPILib Basics'''
  
FRC Updates - Installing the FRC software at kickoff or on new computers
+
  FRC Updates - Installing the FRC software at kickoff or on new computers
Iterative Robot - A class containing robot methods that are repeatedly called
+
  Iterative Robot - A class containing robot methods that are repeatedly called
WPILib - The FRC library
+
  WPILib - The FRC library
Actuators - Components on the robot that can perform actions (outputs)
+
  Actuators - Components on the robot that can perform actions (outputs)
Sensors - Components on the robot that can collect data (inputs)
+
  Sensors - Components on the robot that can collect data (inputs)
Joysticks - Devices that the operator uses to control the robot (inputs)
+
  Joysticks - Devices that the operator uses to control the robot (inputs)
RobotDrive - A class for controlling the robot drivetrain
+
  RobotDrive - A class for controlling the robot drivetrain
FRC DriverStation - A program for operating the robot
+
  FRC DriverStation - A program for operating the robot
SmartDashboard - A program for displaying robot output to the operator
+
  SmartDashboard - A program for displaying robot output to the operator
Webdash - The online interface for the RoboRIO
+
  Webdash - The online interface for the RoboRIO
 +
 
 
'''Command-Based Programming'''
 
'''Command-Based Programming'''
  
Robot Builder - A program for generating the general framework of the robot code
+
  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
+
  Robot Map - A class that maps actuators and sensors to their ports on the RoboRIO
Subsystems - Parts of the robot that perform individual tasks
+
  Subsystems - Parts of the robot that perform individual tasks
Commands - Actions that the robot can perform
+
  Commands - Actions that the robot can perform
Command Groups - Groups of actions for the robot to perform in sequence or in parallel
+
  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
+
  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
+
  Robot - An Iterative Robot class that manages the rest of the robot project
SmartDashboard Continued - Using additional features of SmartDashboard
+
  SmartDashboard Continued - Using additional features of SmartDashboard
Timer - A class for keeping track of real time
+
  Timer - A class for keeping track of real time
  
 
'''Inheritance'''
 
'''Inheritance'''
  
Subclasses - Extensions of another class that inherit its code
+
  Subclasses - Extensions of another class that inherit its code
Overriding - Code in a subclass replacing code from a superclass
+
  Overriding - Code in a subclass replacing code from a superclass
Super - Accessing methods and constructors of a superclass
+
  Super - Accessing methods and constructors of a superclass
Interfaces - Collections of methods that a class is required to implement
+
  Interfaces - Collections of methods that a class is required to implement
Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance
+
  Inheritance Modifiers - Using abstract, default, final, and access modifiers with inheritance
  
 
'''Design Principles'''
 
'''Design Principles'''

Revision as of 21:39, 22 September 2016

Java Basics

 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

Object-Oriented Programming

 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

WPILib Basics

 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

Command-Based Programming

 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

Inheritance

 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

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