3D printing undergoes a significant transformation which revolutionizes design process and accessibility to different fabrication tools. This course will provide a hardware and software background regarding computational fabrication. In the first part, students will be introduced to basic fabrication pipeline including modeling, data acquisition, and fabrication. Next, the course will provide basics of physical-based simulation methods that are necessary for designing highly predictive tools for 3D printing and optimization methods used to automate the design process. After understanding all these tools, the course will provide examples of computational fabrication methods, in particular, methods for fabricating objects with prescribed visual and mechanical properties, as well as new design tools. After this course, students will be able to design new fabrication algorithms that take into account fabrication constraints. They will also be introduced to open questions and challenges that remain in the field.