Discussions at Commonwealth have a sneaky habit of wandering out of classrooms. Whether it's debating Romeo’s decision-making skills, unpacking resistance movements in colonial Central America, or finding problems that don’t conform to the Church-Turing thesis, these spirited chats spill out into the hall, follow friends to lunch, and stick in your head long after the day is done.
If you’ve never experienced the logical beauty of a programmer’s brain, tune into this convo between Anna ’26 and computer-science teacher Matt Singer. They recently sat down to reflect on Anna’s first year of computer-science classes, how they gave her new calm and confidence when solving problems, and her tips for other students hoping to follow in her footsteps. Plus, Anna puts Mr. Singer on the spot with some tough questions of her own…
Mr. Singer: Was CS1 [Computer Science 1] your first programming class ever?
Anna: Yeah, I actually had no prior experience in computer science before coming to Commonwealth. I really enjoyed [CS1], because there was a lot of pure logic behind it, and it really made me think about problems in a more logical way. And I just like the creativity of the problem-solving process. In programming, all we do is solve problems!
Mr. Singer: How do you think logic and creativity meet each other in computer science?
Anna: Well, when you're faced with any problem, it takes imagination and thought to come up with a way to solve it. But in CS, the way you actually perform that thought process is by writing the code. That takes logic, because everything is done chronologically in programming.
Mr. Singer: You said CS1 also changed the way that you look at other problems outside of CS; do you have an example?
Anna: I'm just more calm when I'm faced with a problem now. I think about the steps to fix it instead of just, “Oh no, there's a problem!” My thoughts are much more organized.
Mr. Singer: That's awesome! That's my dream for the class. What was the experience of taking CS1 like?
Anna: It was very hard at first! Because it was a new way of thinking. My brain doesn't think in DrRacket [a student-centric programming language] in my daily life, and there was so much I didn't know, like what really counted as “data.” And some of the homework was very challenging, but it really taught me to believe in myself. Like, a problem no longer seems impossible when I look at it from a logical standpoint.
Mr. Singer: You also have a particular drive to keep improving your code. I remember giving you a perfect score on one assignment—and then you’d keep tweaking your code to make it even better! What drove you to make those changes?
Anna: Because programming is all about efficiency and solving problems in the best way possible!
Mr. Singer: Ah, okay, cool. That makes a lot of sense. How did your experience of the class compare to your expectation of it going in?
Anna: I honestly didn't have many expectations, because I'd never known programming or CS before. But it was a lot more fun than I expected, because we got to manipulate all of the code that before I thought was very routine.
Mr. Singer: Awesome! As someone who hadn't programmed before, what do you think really helped you succeed in the class? What tips might you have for other people who want to do the same thing?
Anna: I would just say, Don't focus too much on the nitty-gritty details. Like, don't forget the big picture: you're coding to solve a certain problem. And if you're too focused on the code itself, without thinking about the “why,” then you lose your purpose.
Mr. Singer: Wow, great advice! One big component we haven't touched upon yet is thinking about code as a piece of communication—code not as it relates to computers but as it relates to human beings. What are you looking forward to in future computer classes?
Anna: More exposure to different languages and more practical coding. And it would be great to have an interdisciplinary class, like coding for other sciences—biology, for example. I think that would help broaden our views on what computer science really means in this world.
Mr. Singer: Gotcha. Yeah, Ms. Sundberg and I have dreams about offering a bioinformatics class; whether or not that will actually happen is to be determined! But I agree that it would be amazing to have some upper-level interdisciplinary computer-science courses, because after CS3, you guys would know enough to be able to do that. You said you were working on some Python on your own already; how have you found learning Python, having taken CS1?
Anna: It was a lot easier than I expected. Because the computer-science courses here are really advanced, they prepare you well for other languages. I already understand the basics, so learning a new language is just like translating what I already know.
Mr. Singer: Good! The hope is that the skills you learn in CS1 and CS2 will let you take on any code base in any language, because we spend so much time talking about problem solving and less about specific languages. Like you said, coding is just a tool for problem solving! So what else would you tell incoming students about the CS program here?
Anna: I would tell them that it's not easy! But you have so many resources around you, and everyone is really supportive. So just don't be afraid to ask questions.
Mr. Singer: Yes, that's certainly the intent: we’ll always answer questions. Speaking of which, any questions for me?
Anna: Hmm, how has the CS curriculum changed over your years here and why?
Mr. Singer: Okay, so this is my fifth year teaching CS1 here. Interestingly, when I came to Commonwealth, they were already teaching DrRacket in CS1, but there wasn't as much of an emphasis on the systematic problem solving that you referred to. So I overhauled that class to focus on program design, and I overhauled CS2 to be a more direct extension of CS1, just moving from DrRacket to Java. And then in CS3 and CS4, we learn all new things. I don't actually know what CS3 was before, but now it's a theory class all about connecting CS and math. And CS4 used to be an independent-study course, but now we're designing programming languages in DrRacket.
Basically, the CS classes get increasingly complex, and you get to see the design choices that go into making programming languages, which will help you better understand how they work, because they’re your main tools as a computer scientist. You learn to ask more intelligent questions about what programming languages do, for what purpose, and why. So that is the story of the CS curriculum. It all comes full circle.
Anna: That makes sense. Do you think that having more exposure to how the design works helps us think more innovatively?
Mr. Singer: Yes! You were talking about how picking up Python was easy for you. It’s easy because we spend so much time talking about problem solving and designing programs. The language that we use in CS1 is deliberately minimalist, so we can spend more time talking about thinking and relatively little time talking about coding.
Anna: Because coding is really just putting your thinking into a program.
Mr. Singer: Yes!
Anna: Why do you think learning computer science is important?
Mr. Singer: [Pauses] Like you said, learning CS gives us a new way of thinking and knowing how to systematically problem solve. So that's reason number one. Reason number two is that we live in a world with technology all around us, and understanding how to use technology intelligently is a form of literacy. Being computer illiterate today puts up a wall between you and so much of what's going on. So the goal is to empower students to be able to branch out into whatever opportunities they so choose. And as you said, Anna, we can use the problem-solving skills anywhere. So no matter what a student does, I want them to know that programming is a tool they can use, even if they're not making software. A student once told me that the design recipe we learned in CS1 changed the way they do laundry! That's one of my favorite stories. And that's what I want students to really walk away with: knowing how to think better.