The reason I became a teacher is so that I can do 1000 things in a day. I design homeworks; write grading unit tests; plan and deliver lectures; read up on relevant news and research; review academic papers; read books on things I don’t know enough about; compose haiku; serve on various university committees; oversee independent studies; meet with advisees as they plan their future; write recommendation letters; sift through endless email messages; meet with industry partners who wish to hire our students; conduct outreach for local schools; meet with prospective students; write grants; manage teaching assistants; file paperwork for travel, overrides to degree requirements, and even just showing up to work; field requests from other faculty and the community about technology projects; talk to the bookstore about books for my courses; keep an eye on the state of the lab machines and servers to make sure they have required software and are running properly; generate ideas for research projects; consult with students working on research projects; partner with local K-12 schools to provide a pathway for students to the university; survive budget cuts; interview faculty candidates; give students timely feedback on their work; and avoid the dunk tank at the annual CS picnic.
This morning I posted grades. Summer is now here and 995 of these tasks will go away for a few months. Whew. I’m looking forward to a summer of focus on Madeup—thanks to the support I received through Kickstarter!
I’ve been around the Internet long enough to understand that transparency on crowd-funded projects is important, so I plan on posting a weekly status report to document the things I’ve been working on. I’ll also share a special treat: a model of the week.
Short descriptions of the fixes I made recently are shared below. Many of them require working knowledge of the Madeup code base, but I offer them as documentation of our progress and as a record of Madeup’s development.
=from block-based function definition. Formerly, we needed this:
to isbig n = n > 100 end
Now we just need:
to isbig n n > 100 end
Single-line functions still require
to isbig n = n > 100
to f x = if x == 0 print x f x + 1 print x end end f 0
The parameter binding on the recursive call was overwriting the caller’s environment too. I switched calls to operate on a copy of a closure’s environment, one whose parameter bindings are temporary.
stick. The generated models are not hollow, making
tubesomething of a misnomer.
debugfunction, which prints to
constmethod no longer, as closures may get their environment changed by their bodies. (Update: tweaked the way closures operate, so I believe this can be made
Interpreterstate and command-line parameters.
CallWithoutParametersneeded higher precedence than
for i in 10.
In my graphics course, I asked students to make some models for me using Madeup. Here are two of their creations: