#import "@local/notebookinator:0.1.0": *

#glossary.add-term(
  "Holonomic",
)[
  A vehicle is described as holonomic when it can move in any X/Y direction at any
  time, regardless of its rotation. X-drive and Mecanum drivetrains are examples
  of holonomic vehicles.
]

#glossary.add-term(
  "Python",
)[
  A high level programming language implemented in C. It's very useful for data
  science and data visualization.
]

#glossary.add-term(
  "CSV",
)[
  A minimal text based file format for spreadsheets. This allows a lot of data to
  be stored in a relatively simple, organized manner.
]

#glossary.add-term(
  "CLI",
)[
  Short for command line interface. This is a style of software interface where
  everything is controlled from the command line by typing in commands, rather
  than clicking with buttons.
]

#glossary.add-term("Singleton Pattern")[
  A software design pattern where a class is only instantiated once.
]

#glossary.add-term(
  "Mutual Exclusion",
)[
  A software design pattern where a shared resource can only be accessed by a
  single thread of execution at a time. It is often used to prevent race
  conditions.
]

#glossary.add-term(
  "Skid Steer",
)[
  A style of vehicle where the wheels have a fixed alignment. This is typically
  seen on heavy equipment like front loaders.
]

#glossary.add-term("Parallelism")[
  The process of running code in parallel across multiple cores.
]

#glossary.add-term(
  "Asynchronous",
)[
  When code is run out of order to achieve the illusion of running at the same
  time (parallelism).
]

#glossary.add-term(
  "Auton",
)[
  It could either refer to: the code designed for the autonomous section of a
  robotics match or the autonomous section of a robotics match.
]

#glossary.add-term(
  "API",
)[
  Acronym for application programming interface. It is a translation layer between
  two pieces of software.
]

#glossary.add-term(
  "Arcade Drive",
)[
  A driver control method where one joystick controls forward and backwards)and
  the other controls turning.
]

#glossary.add-term("AWP")[
  An acronym that stands for Autonomous Win Point.
]

#glossary.add-term("CAD")[
  Computer aided design. Used for planning out designs virtually.
]

#glossary.add-term(
  "C",
)[
  A low level programming language. Referred to as the mother of all languages.
]

#glossary.add-term(
  "C++",
)[
  A low level programming language that is a superset of C's functionality,
  originally called C with Classes.
]

#glossary.add-term(
  "CNC",
  [
    An acronym that stands for Computer numerical control. This is any application
    where a computer cuts, carves, or forms parts based on instructions that control
    the movement.
  ],
)

#glossary.add-term(
  "Framework",
)[ A collection of code that serves as a base for other code to be written on top
  of. ]

#glossary.add-term("FRC")[ A rival competition system to Vex. ]

#glossary.add-term(
  "Git",
)[
  A version control system. Used to create saved points in time in your code
  called commits.
]

#glossary.add-term(
  "GitHub",
)[
  A collection of git repositories hosted by Microsoft. Allows us to make our code
  easily accessible.
]

#glossary.add-term("Library")[ A collection of code that provides common utility. ]

#glossary.add-term("PID")[ Control theory used to move a system to a target smoothly. ]

#glossary.add-term(
  "Pure Pursuit",
)[
  A path following algorithm that causes the robot to move to a series of points.
]

#glossary.add-term("PROS")[
  An library developed by students at Purdue used to control vex robots.
]

#glossary.add-term(
  "Odometry",
)[
  A method of tracking the position of the robot in cartesian coordinates
  developed by team 5225, the Pilons.
]

#glossary.add-term(
  "Absolute Movement",
)[
  Movement that is in relation to a fixed point, rather than relative to itself.
]

#glossary.add-term(
  "Tank Drive",
)[
  A driver control method where the left joystick controls the left wheels of the
  bot, and the right joystick controls the right side of the bot.
]
