Inverse Kinematics are the opposite of Forward Kinematics.
Both are special terms from robotics.
Forward kinematic take the angles of the robots joints and calculates the position and orientation of the end effector.
Inverse kinematics take the position and orientation of the end effector and calculates (in the best case) a set of valid joint angles to get to this position and orientation.
Both is pretty mathematical and can escalate into a lot of C++ code. For example: For making the robots "hand" move along a straight line, the software needs to subdivide the motion into many smaller steps, so you are not noticing that such a robot arm actually can't move in a straight line.