Albrecht Durer gave detailed instructions on how to construct the upper case letters (or at least those needed to write Latin) using compass and ruler.
A while back I made a coffeescript version of that http://pollrobots.github.io/BlogCode/durer.html