SENG 440: Lecture 18 – Location
Dear students, Today we write an app for hiding and finding messages in geographic locations. Our primary goal is to explore how to acquire and use a device’s location, and this app is just one playful example of the many possible applications that are aware of the user’s place. Next lecture we will discuss communicating […]
SENG 440: Lecture 17 – Gravity Sensor
Dear students, Today we write Lonely Phone, an app that senses when the phone is laid flat and starts ringing to grab the user’s attention. This will be the first time we use the code you wrote outside of class and submitted through the Crowdsource tool. This makes me slightly nervous. When I control the […]
Lissajous
Twoville serves two purposes: to create SVG images that can be used as input to laser and vinyl cutters to create animations To support the second of these, I have been using time blocks to define geometric properties at particular keyframes, and then letting the animation system interpolate between the keyframes. Like this: Here we […]
Polar Graph
A year ago I decided to see if fifth graders could create shapes using polar coordinates. I bet myself that they could if we spent some time first traversing a polar grid, identifying the labels of the rings and the spokes. We didn’t think of them as angles and radii, because those semantics weren’t important […]
SENG 440: Lecture 16 – Camera, Part 2
Dear students, Last time we met we tried something new. I assigned in-class exercises, you worked on them, and that’s all we had time for. We will discuss and implement your solutions today, which will wrap up our work on the Backlog app. I’d like to keep getting you involved in the writing of our […]
Phone Programming
Twoville now supports masking, which means we can subtract shapes from other shapes. Since I’m teaching a course on mobile app programming this semester, phones have been on my mind. Accordingly, here’s one of the first runs of the masking feature: In this code, hole is a container of other shapes that will be subtracted […]
SENG 440: Lecture 15 – Camera
Dear students, We are back from a break. I hope you grew as a human being. I did, and I’m hoping to change things up a bit in this second half of the semester. The first half was largely me leading you on code adventures in lecture. I really don’t enjoy teaching in this tutorial […]
Machine Setup for Computational Music
This coming summer I’m leading a summer camp on digital music and sound generation. There are many steps to get the computers set up, and I record them here to share with helpful system administrators and my future self. Software to Install The following is a list of the base software that needs to be […]
Why 12?
We looked previously at how an octave—or doubling, as we called it—is partitioned non-linearly into intermediate tones. But we didn’t ultimately decide how many intermediate tones there should be. The pioneers of Western music converged on a 12-partition. But why not 8? Or 10? Or 11? Or 13? Ultimately, we want our instruments to sound […]
Droplets
A year ago some students and I started designing programming languages for generating 2D vector art. I called my language Twoville, which pays homage to Seymour Papert’s metaphor of learning math in Mathland just as we learn French in France. The language is a place to learn about and forge 2D shapes. After the semester […]