CodeWorld Update — July 14, 2018

Here’s some of the latest news with CodeWorld.

Classes and curriculum. I’m working on a whole slew of new CodeWorld learning opportunities for students and Haskell beginners. There’s also exciting news about resources for teaching.

  • I’ll be teaching at one or two schools in New York, with details still to be announced once scheduling is finalized. I’m very excited that it looks like I’ll be able to teach during the school day several times per week. I hope that fixes some of the logistic challenges of teaching an after-school activity once per week.
  • I’m also trying to set up some teaching in Atlanta on the weekends. It looks like this will include a class for adult Haskell beginners, using the Haskell dialect of CodeWorld. I’m looking forward to that one. If you’re in Atlanta and looking to get into Haskell in a gentle way, stay tuned.
  • There’s also ongoing work on cleaning up some of the resources I use for teaching. The main effort is winding down here, but I think the results will speak for themselves through the next school year, which will create some deadlines to clean up and release parts. I’m also looking forward to supporting more of the work Fernando Alegre and Juana Moreno and their colleagues are doing at LSU on high school computational thinking curriculum.

Platform. The gist of this is that we continue to make progress on making the development environment more powerful and easier to use, while being careful to keep it simple and intuitive. We’ve also been moving to slowly incorporate what we’ve all learned from our teaching experience, while minimizing the impact of changes on students.

  • I’ve started to formalized a deprecation process for CodeWorld. Instead of just removing things when it seems right, I’m now trying to avoid making breaking changes except in the summers (in the northern hemisphere), because this minimizes the impact on currently running classes. Deprecation warnings now include specific timelines for when things will be removed, so you can plan ahead.
  • Two big deprecation changes are now in progress. First, we’re committing to the migration from main to program as the name of the entry point in the CodeWorld dialect. This will affect 100% of programs, so it’s a big one! Second (and this affects both the CodeWorld and Haskell dialects), we’re moving away from simulations and interactions as concepts, and toward activities. The big change here is that the passage of time is modeled as an Event value, using the constructor TimePassing, instead of a separate function. This makes it easier to teach event handling before time steps, which is much better for maintaining energy and motivation in the learning process.
  • Another less major deprecation is the move from text to lettering. This is a simple rename, but it helps to address a common source of confusion by students: that it’s unclear when they have a value of type Text versus Picture.
  • Krystal Maughan has been doing some cool work with the development UI. The most visible is that she’s added a debug slider so you can change the speed at which animations and simulations run. Krystal is now working on a time-traveling debugger to go with it, so you can go back and review what went wrong in the past.
  • Also because of Krystal’s work, you can now resize a running program on the web site, by dragging the divider between your code and the program. This was a long-standing limitation that Krystal fixed in a night.
  • Robert Cook added a new local SQLite-based authentication system, which you can use if you want to run your own version of CodeWorld. This eliminates the dependency on Google accounts, but at the cost of doing your own account administration.

Branding. We have a new logo! After a lot of back-and-forth, we settled on this design a couple months ago.

Please share any other interesting stories and news in the comments.