First-order vs Higher-order Programs
Your assessment is correct.


A higher-order program takes programs as input or produces a program as output.
A first-order program takes values of base types as inputs and produces a value of base type as output.


In functional programming, functions are identified with programs, so we talk more about higher-order functions than higher-order programs.

This use of the word "higher-order" is common. For example, higher-order logics allow predicates to the arguments of other predicates.