The Spring Equinox and making (lots of) mistakes

Okay, so you can’t tell by the weather outside right now — freezing rain in Kingston for the past 24 hours — but since Sunday, March 20, we have officially returned to spring. (March 20 was also World Story-telling Day!)

March 20 was the Spring Equinox, also known as the Vernal Equinox if you want to be fancy. We have two equinoxes per year, in March and September, and on each of those days our sun shines nearly directly on the Equator. This means that on the equinoxes, day and night are virtually equal in length.

Equinoxes are heavy with symbolism. The Spring Equinox heralds our days finally thawing and growing longer than our nights. This means sunshine! Warmth! Hope! Flowers! Mud! (I genuinely love mud — no sarcasm here. Really. I mean it. Gosh, everything on the Internet sounds sarcastic, doesn’t it?)

What does this have to do with academics and mature students, you ask?

Well, one thing the equinox always reminds me is that my life (and probably yours, too, unless you are supremely lucky, in which case what is your secret?!) follows a pattern of good/bad, fortune/misfortune, happiness/sadness. And only two days of the entire year are actually fully balanced like that! The rest of the time, we are either leaning more towards one than the other. That’s just the way things go.

Here, where I am Supreme Narrator and Blog Overlord, it’s easy for me to ignore or hide the shadowy parts of my life. Many people do the same on Facebook, Twitter, and other social media:

But the Spring Equinox (and its sister, the Fall Equinox) always brings me home to realize all the unpleasant stuff has a place in my life, too. I re-read my blogs and noticed that I haven’t shared any unpleasantness yet. How’s that for balance?

So, here is a little academic unpleasantness (and how I cope with it).

In my current course, we have two midterms and a final exam. On Tuesday this week, we just wrote the second midterm. I left the midterm feeling great! In fact, I left also feeling pretty baffled by how great I felt — the midterm was very short, seemed pretty straight-forward, and many of us left the exam much earlier than the time allotted.

You can almost here the Jaws theme in the background, right?

Turns out I flubbed one of the questions (there were only three questions to begin with), and it was a totally avoidable mistake, too.

Being a perfectionist, little things like this can take a big toll on me. Even after literally decades as a student, I still sometimes have a tough time separating my self-worth from my academic performance. Almost every day I chat with students at Queen’s who face the same challenge — and I empathize so much, because I’m the same way!

So what do I do when it’s time to bounce back from a setback?

Try not to think about it for 24 hours. I find a good night’s sleep almost always makes me feel better. Also going out with friends and not talking about school, or going for a run or rock-climbing. I’ve flunked enough times — academically, personally, name an area of life and I’ve probably screwed it up at some point — that experience has shown me time will heal (or at least dull) almost everything.

Put it in perspective. Most academic setbacks don’t matter too much in the long run. In my example, this is just one test, in one course, out of an entire degree. True, sometimes a mistake may close some doors — medical school, for example — but the nice thing about life is that there are so many more options than we realize. If med school doesn’t work out, that’s not your last chance for a meaningful life.

Make it meaningful. Once the initial sting has subsided, I like to think about what I can learn from the mistake (if anything). In this case, I didn’t actually study very much for the midterm, and I especially forgot to review this particular concept. If I could go back in time, would I study more? … Maybe. I do work full-time, after all!

Remember mistakes are inevitable. Sometimes, just reminding myself that absolute perfection is an impossible goal — everyone will screw up sometime, somehow — is enough to restore my equilibrium. No one manages to get through a lifetime without making a ton of mistakes along the way.

So happy springtime! May we all make tons of mistakes this season so we can appreciate when we get it right even more.

How I solve small assignments in my computer science class

Millie chewed up some old headphones. She doesn't recommend listening to music while programming.
Millie does not recommend listening to music while programming, unfortunately. Too distracting.

Right now I’m enrolled in CISC 124, a first-year computer science course at Queen’s on object-oriented programming in Java. This is the third computer science course I’ve taken at a university level. In every course so far, instead of writing one massive essay at the end of term like in my past life of English literature, the professor requires us to write many small computer programs and submit those throughout the term. (There may also be midterms and exams, but those are not the purpose of today’s post!).

This week, I finished writing my fourth program for this course, and I want to share the strategies I’ve found helpful so far. Keep in mind that these strategies probably best apply to small programming assignments as opposed to actual projects, and I’m always learning more about the process!

Rewrite the instructions

In CISC 124, the assignment prompts tend to be pretty wordy. I like to read through the prompt and actually re-write what’s important on a separate piece of paper. I tend to do this in a visual way; I use mindmaps to signify the relationships between different classes and methods (the ignorant student’s version of UML!), and I create tables that compare the purpose of each method if some of them are pretty similar. I need to be able to explain, in my own words, what the program I’ve been assigned to write actually has to accomplish.

This step is less important for simple assignments that I can immediately wrap my head around, but for assignments with parts or algorithms that I’m not 100% on yet, I find this step is surprisingly helpful. I’ve come to realize that I am very bad at mental visualization, so verbalizing in words and writing things down is a lot easier for me than trying to imagine mentally. (I learned a lot more about visualization from The Mind’s Eye by Oliver Sacks — very cool, check it out.)

Shuffle a deck of cards in your hands

Okay, this is maybe one of the weirder strategies I’ve come up with. I mentioned above that I find visualization pretty difficult. This makes imagining even basic search algorithms tricky for me. The best way I found to combat this, weirdly enough, was to pretend that I was actually holding a deck of cards (a real-world array!) in my hands and sorting them according to the algorithm. This helped me articulate what was actually happening in the algorithm so that I could then write it in a program.

When I first started using nested for loops, I used this same method. I never actually needed to hold objects in my hands for it to work; it was enough to move my hands around and pretend I was shuffling things. I found this physicality a lot easier than completely imagining what was going on. I think this is why I find math so much easier to do on paper than in my head.

Code with a plan

When I first started writing these assignments, I’d often dive right into the coding part without taking some time to plan the program’s structure. Now that we’ve covered polymorphism in CISC 124, though, I find it much more helpful to plan out the program in advance — how will I break down the methods, classes and variables in a way that makes sense. I normally do this on a piece of paper. This helps me avoid a lot of refactoring or debugging from careless, avoidable errors.

On my latest assignment, it was extremely satisfying that I was able to compile and run the whole program successfully after just one go, passing all my tests. The saying is “measure twice, cut once,” and it applies equally to coding!

Move from top to bottom

When I want to work a little more quickly, sometimes I’ll cheat by doing the planning directly in the .java files as opposed to a piece of paper. I’ll create all the headers for the classes and methods, and include in comments what each one should take as a parameter and what it should return. Then I can start filling in the blanks.

There is something very pleasing about finishing up a program’s skeleton like this! I always got a similar feeling when I finished outlining a paper, but before I started writing it. It’s sort of like, “Okay, the assignment is now basically written, right?” You get a nice sense of the assignment as a whole, and filling in the gaps doesn’t seem as tall of an order anymore.

Talk to yourself if you get stuck

Sometimes, despite all my planning, I’ll still get a little stuck on something. This normally happens when it’s a concept I didn’t pay much attention to in-class (likely because I was tired, thinking about something else, or missed the lecture for work). My go-to solution for this is always to talk out loud to myself. I do this for math problems, too. Starting at a point in the program where I feel confident in my code, I’ll talk myself through what is happening.

Sometimes, it’s the syntax that throws me off instead of the concept (a prime example is Comparators from this past week). In cases like that, I’ll talk out loud in pseudo-code about what I want the program to do, write down that articulation, and then look through the professor’s sample code or lecture slides for something that looks like it might be able to accomplish (or be tweaked to accomplish) my end goal.

So far, at least, this has always worked. I’ve come to rely on this a lot in my darkest coding moments.

Revisit the assignment instructions

Whenever I finish the assignment, I have a little dance party with the dog. But I don’t stop there. I always make sure to look back at the assignment instructions, and this time I treat the instructions as if it’s a checklist. After every sentence, I ask myself “Did I do this in the assignment?” If I’m at all unsure, I review what I wrote and revise as needed.

The more complicated the assignments get, the more this step becomes essential — it’s very easy to miss something small. For example, in this latest assignment, there was one little sentence toward the end that said all our variables should be private or protected. Easy to miss — but very important!


I haven’t done much research into why these strategies work for me. I think it has something to do with the limitations of working memory and my personal coping mechanisms for being terrible at mental visualization. Maybe that’s a blog post for another time.

On another note, I’m sorry I missed a blog last week! The week flew by and I forgot all about my commitment to a weekly blog.

 

Making my own “net for catching days”

How we spend our days is, of course, how we spend our lives. What we do with this hour, and that one, is what we are doing. A schedule defends from chaos and whim. It is a net for catching days. It is a scaffolding on which a worker can stand and labor with both hands at sections of time. A schedule is a mock-up of reason and order—willed, faked, and so brought into being; it is a peace and a haven set into the wreck of time; it is a lifeboat on which you find yourself, decades later, still living. Each day is the same, so you remember the series afterward as a blurred and powerful pattern. — Annie Dillard, The Writing Life

I haven’t actually read The Writing Life before. I found this quotation (and many others from the same book) in a Brain Pickings post from 2013. Maria Popova, the brain behind Brain Pickings, has her own quote-worthy moment when she describes The Writing Life as being about, partly, “the tradeoffs between presence and productivity that we’re constantly choosing to make, or not.”

I struggle between those two poles regularly. “Struggle” is probably inadequate. I feel like a humanoid pinball ricocheting between them! On the one hand, I get things done pretty efficiently at work and at school; I don’t like procrastinating, and I prefer regular routines (I even go so far as meal-planning). On the other hand, no one has mastered the art of the slothful day like I have, and I often feel like certain private hobbies of mine — ahem, harp-playing at the moment — fall by the wayside as soon as something else comes up.

I try not to feel much guilt about any of that, but it would be nice to “catch my days” and “defend them from chaos and whim”! (Being a nerd, I immediately imagine a stalwart schedule errant waving a tiny sword in the face of all chaos and whim.)

So for this week’s blog, I’m taking a page from Dillard’s book (and Popova’s blog). I decided to try out the weekly schedule template that we recommend in-house:

My weekly schedule
My weekly schedule. Take that, chaos and whim!

Slick, huh?

Want one of your own?

The steps to make one of these are pretty easy:

  1. Include all your fixed commitments. For me, that includes work, class, and taking Millie out for herculean amounts of exercise (at least for me). The schedule’s earliest block starts at 8:30am, but I get up at around 7:20am to take Millie out for thirty minutes and get ready for work.
  2. Include health activities. Millie takes care of all my cardio, but I’ve recently re-discovered rock climbing so I’ve started going there on some evenings. I also love to cook so I give myself lots of time for that — but since I just cook for myself, I also end up with lots of leftovers, so major cooking nights only happen every other night or so. I also generally like going to bed at around 10:30pm on most nights. (Millie just goes out for a quick bathroom break before bed so I didn’t bother putting that in the schedule.)
  3. Include all regular homework hours. I have about one assignment in my class every two weeks, pretty short readings, and I committed to writing review notes every weekend.
  4. Include all flex commitments and down time! I scheduled in my weekly meal planning and grocery-shopping, but apart from that, I just left a lot of empty space to schedule as I see fit. Things like laundry, friends, Skype, phonecalls, housecleaning, general doggy errands like nail-clipping and baths, probably lots of things I’m forgetting.

When I help a student make a schedule like this, the process often helps them feel a greater sense of control over their workload and their self-care. Once the schedule is complete, they can take a step back and evaluate whether they are over-committed or whether they truly do have enough time to finish everything they need to while still feeling like a human being. A lot of people prefer building schedules on their phones these days, which is fine, but I think there’s something extra soothing about writing everything out on paper and then colour-coding. (That may just be me.)

Looking at my own attempt here, though, I’m not sure that this schedule is a realistic portrayal of any one specific week. It might be because, for me, every week is pretty dramatically different due to the nature of my job; for example, my parents have Millie right now because I’m working most nights next week while we interview candidates for the volunteer program. Many students who use this weekly schedule create a new one each week, which allows them to make those changes as needed.

Generally I prefer not to schedule everything out hour-by-hour like that. What I have found works best for me, at least outside of crunch times, is to prioritize what needs to get done every week (on top of the obvious things like walking Millie or going to work). The interesting thing I’ve found is that this list has evolved to include really important self-care activities I’ve learned about myself over the years, too:

  • Do homework and review notes by Sunday night
  • Plan meals and buy groceries every weekend
  • Have a good conversation with a friend at least once every three days
  • Do one super-fun and exciting thing per week
  • Be at home, on average, for three of five school nights (to hang out with the hell hound)
  • Save at least 30 minutes before bed to read

This list doesn’t sound like much. I suspect a lot of it comes from the fact that my current job is so social during the day that, being a secret introvert, I often feel burnt-out in the evening. It’s so tempting to just stay in and veg — especially when the weather is really icy and cold out, since I don’t have a car.

However, when I don’t have a nice and chewy conversation with a non-work friend for more than a couple days in a row, I start feeling pretty blah. The same thing happens if I don’t raise my heart rate a couple times per week doing something more active.

And for those of you who care more about “productivity” than “presence,” my productivity always dramatically decreases when I’m feeling blah, too. So taking care of my own wellbeing and connection with others actually improves my ability to do homework and review notes, too!

(I actually dislike thinking about wellness in terms of how productive it’ll make you, but that’s a blog for another day.)

Even if an hour-by-hour weekly schedule isn’t for you, I encourage you to think about a) how you currently, actually spend your days, and b) reflect on whether you can or should make any changes to that routine, based on your mood or how satisfied you are with your work. You may find it helpful, like I do, to have an honest-to-goodness checklist of “things you must to to feel happy and fulfilled in your life” and then just work your way down that list each week. I find that if I don’t have a little checklist like that to remind myself of what’s important, I spend an awful lot of time feeling vaguely unhappy and then self-medicating in the evenings with some good ol’ Netflix … which really doesn’t help matters.

I realize that my artistic talent, at least when it comes to creating schedules, isn’t too great, so I want to leave you with a much more beautiful way to think about time. (Imagine how much time you’d need to make one of these puppies!) Here is the Visconti Book of Hours from the late fourteenth century:

Hours of Gian Galeazzo Visconti
Hours of Gian Galeazzo Visconti