The workshop takes place at classroom U351, the undergraduate centre (not Väre!) from 10:15 to 16:00 every day of the week.
- Monday Oct 25: Kickoff, more object-oriented programming, basic file input/output
- What we will cover and why
- Recapping OOP and some advanced topics: encapsulation, classes, objects, attributes, methods, constructors, inheritance, object arrays
- Reading text files, visualization project, ratios
- If time allows, creative programming exercise(s), see Human or Machine by A. Michael Noll
- Tuesday Oct 26: Typical data structures, scraping, file types, parsing
- Dynamic data structures: lists, trees and hash tables, how to do them in Processing/Java
- Some ways of getting data off the Web: plain copypaste, scraping tools, crawling, databases, APIs
- Flat text files, spreadsheets, CSV/TSV, JSON, HTML, XML
- Writing to text files, bridging Excel and Processing
- String splitting (tokenization) and trimming
- If time allows, regular expressions
- Wednesday Oct 27: Sorting, some trigonometry, geometrical transformations
- Sorting strings and numbers
- Finding distances, directions and angles, revisiting sine/cosine
- Right- and left-handed coordinates
- Affine transformations: rotation, scaling, translation, the transformation stack
- If time allows, creative programming exercises with transformations
- Thursday Oct 28: Direct pixel access, low-level bit operations, video input and filtering
- Window and image pixel handling in Processing, ARGB
- Bit operations: and, or, xor, not, shifting, hex and binary notation
- Using a webcam in Processing
- Built-in image filters, own filters
- If time allows, more creative fiddling with real-time video filtering
- Friday Oct 29: Event handling, larger exercise, wrapping up
- Event-driven programming model once more, mouse and keyboard events for user interaction
- More visualizations and creative programming: Game of Life
- Recap of the week, what's next?
We'll do plenty of little exercises every day: some on data visualization, others more creative when time allows. Install Processing (freely available) and you're all set. Note that you need to have taken Introduction to Creative Coding or an earlier Software Studies course or obtained similar skills otherwise – we won't cover Processing basics here.
80 % presence in class, doing the given assignments.