Computer Science: A Story Told in C++

cs

I love learning languages, in part because language makes stories, and I love stories. Unfortunately, the programming language C++ was not really designed to tell stories. (At least not in this way.) Still, I gave it a shot in the image above.

If you can’t make any sense of that code, I’ll go ahead and translate:

Student* Sarah=new Student();
bool Should_I_Take_CS=false;
creates new object of class “Student,” called “Sarah” (me)
sets my preference to take Computer Science to “false”

I’m a Swarthmore student in my second-to-last semester. Before now, I had always assumed I shouldn’t take another Computer Science (CS) class. Sure, I loved the intro CS class I took as a freshman, but the second class was supposed to be different! It was supposed to be terrifying, impossible, and way too time consuming!

before

As a History major, my job is to sit in idyllic chairs and read books about ages past. No lab-work for me!

 Should_I_Take_CS=Sarah->Deliberate_Forever()  resets my preference to take Computer Science, according to the outcome of the method “Deliberate_Forever”

At the beginning of this semester, I moped around for days and days trying to decide whether or not to take CS35: Data and Algorithms, my second Computer Science class. “Don’t do it!” cried my friends who had taken the class. “You’ll never have free time again!” And “Do it!” urged my girlfriend, who graduated last year in Computer Science. She made the point that as a female, I’d been subtly and not-so-subtly socialized my whole life to believe I couldn’t succeed at technical things. Was that the root of my hesitation? And if so, was I really going to let that stop me?

Finally I finished moping, cried “DEATH TO THE PATRIARCHY!,” made peace with not taking Acting I, and committed to CS35.

 If(Should_I_Take_CS==true){
Sarah->Increase_Confidence();
Sarah->Increase_Skills();
Sarah->Increase_Animal_Crackers_Consumed_at_Help_Sessions();
Sarah->Decrease_Free_Time();
}
pretty self-explanatory?

Once I had committed to taking CS35, I quickly fell in love with it. (Good thing, since labs are 10-20 hours per week!) In contrast to the classes I take for my history major, CS35 is collaborative and hands-on; it’s about building things together, mastering skills together. I’m astonished by how quickly my class learns new material and how much we can do. Every week we each partner up with another student to produce a fun program: one that encrypts and decrypts texts, one that finds solutions to mazes, one that detects plagiarism, etc.

cs2

Because we totally need a program to solve this difficult maze.

More than anything, CS35 is a great confidence booster for me. I’m used to thinking of myself as technically incompetent, but as I move through the assignments, I realize that I can do these things. I’m grateful to the Computer Science Department for creating a supportive environment for students, including those who–like many women–are a little hesitant about their technical skills. Support is always available when you need it, in the form of optional tutorials, the class online forum, office hours, and help sessions. Best of all are the “Ninja sessions” twice a week, during which more advanced students (hired by the department as “Ninjas”) hang around to help us with our lab. It makes a difference to me that about half the Ninjas are women; it’s fantastic to have smart, confident female role models in computer science.

labpartners

After every lab, I force my lab partner to take a selfie with me. She looks increasingly thrilled, right?

 else{
Sarah->Take_Acting_I();
}
 provides an alternative to Computer Science

Because I chose to take CS, I gave up a chance to take an intro acting class. That’s one of the problems with Swarthmore: too many good classes to choose from, not enough time. But for now, I’m at peace with giving up acting. Apparently I’m happy enough to get my fill of storytelling through writing code!

Leave a Reply