This document provides an overview of computational design and generative design. It discusses visual programming languages and tools like Processing, Grasshopper, and Dynamo. Generative design uses algorithms and parameters to generate design outcomes. It allows for exploring many more design possibilities compared to traditional design. Visual programming languages make computational design more accessible by allowing programming through a visual interface of connecting nodes and components. Tools like Dynamo and Grasshopper integrate computational design capabilities into CAD programs like Revit and Rhino. Overall, the document outlines the basic concepts, techniques, and software related to computational design and generative design through visual programming.