public knowledge: knowledge that is available to anyone
cognition: the psychological result of perception and learning and reasoning
programmer: a person who designs and writes and tests computer programs