"Time is of the essence," states a condition in legal contracts.
That phrase asks for delivery in a reasonable time. Yet time defies simple, clear definition in ordinary language.
We find at least three contrasting meanings in different fields.
- In physical sciences, time is associated with the speed of light, and with entropy.
- In human experience the rate of time seems subjective: sometimes going faster, sometimes apparently slower.
- And for software, time is a logic of cause and effect, leading to virtual notions of time.
Within the world of computing, one really does need a clear meaning of time.
This introductory seminar gives students a taste of how time is treated in computing, where we see properties familiar and surprising. Part of the seminar material is found in readings of general articles about the philosophical choices in representing clocks, and about the importance of synchronization in daily life, which increasingly depends on realtime software.
Some intriguing biological and physical experiments reveal how synchronization may spontaneously emerge. Can we use biological examples to inspire software clocks? For insight into software clocks, we have to understand how computers exploit communication and memory to synthesize correct timing; to appreciate a bit of foundational theory, a few of the seminar's meetings will look at temporal logic, which enables time-qualified statements about behaviors.
Another part of the seminar explores simple experiments where students try "what if" experiments: sometimes changing the order of steps matters, but often it doesn't.
Grading for the course will depend on student participation at meetings, contributing to a course wiki, and presenting results of experiments in class.