Uncommon Conversations: Upending the Computer Science Status Quo, with Lizzy ’24 and Mr. Singer

When it comes to computer science, Lizzy has never been one for norms, from programming her way around the famous “dollar-word” challenge as a fourth grader to applying to computer science (CS) university programs in Ireland and Great Britain as a senior to signing up for Commonwealth’s notoriously difficult Designing Programs class in the middle of the pandemic. Listen in as Lizzy and computer science teacher Matt Singer reminisce about her earliest days in programming and look ahead to her future—a future, she hopes, defined by problem-solving and gender parity in every computer lab. 

First, a quick primer on Commonwealth’s computer science curriculum progression, so you can follow along in their conversation: 

  • Year one: Computer Programming Essentials or Designing Programs 
  • Year two: Designing with Classes
  • Year three: Computer Science Theory
  • Year four: Programming Languages

Now, onto their uncommon conversation...

Mr. Singer: How is your college search going?

Lizzy: I've been doing a lot of reading! I'm applying to schools in the U.K. and Ireland, and you have to apply directly to an academic program. I've been looking into computer sciency things. 

I learned that, at least at some universities, if you’re in a software-focused program, you’ll do introductory programming classes for your first year, then two years of software-focused classes, and your more advanced classes have to be software engineering oriented, too. But if you’re in a more general CS program, you can take software engineering, AI stuff that’s more data oriented—there’s a lot more freedom. So that's what I've been leaning towards, especially because of all the programming I’ve done at Commonwealth. I would much rather get to take a bunch of different classes and then decide what I like and want to spend more time learning about.

Mr. Singer: Yeah, your first two years of computer science here are designed to be a very thorough introduction to programming and a lot of what you would get in your first two semesters in any of those college programs. Because if you want to study theory or software design, you have to be a good programmer—which is why we spend so much time on it. 

Were there any future college classes or tracks that jumped out to you?

Lizzy: Nothing sounded particularly perfect, partially because it all sounds pretty interesting. I like combining computer science with other things. I think that's part of why I like CS: because you get skills you can apply anywhere, and you can do a lot with them. 

Before Commonwealth, it was exciting to dabble in programming through little Arduino projects and a little bit of Python, among other things. When I was in fourth grade, we read this book called Because of Mr. Terupt, where he asks all of his students to find as many “dollar words” as they can. Dollar words had values that corresponded to the letters alphabetically, like an A equals one, B equals two, et cetera. And you were trying to get to 100. We did this competition to see who could come up with the most words, and with some help, I wrote a little program that would do the dollar-word math for you. 

The first two years of CS at Commonwealth are so interesting, because you're learning skills and then, as you get better at them, you can apply them to problems that make increasing sense to be solving. Like in Computer Science Theory last year, we did the knapsack problem: if you have a bag that only holds so much weight, and you have things with various weights—maybe you're hiking and you need food and water and a book—how can you maximize stuff in the bag? You can apply all of this math and write programs that figure it out a lot faster. That was fun. 

Mr. Singer: Yeah, every item not only has a weight but also a value, and you have to maximize the value. 

Lizzy: Our class just refused to make it a knapsack! We changed it to grocery shopping—

Mr. Singer: And then to robbing a store! Do you remember what category of problem it is?

Lizzy: A greedy problem?

Mr. Singer: Actually, it fails to be a greedy problem, but you can verify it quickly in terms of runtime.

Lizzy: Is it NP complete? 

Mr. Singer: Yes! 

Lizzy: Which makes no sense at first! But then we did all of these NP-complete problems, and it started to make sense over time. Or at least that's how it happened for me.

Mr. Singer: Yeah, that stuff will probably be in one of the more upper-level classes of the colleges you’re looking at. But I think it's fun! 

At the beginning of the year [in Computer Science Theory], we did a lot more abstract math, things like comparators and relations between sets. Then by the end of the year, we're solving very weird problems, and we can understand why we can solve them and how we can solve them best. The optimization part kicked in. And now I understand why we spent so much time talking about the abstract stuff.

Lizzy: One of the great things about CS at Commonwealth is that we get to do really hard college-level learning and material, but we're learning things that are very interesting. Most teenagers are not set up to be able to learn weird computer science theory, and we just get to do that. We’ll be like, Oh, that sounds fun; should we talk about it more?

At the beginning of the year [in Computer Science Theory], we did a lot more abstract math, things like comparators and relations between sets. Then by the end of the year, we're solving very weird problems, and we can understand why we can solve them and how we can solve them best. The optimization part kicked in. And now I understand why we spent so much time talking about the abstract stuff.

Mr. Singer: Good, I'm glad to hear that. In computer science, there really is the applied and the theoretical, and most people here want to do both. And being able to really understand what is going on in your software will make you a better programmer, which is why we spend so much time training the mental discipline here around not only good programming habits but also computer science theory.

Lizzy: Like, you can take a problem and prove that it's impossible to solve, which is just exciting and weird. It feels like a secret of the universe in a lot of ways and so much fun. I'm excited to see how useful all of the logic that we've been doing is used in Programming Languages.

Mr. Singer: Yeah, I would say Programming Languages [the highest level class] is taking all of the programming skills you learned in the first two years, and applying them to the hardest problem we've seen yet, which is building a programming language. And you have an understanding of how the syntax of the language is structured, because you took Computer Science Theory. The first family we learned was regular languages, any language that can be described by a DFA.

Lizzy: Yes, deterministic finite automaton. I forget if there's something before NFAs…

Mr. Singer: We proved NFAs are non-deterministic but are equivalent to DFAs, because we can convert from an NFA to DFA. 

Lizzy: That's very next level!

Mr. Singer: That's why it takes us four years to get there!

Lizzy: You chose the right year to introduce it. It’s exciting that we have the new CS level [Computer Programming Essentials], too.

Mr. Singer: Yes! Why do you think it's very exciting?

Lizzy: Even before I started taking CS at Commonwealth, I heard it was a hard class and that a lot of people drop it because it takes up a lot of time. That was during the pandemic, and I still took it, but I was nervous, having been told it's a lot of work, especially for a ninth-grade class. But I think there's been a lot of research that’s shown that many students, particularly girls in STEM fields won't take classes they think they won't be able to make it through. And I'm hoping that this newer, more palatable intro to computer science will both get more girls who are interested in CS to sign up—and generally more people who are interested even if it’s not necessarily what they want to do in the future. It will just make it easier for more people to take CS and enjoy it, and not be scared to try it, which is great. Because CS is really hard! For me, it's very worth it. 

CS has pretty much always been one of my favorite Commonwealth classes, and it’s something I spend a lot of my time on, even when I don't need to. That's not true for everybody who's been taking CS with me for the past three years, but I think it says a lot that everybody who finished Computer Science Theory last year is taking Programming Languages now. That's pretty wild. After going through three years of CS classes, we’ve become attached to it, which is brilliant. And I'm hopeful that more people will get that opportunity, particularly more girls. That's just really exciting.

Explore the Computer Science Curriculum