General
The workshop takes place in Väre, classroom R102, from 10:15 to 16:00 every day of the week.
- Monday Oct 22: Kickoff, more object-oriented programming, basic file input/output
- What we will cover and why
- Recapping OOP and some advanced topics: encapsulation, classes, objects, methods, constructors (destructors), inheritance, object arrays
- Reading and writing text files, visualization project
- If time allows, creative programming exercise(s), see Human or Machine by A. Michael Noll
- Tuesday Oct 23: 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
- String splitting (tokenization) and trimming
- If time allows, regular expressions
- Wednesday Oct 24: 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 25: 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 filtering and dealing with video files
- Friday Oct 26: Event handling, larger exercises, wrapping up
- Event-driven programming model, mouse and keyboard events for user interaction
- More visualizations and creative programming: Game of Life or tutoring your projects.
- 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.
You may use your own laptop instead of the classroom computers. Just install Processing (freely available) and you're all set.