Difference between revisions of "Java 9: Summary"

From Deep Blue Robotics Wiki
Jump to: navigation, search
Line 60: Line 60:
 
[[http://wiki.carlmontrobotics.org/Java_6:_Design_Principles '''Design Principles''']]
 
[[http://wiki.carlmontrobotics.org/Java_6:_Design_Principles '''Design Principles''']]
 
<ol start="1">
 
<ol start="1">
  Code Reuse - Not writing the same code twice</li>
+
<li>Code Reuse - Not writing the same code twice</li>
  Encapsulation - Keeping information self-contained</li>
+
<li>Encapsulation - Keeping information self-contained</li>
  Polymorphism - Using different data types interchangeably</li>
+
<li>Polymorphism - Using different data types interchangeably</li>
  Type Safety - Preventing incorrect use of data types</li>
+
<li>Type Safety - Preventing incorrect use of data types</li>
  Efficiency - Writing algorithms that use less processing power</li>
+
<li>Efficiency - Writing algorithms that use less processing power</li>
  Memory Management - Garbage collection and avoiding memory leaks</li>
+
<li>Memory Management - Garbage collection and avoiding memory leaks</li>
 
</ol>
 
</ol>
 
[[http://wiki.carlmontrobotics.org/Java_7:_Additional_Topics '''Additional Topics''']]
 
[[http://wiki.carlmontrobotics.org/Java_7:_Additional_Topics '''Additional Topics''']]
 
<ol start="1">
 
<ol start="1">
  Nested Classes - Defining a class inside of another class</li>
+
<li>Nested Classes - Defining a class inside of another class</li>
  Generics - Generic datatypes that can represent any datatype</li>
+
<li>Generics - Generic datatypes that can represent any datatype</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>
  Exceptions - Errors thrown at runtime</li>
+
<li>Exceptions - Errors thrown at runtime</li>
  Threading - The sequence in which code is executed</li>
+
<li>Threading - The sequence in which code is executed</li>
  I/O Streams - Sequences of input or output information</li>
+
<li>I/O Streams - Sequences of input or output information</li>
  Graphics - Visual effects displayed on the screen by the program</li>
+
<li>Graphics - Visual effects displayed on the screen by the program</li>
  Annotations - A system for documenting code</li>
+
<li>Annotations - A system for documenting code</li>
  Regular Expressions - A technique for sorting through Strings</li>
+
<li>Regular Expressions - A technique for sorting through Strings</li>
  Dynamic Programming - A technique for making algorithms more efficient</li>
+
<li>Dynamic Programming - A technique for making algorithms more efficient</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>
  Stream Operations - Functional programming techniques for manipulating collections</li>
+
<li>Stream Operations - Functional programming techniques for manipulating collections</li>
 
</ol>
 
</ol>
 
'''Projects'''
 
'''Projects'''
 
<ol start="1">
 
<ol start="1">
  Custom Widgets - Creating new widgets for the SmartDashboard</li>
+
<li>Custom Widgets - Creating new widgets for the SmartDashboard</li>
  Device Characterization - Investigating the usage of various actuators and sensors</li>
+
<li>Device Characterization - Investigating the usage of various actuators and sensors</li>
  Motion Profiling - Calculating a trajectory for the robot to follow</li>
+
<li>Motion Profiling - Calculating a trajectory for the robot to follow</li>
  NetTables Client - Reading data from network tables</li>
+
<li>NetTables Client - Reading data from network tables</li>
  PID Control - A type of feedback loop</li>
+
<li>PID Control - A type of feedback loop</li>
  RoboRIO Files - Storing files on the RoboRIO</li>
+
<li>RoboRIO Files - Storing files on the RoboRIO</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>
  Vision - Analyzing input from the camera</li>
+
<li>Vision - Analyzing input from the camera</li>
 
</ol>
 
</ol>

Revision as of 22:12, 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
  11. [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

    Projects

    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