Getting into the groove

Every single year I get two or three weeks into the school year and have a day where I feel like I will die of the strain. “How do people keep all these balls in the air!”, I hear myself screaming in my head. Then, often the next morning, I wake up and find myself mostly in the groove of school again. I wonder if anyone has written about a way to ease that transition. If it’s this hard for an over-schooled PhD student it must be an incredible strain for those less acclimated. (I am not happy with that last sentence but hopefully, you get what I mean). On the other hand, it is possible that I am alone in this yearly ritual.

This week I think I am falling into the groove. Last Friday, I finished working for Ramp. I must admit that when the workday was over I felt incredibly happy to have one less ball in the air but I’d be lying too if I said I don’t miss it. The predictable 9-5 of work as a Software Engineer is much less stressful than grad school and the people at Ramp were really fun to work with.

Before signing off I should also mention that I went to a truly spectacular wedding on Sunday of a dear friend from here at Tufts. I met some wonderful people there and danced until much too late, only to learn that if you don’t get enough sleep on a Sunday night it can make your week more difficult than it needs to be. 100% worth it though.

In my next blog post, I am going to get back to curriculum stuff. I want to talk about what kind of stuff I saw while students worked on program 0.

Finally, this Friday I am taking part in the School of Engineering Lightning Round research presentations! Info here: https://www.eventbrite.com/e/school-of-engineering-research-sharing-lightning-round-tickets-171174767337

Comp-140 day 0

Last year I had the privilege of teaching Introduction to Computer Science at Cornell College three times (blocks 2,5, and 6) and I landed on a day 0 curriculum that I think worked really well and illustrates how I currently think CS1 should be taught. I will leave out the parts of the class devoted to introductions, norm-setting, and discussion of the syllabus and mastery grading although all of these are deeply important. I will definitely create blog posts down the line about my thoughts on mastery grading (love it) and about how I have seen more experienced educators here at Tufts do the introductions, norm-setting, and syllabus discussion (I have a lot to learn from these folks).

The actual “content introduction” of the class was broken into three parts: Clerihews, Program 0, and Program 1.

Clerihews
I gave the students 5 clerihews and sent them in breakout rooms in groups of 2-3 with the instructions to “figure out what the rules of Clerihews are” and then to “describe the function of each line in 1 of the 5 Clerihews”. Here is an example Clerihew by Edmund Clerihew Bently:
Sir Christopher Wren
Said, “I am going to dine with some men.
If anyone calls
Say I am designing St. Paul’s.”

The clerihews is an odd, rare, humorous, and almost certainly bad form of poetry but it is simple enough that my students were quickly able to discern the rules of the form and even explain how this line or that in a poem was a setup for the punchline. Once they were back and had shared what they learned I told them that we were going to do the same exercise with a programming language called Python!

At this point, I sent them to a “project” (Project 0) within the Teams feature of replit.com, a website with incredible utility when teaching a programming course. I showed them how to run the Python script on Replit (there’s a button labeled run) and sent them into breakout rooms again in groups of 2-3 with similar instructions to the Clerihews. This time I added a google doc (of questionable utility) where students could share their findings about the rules of Python.

Program 0


# <- notice these. What do you think they do?
# int means integer which is math for "whole number"
# feel free to edit this code as you would like

# Write explanations for what each line of this program does

def fun0():
  name = "" # This sets the variable name to ""
  message = "It's nice to meet you "; 
  print("What is your name? ")
  name = input();
  print(message, end="")
  print(name)


print('Hello, World!')

choice = int(input("Please chose program 0, or 1: "))

print("You chose " + str(choice))


if (0 == choice):
  fun0()


# What happens if you:

# Change line 10 to say:
# message = "It's nice to meet you ";

# Delete line 9

# Delete the word int from line 19

# Make some more changes

# Write some python rules in this document:

I’ll talk about how program 0 tended to go (hint: really well in my opinion) and share program 1 in a later blog post.

It’s almost been a week

I am just about 7 days into my newest journey. Starting a Ph.D. in STEM Education at Tufts University. It has been a wild week, to say the least. I am still finishing up work at Ramp, a video distribution startup in Boston, and had my first classes almost a week ago on Sep 8th. On top of that, I am trying to reintegrate into student life, celebrate the Jewish High Holidays, and get to know my advisors and the research cultures in their labs. Covid has certainly not simplified this transition. With all this going on I am feeling deeply behind but also incredibly excited.

I was originally planning to blog only about my thoughts as a CS educator but given that I have not been doing that since May a slice of life update seemed more reasonable for my first post.