A Program element is the base type of object for things you can put into a program -- these include looping constructs like a ForLoop or a WhileLoop, conditional elements like an If or IfElse, variable assignment such as VarAssign, and calling methods/functions on objects MethodCall or StaticMethodCall.
All elements are available in the Program Toolbox on the far left of the Project Window. One of the quickest ways to create new elements is using the ProgCode element that is automatically converted to a specific program element of the appropriate type. See Program Editor for more information.
Generally speaking the prog el's are a small finite class of objects, providing core programming functionality. Think of them as a slightly extended version of the keywords within a standard programming language. Much of the specific functionality for performing specific kinds of operations within the simulator is embedded within objects of various types, and available as a MethodCall or a StaticMethodCall -- it is a good idea to browse the reference information for key object types such as DataTable, taMatrix, taMath_float, the DataProc objects, and Network, Layer, etc.