Please note! Course description is confirmed for two academic years (1.8.2018-31.7.2020), which means that in general, e.g. Learning outcomes, assessment methods and key content stays unchanged. However, via course syllabus, it is possible to specify or change the course execution in each realization of the course, such as how the contact sessions are organized, assessment methods weighted or materials used.
Basic knowledge of algorithmic design with ability to write and execute own Python scripts as well as formulate design problems in code. Students will learn the basics of object-oriented programming paradigm using Python programming language with integration in Rhinoceros CAD environment.
Schedule: 10.08.2020 - 21.08.2020
Teacher in charge (valid 01.08.2020-31.07.2022): Luka Piskorec
Teacher in charge (applies in this implementation): Luka Piskorec
Contact information for the course (applies in this implementation):
CEFR level (applies in this implementation):
Language of instruction and studies (valid 01.08.2020-31.07.2022):
Teaching language: English
Languages of study attainment: English
CONTENT, ASSESSMENT AND WORKLOAD
The course deals with methods of algorithmic design applied to the field of architecture, landscape and interior architecture, construction, as well as in the broad fields of industrial and product design. Although many architects still use computers much like they used analogue drawing boards, intrinsic capabilities of computers allow them to formalize their designs through code. This opens novel approaches in design thinking and articulation and gives architects, landscape and interior architects and designers powerful tools for formalizing their work. This approach also captures and exploits the inherent contemporary condition of creative practices - when designs become data, it becomes possible to create what was previously undrawable. The course is taught through 12 weeks with lectures and hands-on computer exercises. At the end the students are required to develop and present a final project.
Non-exhaustive list of topics:
Programming fundamentals: Python programming language and syntax, data types, operators, conditionals, looping, functions, lists, classes, dictionaries
Rhino Python and modeling: using Python within Rhino, rhinoscriptsyntax library, RhinoCommon SDK, NURBS modeling, Boolean operations on solids, transformation matrices, mesh modeling
Computational design: random walk algorithms, attractor fields, vector fields, mapping geometry from external data, Lindenmayer systems, evolutionary algorithms, optimization algorithms, particle-spring systems, voxels, Monte Carlo method, curvature mapping, spatial aggregation of discrete parts, cellular automata systems, dynamic relaxation, agent-based modeling, machine learning
Assessment Methods and Criteria
Students will be evaluated based on the project submitted at the end of the course. The submitted project needs to follow the guidelines which will be clearly communicated in the task description together with reference examples at the beginning of the course. Evaluation criteria fall into three groups:
- student has at least 60 % attendance rate for contact hours
- submitted project is within assigned topic and scope
- project is submitted on time for evaluation and in correct format
- submitted project demonstrates student’s ability to engage and work in an independent fashion in the computational design workflow shown in the class
- submitted project demonstrates that the student invested the designated amount of independent study hours to master the software, equipment and methods used in the computational design workflow shown in the class
- submitted project demonstrates student’s ability to express and facilitate design ideas in a clear and uncompromised fashion using the computational design workflow shown in the class
Submission of the project is in digital form. The evaluation is carried out by the teaching staff and invited experts. Presentation of the submitted project is public and mandatory for the successful completion of the course. This increases the transparency of the evaluation process and visibility of the student work in the context of the school and enables the students to self-evaluate their progress as compared to their peers.
The course spans periods IV and V, totaling 12 weeks. Calculated total workload for 6 cr is 160 hrs. Lectures and computer exercises are held Tuesdays from 09:15 to 12:00 and total 36 contact hours. Students are expected to invest additional 72 hours for working individualy on assignments and the final project, together with 36 hours reserved for individual study, reading and free topic exploration. Leftover 16 hours should be used for the preparation of the final presentation and documentation.
Aside from the hands-on tutorials in the computer lab and lectures during contact hours, the students will be provided with the online video tutorials covering the same topics as in the class. These can be used by the students during their self-study hours and are meant to repeat as well as expand on the topics shown in class. Practical information in condensed form will be included in the course hand-outs prepared specifically for the class. All learning materials will be provided to students in digital form. The moto of the course is “Learning by doing” and the students will be required to practice their skills directly on their project submitted at the end of the course.
Working knowledge of Rhinoceros (ARK-A2504 Software Basics 2 or equivalent). Familiarity with Grasshopper (ARK-E2512 Parametric Design or equivalent) or any programming language is of advantage but not mandatory.
SDG: Sustainable Development Goals
9 Industry, Innovation and Infrastructure
- Teacher: Luka Piskorec