AXM-E7001 - Computational Art and Design, Lecture, 5.9.2022-2.12.2022
This course space end date is set to 02.12.2022 Search Courses: AXM-E7001
Topic outline
-
Please note!
The course consists of common lectures on Monday afternoons and hands-on programming teaching and exercises on Thursday and Friday mornings!The course has two groups in SISU:- Beginner XXM01 - This one is aimed for students who are beginners in programming, taught by Matti Niinimäki
- Advanced XXM02 - This one is aimed for students who already understand the basic concepts of programming and want to study some more advanced concepts, taught by Markku Reunanen
Schedule for the joint lectures for all students
You can find the group specific schedules from the Beginner and Advanced sections. All the joint Monday lectures are in Q101.Monday, 05/09/202215:15–17:00Introduction, exercise, forming the groupsMonday, 12/09/202215:15–17:00Markku Reunanen: History of programming (slides below)Monday, 26/09/202215:15–17:00Matti Niinimäki: Generative artMonday, 03/10/202215:15–17:00Markku Reunanen: Hard and soft ware (slides below)-
-
Interactive Art Slides URL
-
Generative Art Slides URL
-
- Beginner XXM01 - This one is aimed for students who are beginners in programming, taught by Matti Niinimäki
-
To pass the course the students need to be present on 80% of the lectures and complete the given homework and other assignments.
-
The instructions, schedule and materials for the beginner group of the course will appear on this page. Joint Monday sessions can be found on the front page.
The course materials will be on a different site: https://learn.newmedia.dog/courses/computational-art-and-design/
Schedule
All of the Thursday and Friday classes will be in Room G203. There are no computers there so bring a laptop.Period 1
- Sep 8: Basics, Drawing with Code
- Sep 9: Animating with Code, Variables
- Sep 15: Comparison Operators, Conditionals (if, if-else, else-if)
- Sep 16: Logical Operators, Conditionals continued, Switch
Period 2
- Nov 3: Working with Data (JSON), Room G203
- Nov 4: Working with Data Continued | FFT Analysis Room L208
- Nov 10: Introduction to other creative coding environments: Processing, Room G203
- Nov 11: Introduction to other creative coding environments: TouchDesigner, Room L208
- Nov 17: Working with Hardware (serial, OSC), Room G203
- Nov 18: Machine learning with ml5.js, Room L208
- Nov 24: 3D | Project Work and Tutoring, Room G203
- Nov 25: Project Work and Tutoring, Room L208
- Dec 1: Project Work and Tutoring, Room G203
- Dec 2: Project Work and Tutoring, Room L208
- Sep 8: Basics, Drawing with Code
-
The instructions, schedule and materials for the advanced group of the course can be found on this page. We'll use Processing for this track, so if you're using your own laptop – highly recommended – download the tool before we start and make sure it works. Thursday and Friday computer classroom sessions will be held at M102 unlike the Monday lectures. Note that there are no lectures on workshop weeks.
Schedule
- Sep 8: Arrangements, setting up, basic graphics in Processing
- Sep 9: Variables and basic types, type conversion, comments
- Sep 15: Math in processing, Interactive sketches with mouse, formatting. Online.
Homework: make a little animation using setup, draw and variables. - Sep 16: Flow control: if, if-else, switch-case. Online.
Homework: flag of Belgium paint program using if/if-else and mouse button, see picture. - Sep 22: Flow control: for, while and do-while loops, nested loops.
Homework: using loops, draw a grid of rectangles and make the mouseover work. See picture. - Sep 23: Arrays, arrays with loops.
Make an int array with the following x/y/color content: 100,100,#ff0000, 500,200,#00ff00, 300,500,#0000ff, 200,400,#808080. Plot the data using a for loop. Expected outcome. - Sep 29: Functions: parameters and return values (recursion, if time allows)
Homework: make a function that draws a smiley face at x,y. Call it from draw with mouse coordinates. Expected outcome. - Sep 30: Dealing with text: displaying, searching, replacing
- Oct 6: Basics of object-oriented programming
Homework: make a class called Cat and two cat objects that can display themselves. They follow the mouse pointer around. Something like this. - Oct 7: More advanced object-oriented programming, inheritance and protecting members
- Oct 13: Callbacks, images, recap of the 1st part
Homework: make a creative experiment using PImage. - Oct 14: Text file input and output, splitting and trimming
Homework: solve the mystery. - Oct 27: Data structures: lists, trees, hash tables
Homework: using an IntList let the user draw with the mouse. Pressing 'u' will undo the drawing step by step. Expected outcome. - Oct 28: Sorting strings, numbers and objects, making an object list
Homework: read in the list of famous Western actors and display it in the sketch window in an alphabetical order. Expected outcome.
- Nov 3: Distances, angles and circles, affine transformations
Homework: download arrows.pde and add transformations so that you get this out. - Nov 4: More transformations, vectors and matrices
- Nov 10: Direct pixel access
Homework: display Bub and Bob in a window of 600x600 pixels using direct pixel access (PImages have loadPixels and pixels[] too). Expected outcome. - Nov 11: Hex, binary and decimal numbers, logical operations on pixels
Homework: invert archery.png colors using pixel-level operations. Expected outcome. - Nov 17: Video input, built-in and own filters
- Nov 18: Network programming, server and client using TCP
Homework: make a server (800x600) where users can place images by sending telnet messages. Expected outcome. Test feed (tip: trim the received string to remove trailing garbage):
100,100,http://www.kameli.net/~marq/cad/player.jpg
500,300,http://www.kameli.net/~marq/cad/football.png - Nov 24: Loading and playing back audio, synthesis. Note frequencies.
- Nov 25: More synthesis
- Dec 1: Conway's Game of Life simulation
- Dec 2: Wrapping up, what's next?
Links
- Processing.org – tutorials, downloads and the reference guide
- Course folder for examples, data files and so on
- Introduction to Creative Coding – we'll use some of the materials from the old course
- Khan Academy's interactive programming tutorials
-
Some more courses where you can develop and apply your coding skills
- AXM-E7004 Physical Computing
- AXM-E7005 Internet Technologies and Web Development
- AXM-E7007 Generative and Interactive Narratives
- AXM-E7008 Embodied Interaction
- AXM-E0301 Art + Media Studio
- AXM-E0403 Coding Virtual Worlds
- Digital Fabrication Courses (Arduino, advanced microcontroller programming)
- AXM-E6003 Composing with New Musical Instruments (Sound in New Media)
- AXM-E6004 Deep Learning with Audio (Sound in New Media)
- AXM-E6006 IXI Workshop (Sound in New Media)
- AXM-E6009 Procedural Audio (Sound in New Media)
- AXM-E5005 Software Studies for Game Designers (Game Design and Development)
Plus various one-week workshops offered throughout the year. A lot more available at the Department of Computer Science – pay attention to prerequisites, though. There is a Computer Science Minor too.