Sabbaticals and More Short Courses
Thoughts on Sabbaticals
At colleges and universities, it is customary for professors to take an academic sabbatical every seven or eight years. The purpose of the sabbatical is not to take an extended surfing vacation, but to reinvigorate one's research, get new ideas, and make new connections without having to worry about the usual responsibilities of teaching or department service. Often this involves going somewhere else, usually to a different university, government research lab, or industry while still being paid.
Sabbaticals are a luxury--and something that is nearly impossible to pull off if you're self-employed. Sure, it's easy to simply take time off. However, it's the "going elsewhere" and "still getting paid" part that becomes a bit more challenging--especially if it's going to be something more than contract programming or consulting.
Taking a Sabbatical of Sorts
I mention sabbaticals because it's with great excitement that I'm going to be taking a "mini sabbatical" of sorts this fall. I'll be teaching the upper division Programming Languages course (CSCI 1730) at Brown University with Shriram Krishnamurthi. It's going to be intense--13 weeks, meeting 3 days a week. Students are expected to commit about 150-200 hours of effort to it and will implement a programming language. It involves a variety of advanced topics that I've wanting to learn more about (type systems, garbage collection, continuations, etc.). The course is taught entirely in Racket and involves the Programming Languages Application and Interpretation (PLAI) book. The phrase "and now for something completely different" definitely comes to mind.
Shriram also happens to be one of the most well-known researchers in CS education and pedagogy. For example, he's a co-author of the How to Design Programs book, involved with the Pyret language, and is working on the new A Data-Centric Introduction to Computing text. I have followed many of his papers for years and have often experimented with incorporating some of his ideas into my own teaching. Needless to say, it's great opportunity for me to focus on this in greater depth and to bring back more ideas to my future courses.
Because of the course scheduling and the intensity of it, all of my usual week-long immersion courses will be on vacation until January. I will, however, continue to offer a series of short-courses.
Short Courses
Over the past couple of months, I have started to offer a series of short-courses drawn from my Advanced Programming with Python course. This has now expanded to four courses (covering days 2-5 of the advanced course):
-
The Objects. Object oriented programming and classes. (Next date: August 2)
-
Elevated. Event driven programming, problem solving, testing, verification. (Next date: August 16)
-
The Test. Security, writing testable code, logical specification, and novel testing strategies. (Next date: August 17)
-
The Functions. Functional programming. (Next date: August 30)
Throughout the fall, these courses will be offered on a regular two-week rotation (one course every two weeks). They can be taken in any order and independently. You can take the same course repeatedly at no cost if you want to revisit material (this offer also extends to anyone who has previously completed the Advanced Programming course).
A frequent challenge in offering an immersion course is the matter of scheduling and timezones. If you've been thinking about taking a course, but with some scheduling hesitation, the short courses provide an opportunity to complete a course on a more relaxed schedule.
Immersion Courses
I should note that I am still offering a few immersion courses over the summer and space is still available. Again, these courses will not be offered again until January.
-
Write a Compiler. July 12-18, 2023. Online.
-
Rafting Trip. August 7-11, 2023. In-person, in Chicago!
-
Advanced Programming with Python. August 21-25, 2023. Online.
Can I Be Involved with the Brown Course?
A few people have asked me if there is any way to be involved with the Programming Languages course at Brown. In short, no. At least not directly. However, if you are seriously interested in that material and would be willing to commit to the work involved (which is substantial), send me an email. I'm open to the idea of trying to set up something.
Cheers,
Dave