Madeup
Madeup is a language for making things up. Using commands for moving around, its speakers walk interesting paths through 3-D space and generate geometric models tracing the paths. The models may be viewed in any standard 3-D model viewer or sent to a 3-D printer. The language was designed for several reasons: To enable the creation […]
Employer Questions
I’ve got a student graduating and applying for jobs. With one company, he’s in the middle of a three-stage interview. The first stage was conducted over email, and he was asked the following questions: What software development books do you think are the best? Which ones are on your bookshelf? What authors or public personas […]
Autocompleting Student Usernames in zsh
I use a lot of scripts to help me grade students’ work, enter their scores in the gradebook, and send them email reports. For example, I might grade the entire class’s work with: Or maybe I just want to grade Quintin Buster’s submission. I just supply his username as a parameter: I’ve had an itch […]
Secure Grading
Few of my students are nefarious. But sometimes they do evil by accident. For this reason, I never run their code using my regular account. You know, the one that has access to my gradebooks, coding projects, email, network shares, and personal music collection. However, testing under a separate grader account is annoying: I have […]
Closure Self-Reference in Madeup
Madeup is a language for expressing the construction of 3-D objects. It borrows heavily from Logo, with extra instructions for generating triangular meshes fitted around the stops the turtle makes. I’m very interested in making a RERL (the unpronounceable read-eval-render-loop) for Madeup that runs on mobile devices. Typing on mobile devices is not fun, so […]
Everywhere Pointer
My five-year-old son wanted to make an arrow. I one-upped him by making four arrows. He liked the shape and called it an “everywhere pointer.” We can make this with the following code: This code makes me realize I should try to add the unary negation operator. Right now I have to verbosely multiply by […]
Caterpillar
If we can make 2-D art out of nothing but dots on the paper, it seems we should be able to make 3-D objects out of nothing but spheres. And we now can in Madeup. I added a dot command, such that a sphere is placed at every point the programmer visits with a move command. […]
Recursive Objects
Madeup now supports recursion: Including the function definition in the environment of a closure tripped me up considerably, but I think I got it figured out. Or maybe I didn’t. The lattice was generated with this code: Cleaning up the corners is a job for another day.
First-person Math
Nothing brings together the remote reaches of computer science together like writing your own programming language. My abstract syntax tree exploits inheritance and polymorphism and multiple inheritance. My parsing is done in Java while the model of the program is built up of C++ classes. I’ve got tables, stacks, and vectors. Recursion is naturally all […]
Navigators Talk
My friend and Navigators campus director Jeff Clochesy gave me the opportunity to speak at Nav Night this past semester. Nav Night is a weekly fellowship time of the Navigators campus ministry. I’m Chris Johnson, which rhymes with Wisconsin. For the past six years I’ve been teaching computer science at the college level. You folks […]