On Computational Design and Critical Thinking in Architecture