Thursday, April 22, 2021

An unexpected teaching adventure: wrapping up a programming languages course

At the start of the semester, each course in the department had to have a "back-up instructor" designated, just in case the primary instructor fell ill. Usually such cases are handled on an ad hoc basis, but given the global pandemic, the college wanted us to be prepared. Turns out, I was the back-up for Programming Languages, and that professor was rendered unable to finish the course. So, as of last week Thursday, I have taken over two sections of CS431: Programming Languages. 

I am happy to help, although it has taken significant overtime to get stabilized. I now have more than twice as many students than I did before taking over the course, and the original instructor did not leave any plans for moving forward. I taught Programming Languages a few times in grad school, but not since. Naturally, the approach I would have taken, to lead to particular conclusions at the end of the semester, is not the path they took. It feels more like putting together a two-week workshop on the topic rather than wrapping up a semester, except that I am also suddenly in charge of their final exam and final grades.

All that said, over the past week, I have been able to meet my design goals. I put up exercises for Weeks 14 and 15 of the semester, and I designed the final exam. For Week 14, I decided to look at object-orientation, which is covered some in the prerequisite courses but had not yet been revisited in the PL course. In particular, I decided to look at one of the SOLID principles that we don't get to in CS222: Dependency Inversion. The department syllabus includes some objectives dealing with declarative languages and knowledge representation, and so for Week 15, I created an introduction to Prolog. I have always loved Prolog, and it was a treat to get back into it after over a decade away from it.

I decided to release these two weeks of lesson plans under CC BY-SA 4.0, as I have done for my other courses this semester. You can find them at https://github.com/doctor-g/cs431. The final exam is a secret, of course, but it emphasizes the core ideas of these two weeks of activity. Whereas I generally leave my lesson plans on my CS department Web site as an archive, I haven't decided yet if I will keep that repository up indefinitely, migrate it to csweb, or delete it once the semester is over. If you try to follow that link and it's gone, you'll know which route I chose.

2 comments:

  1. Welcome back to the PL Fraternity!

    ReplyDelete
    Replies
    1. Ha, thanks! I still feel like a long-lost cousin rather than a fraternal brother though ;)

      Delete