I'm learning introduction to logic on coursera offered by Michael Genesereth with Stanford University, where the the course used the term "logical constant" to denote a proposition sentence.
For example: If it is raining, then it is cold. Using letter r to represent it is raining, and using letter c to represent it is cold, then the sentence changed to r→c, where r and c are called logical constant which could be allocated with True and false value.
My confusion is, instead of logical constant, wouldn't it be more appropriate to call r and c logical variable, since their value could replaced by any human language proposition or logical value True and false.
In first order logics, true and false are not values that are taken on by bound or free variables. If you have a background in software this may be confusing since you can store true/false into variables just as easily as storing integers or strings.
So if you have an expression like $$\forall x ~ P(x)$$ then $P$ holds for every object in the domain of discourse. But true/false are not objects in the universe (in first order logics), so you cannot infer $P(\top)$ or $P(\bot)$. That is why there is a grammatical distinction between operators (boolean to boolean), relations (universe to boolean), and functions (universe to universe). So your author is distinguishing between free variables that take on values from the universe and so called "logical constants" that take on values of true or false.
Aside, this distinction does not exist logics like untyped lambda calculus. In those, true/false and natural numbers are both represented using the same grammatical rules.