Be sure to check out shape grammars for non-organic procedural content generation; for example, the classic "Procedural Modeling of Buildings" from http://peterwonka.net/Publications/publications.html (as well as many other great publications from that author).
I took a class by P. Prusinkiewicz (Dr. P) at the University of Calgary as part of my graduate program more than a decade ago. Still remember it fondly and keep all my presentations and slides from the coursework.
Unfortunately I don't think I did very well as I was very headstrong and rewrote the C++-based L-system generator in Haskell. That didn't get me any extra points :)
https://www.youtube.com/watch?v=EdyociU35u8
https://www.youtube.com/watch?v=dsvLLKQCxeA
https://www.youtube.com/watch?v=Oc8sWN_jNF4