2023-1 Comput. Dsgn Thinking & Fabric. Studio (CITE490A-01) The course syllabus

1.Course Information

Course No. CITE490A Section 01 Credit 3.00
Category Major elective Course Type Classroom Course prerequisites
Postechian Core Competence
Hours MON, WED / 13:30 ~ 15:10 / C5 MAKERSPACE2 [002-1] Grading Scale G

2. Instructor Information

Park Juhong Name Park Juhong Department Dept. Convergence IT Engineering
Email address juhpark@postech.ac.kr Homepage www.juhongpark.com
Office C5, 218 Office Phone 054-279-8875
Office Hours Mon.Wed. 5:10 - 5:40 pm

3. Course Objectives

Course background: What is design? What is the design process? Despite more than forty years of design studies, design seems still to be an obscure process. There is no consensus on what design is, and what the design process is. It is hardly possible to describe how architects develop their creative designs. One widely held view of design is Simon’s (1973) definition of design as an “ill-structured problem,” or Churchman’s (1967) “wicked problem,” because of its ambiguous goals and incomplete information (Voss and Post, 1988). The solutions to this ill-structured problem in design are still as various as design definitions are. Rittel and Webber (1973) described design as a “problem-defining process” in which designers located the problem among “complex causal networks.” Parnas (1986) described a design process as a "long sequence of design decisions, with no clear statements of why [the designers] do things the way they do." They explained the intractable nature of the design process as identifying ambiguous boundaries and exploring endless “causal chains” in the solution space. Rittel (1972) illustrated the use of causal patterns in solving wicked problems, such as consequential, non-deterministic, relational, and recursive causality and concludes that naïve scientific approaches (rationality) might not be able to solve wicked problems because of these complex causalities. This workshop revisits Rittel and Webber’s (1973) description of the characteristics of wicked problems from the perspective of complex causal patterns

Course description: This Computational Design Thinking and Fabrication Studio introduces to the programming design and the art of software development. Students will practice how to think like designers with computational thinking such as modularization, abstraction, algorithms and encapsulation. Throughout this course, students will learn how to integrate their own design thinking such as “problem setting” or “problem re-framing” with procedural, object-oriented and eXtreme programming paradigms. Daily sketching and diagramming exercises will enhance learners own “figuring-out” process of using programming for empowering their design cognition. The purpose of this exercise is training students how to transform their design ideas into programming structures through segmented sketching and diagramming practices. This studio, accordingly, will provide a foundation of architectural way of using computational thinking, and work as a prelude to high-level programming.

The purpose of this studio is to introduce students’ computational design thinking, incrementally iterative and explorative reflective thinking utilizing computational power in the design process, through scalable making and fabrication projects. Weekly lectures provide reading materials to teach the theoretical background of thinking, the thinking of thought process (meta-thinking), and design thinking. These include schema (mental model) theory, constructivist theory/constructionism, and metaphor. At the same time, the course will gradually cover both software and hardware design tools, such as Rhino 3D (3D modeling), 3DS Max (visualization), Python and Grasshopper (programming tools), and rapid prototyping technologies (laser cutting, 3D printing, CNC milling, and physical computing). After the successful finish of this studio, students will gain a confidence in navigating self-motivated journey to explore the uncertainties of design and the design process.

List of specific objectives are:
1. Students will acquire fundamental knowledge in computational design and digital fabrication.
2. Students will acquire knowledge of algorithmic and systemic thinking.
3. Students will be introduced to a variety of computational thinking such as abstraction, modularization, incremental iteration, and reflection-in-action.
4. Students will acquire evidence-based design and research skills.
5. Students will further develop their verbal presentation techniques and visual communication skills

4. Prerequisites & require

Students need to bring their own laptop computers (Windows only)

5. Grading

Daily/Weekly Assignments 30%
At every class time there will be quick weekly reviews that each student should submit on the class blog by the end of the previous day (uploaded to class blog which will have time marks).
At the same time, there will be daily assignments. These assignments are mainly designed for students to exercise demonstrated tutorials covered during each class time. These assignments should be finished within 15 minutes, following recorded class tutorials or could be finished during each class time. The first week is the most important week in learning the foundation of computational design thinking. Accordingly, daily assignments are weighted differently.

Attendance 20%
Every student is expected to attend every class session and stay in a classroom during the assigned class time. This course however accepts any students’ missing due to sicknesses, illnesses, family emergencies, conferences, or field trips. To waive any missing classes, students are required to submit hard copies of letters from relevant parties. Any combination of late or early leaving will count for one missing.

Final Presentation/Exhibition 50%
Students will present their final projects at the last class time and may have an opportunity to exhibit their art work to the public. This final presentation includes all past work and exercises - both failed and successful. Please do not trash any project.

6. Course Materials

Title Author Publisher Publication

7. Course References

Several articles and reading materials will be uploaded to the course website or distributed electronically. However, there is a supplementary list of references

for learning and design process:
Perkins, D. N. (1994). Creativity: Beyond the Darwinian paradigm. In M. A. Boden (Ed.), Dimensions of creativity (pp. 119-142). Cambridge, MA: MIT Press
Perkins, D. N. (1995). Insight in minds and genes. In R. J. Sternberg & J. E. Davidson (Eds.), The nature of insight (pp. 495-534). Cambridge, MA: MIT Press
Perkins, D.N., & Grotzer, T.A. (2005). Dimensions of causal understanding: The role of complex causal models in students' understanding of science. Studies in Science Education, 41, 117-166.
Parnas, D. L., & Clements, P. C. (1986). A rational design process: How and why to fake it. IEEE Trans. Softw. Eng., 12(2), 251
Graham, P. (2010). Hackers & Painters: Big Ideas from the Computer Age (1st ed.). O’Reilly Media.
Rittel, H. W. J. & Webber, M. M. (1973). Dilemmas in a general theory of planning. Policy Sciences, 4(2), 155- 169.
Schon, D. A. (1995). The Reflective Practitioner: How Professionals Think in Action. Ashgate Publishing.
Schön, D. A. & Wiggins, G. (1992). Kinds of Seeing in Designing. Creativity and Innovation Management, 1(2), 68-74.

for programming language tutorial:
Downey, A., Elkner, J., & Meyers, C. (2009). Learning with PYTHON: How to Think Like a Computer Scientist (1st ed.). CreateSpace.
Perry, G. (1994). Absolute Beginner’s Guide to C (2nd ed.). Sams.
Farrell, J. (2010). Programming Logic and Design: Comprehensive (6th ed.). Course Technology.
Venit, S. & Drake, E. (2010). Prelude to Programming: Concepts and Design (5th Edition) Addison Wesley.

for software design and programming:
Bentley, J. (1999). Programming Pearls (2nd ed.). Addison-Wesley Professional.
Martin, R. C. (2003). UML for JavaTM Programmers. Prentice Hall.
Glass, R. L. (2002). Facts and Fallacies of Software Engineering (1st ed.). Addison Wesley Professional.
Beck, K. & Andres, C. (2004). Extreme Programming Explained: Embrace Change (2nd ed.). Addison-Wesley Professional.
McConnell, S. (1997). Software Project Survival Guide (1st ed.). Microsoft Press

8. Course Plan

[Subject to Change]

In this Computational Design Thinking and Fabrication Studio course, students will learn computational design thinking through weekly lectures and workshops. Students are asked to incrementally produce small-scale digital art projects using a computer programming language, Python and/or Grasshopper. Throughout these incrementally iterative process, students will continuously re-learn and re-define what is design, design thinking, and the design process. This design thinking will introduce students in engineering and science departments how to revert their habits of mind from top-down to bottom-up, and sequential to parallel. These reverting exercises will help students redefine failure as resources for success or enjoyable learning processes instead of a painful experience or a waste of resources.

The studio is composed of three modules. In the first module, Procedural Design Thinking will be covered including the introduction of computational thinking and various typologies of thinking, such as data thinking, abstract thinking, and structural thinking. Throughout this first module, students will repeatedly design small-scale 2D artwork until they achieve high-level complexity yet elegance.

Module 1. Procedural Design Thinking - 2D Design
Week 1. Computational Thinking
Week 2. Data Thinking
Week 3. Abstract Thinking
Week 4. Structural Thinking
Week 5. Module 1 Review

In the second module, Object-Oriented Design Thinking, students will exercise how to identify design thinking (design conception) and reframe these concepts into modular ideas within the real-life contexts and within their limited resources, time, and skill sets. In another word, students will exercise how to conceive a seed idea through iterative empathy, ideate, prototype, and test cycles, and gradually transform the seed idea into a testable and measurable 3D project.

Module 2. Object-oriented Design Thinking - 3D Design
Week 6. Modular Thinking
Week 7. Generative Thinking
Week 8. Parallel Thinking
Week 9. Pattern Thinking
Week 10. Module 2 Review

In the third module, Computational Design Thinking, students will continue to re-design their projects from the module 2 and fabricate them into a real-scale final project with exhibition quality. Fast prototyping technology will be introduced and are required to be used to fabricate students' final projects. Manual fabrication is not recommended; however, it may be necessary to polish projects. Students will prepare a convincing argument and visual representations regarding their project ideas, provide research contexts, and demonstrate final projects as the proof of concept.

Module 3. Computational Design Thinking and Fabrication - Independent Projects
Week 11. Visual Representation - Rendering and Collage
Week 12 2D and 2.5D Fabrication - Laser Cutters
Week 13. Additive 3D Fabrication - 3D Printing
Week 14. Subtractive 3D Fabrication - CNC Machine
Week 15. Final Review

9. Course Operation

Announcements, tutorials, and assignments: Students are responsible to follow and update by frequently visiting the course website. All students’ assignments, reading materials and documents will be uploaded on the class blog and be open to the public. All course materials will be distributed electronically (no printed materials). Students are responsible for downloading course materials that are accessible during the uploaded week and the link will be deleted after at the end of each week. Course blog: all materials will be distributed electronically through the class blog: TBA

10. How to Teach & Remark

Work load: This course is highly intensive in terms of daily sketching/coding assignments and students will get daily feedbacks on their codes. As Aberson, Sussman and Sussman (1996) suggested students will work on how to collect fragmented ideas (expression) and to combine those small modules (combination) to develop into a complex idea (abstraction). A daily assignment is drawing initial sketches, analytical diagrams, Unified Modeling Language (UML) and working codes for a given or self-motivated partial or full function called “stub code.” Suggested function may have less than twelve lines of code and the assignment may complete within thirty minutes. Minimum daily requirement is submitting one function with a couple of pages of sketches. Consistency of submission is the most critical factor in learning programming as it does in learning a foreign language.

This subject only cares about how each student’s programming learning progress over the semester. Students need not to bring fancy ideas or projects. It is not recommended to use any external source codes either sample programs. Rather, this subject cares how much students’ fluency and competency in using programming for their design projects are improved compared to themselves on week one. After this workshop, each student may have at least 63 sketches and functions. You will share about 600 codes together. The combinations of your codes and other colleagues’ codes are limitless.

11. Supports for Students with a Disability

- Taking Course: interpreting services (for hearing impairment), Mobility and preferential seating assistances (for developmental disability), Note taking(for all kinds of disabilities) and etc.

- Taking Exam: Extended exam period (for all kinds of disabilities, if needed), Magnified exam papers (for sight disability), and etc.

- Please contact Center for Students with Disabilities (279-2434) for additional assistance