Οι αρχιτέκτονες, οι καλλιτέχνες, και οι δημιουργικοί μηχανικοί, χρησιμοποιούν ολοένα και περισσότερο υπολογιστικές μεθόδους για να σχεδιάσουν μορφές σύνθετης γεωμετρικής πολυπλοκότητας στο χώρο, για να μοντελοποιήσουν τη σύνθετη συμπεριφορά συστημάτων στο χρόνο, και για να δημιουργήσουν διαδραστικούς τρόπους αλληλοεπίδρασης με το περιβάλλον. Παραδείγματα υπολογιστικών μεθόδων περιλαμβάνουν τη δημιουργία αλγορίθμων για τη παραγωγή νέων γεωμετρικών μορφών, παραμετρικών μοντέλων για την διερεύνηση σχεδιαστικών λύσεων, προσομοιώσεων για την ανάλυση σεναρίων, διαδραστικών μέσων για αλληλεπίδραση ανθρώπων-υπολογιστών, και πολλά άλλα. Οι υπολογιστικές μέθοδοι αλλάζουν έτσι, όχι μόνο τον διαδικαστικό τρόπο με τον οποίο σχεδιάζουμε αλλά κυρίως τον τρόπο με τον οποίο σκεπτόμαστε, συνθέτουμε και αξιολογούμε. Το μάθημα εισάγει βασικές αρχές υπολογιστικής και αλγοριθμικής σκέψης και εφαρμογές αυτών στις δημιουργικές τέχνες και επιστήμες, εστιάζοντας στην επινόηση και προγραμματισμό διαδραστικών εφαρμογών πάσης κλίμακας, από σχεδιαστικά εργαλεία και προσομοιώσεις συστημάτων έως χωρικές διαδικτυακές εγκαταστάσεις. Χρησιμοποιώντας τη γλώσσα προγραμματισμού P5.js, oι φοιτητές θα μάθουν να δημιουργούν τα δικά τους υπολογιστικά εργαλεία αντί απλώς να χρησιμοποιούν έτοιμο λογισμικό, αποκτώντας ελευθερία, ανεξαρτησία και κριτική σκέψη. Μέσω αυτής της προσέγγισης, oι φοιτητές θα μπορούν να αναλύουν βαθύτερα τα σχεδιαστικά προβλήματα με τα οποία καταπιάνονται, να θέτουν υλοποιήσιμους στόχους, να οργανώνουν τους στόχους τους σε μία σειρά από λογικά βήματα, και να γράφουν κώδικα για την υλοποίηση τους. Το μάθημα είναι προσβάσιμο σε φοιτητές χωρίς προηγούμενη εμπειρία στον προγραμματισμό, και συνδυάζει διαλέξεις, διαδραστικά παραδείγματα, εργαστηριακές ασκήσεις και μία τελική ομαδική εργασία που επιδεικνύει με δημιουργικό τρόπο την σύνθεση των τεχνικών δεξιοτήτων σε ένα σύνθετο σχεδιαστικό θέμα.
Θεματολογία
Εισαγωγή / Introduction
Εισαγωγή στις υπολογιστικές προσεγγίσεις στην αρχιτεκτονική και δημιουργικές τέχνες και επιστήμες Αλγόριθμοι, Προγραμματισμός, Γλώσσες Προγραμματισμού, Διαγράμματα Ροής και Ψευδοκώδικας. Εισαγωγή στην P5.js
Θεμελιώδεις Αρχές Προγραμματισμού / Fundamentals of Programming 1
Data types, primitives and functions. Drawing primitives and Coordinate System. Mouse input P5.js, HTML/CSS/JS, GitHub, GitHub Pages, Skeleton Boilerplate
Θεμελιώδεις Αρχές Προγραμματισμού / Fundamentals of Programming 2
Logic and control. Arrays, loops, conditional statements, recursion.
Θεμελιώδεις Αρχές Προγραμματισμού / Fundamentals of Programming 3
Shapes and geometric transformations.
Θεμελιώδεις Αρχές Προγραμματισμού / Fundamentals of Programming 4
Object-Oriented Programming: Objects, classes, and behaviors. Inheritance.
Προσομοίωση / Simulation
Particle spring systems and physics-based modeling Agents, emergence and crowd behavior
Γραφήματα και Δίκτυα / Graphs and Networks
Cities, buildings and assemblies as graphs
Οπτικοποίηση Δεδομένων / Data Visualization
Data harvesting, data manipulation, data visualization
Advanced Interactions
Computer Vision, Projection mapping
Network-based Applications
The internet / Servers and Clients / WebSockets
Networked-based interactive applications with Node.js, Socket.io and P5.js