What I Learned While Completing My MS in CS

Julie Gauthier
Julie Gauthier

--

I never planned on furthering my education beyond a BS. I’m a software engineer who prefers working with start-ups; there’s not a huge benefit to having graduate degrees. However, it’s awfully hard to say no to “free.”

As an adjunct professor at Pace University for over a year, I was eligible for full tuition remission (thank you, Adjuncts Union!) for an MS in Computer Science. I would only have to pay taxes on the tuition, and would still be earning money as an adjunct with 3 courses a semester. I’ve been living with my parents, so I didn’t have to worry about making enough money for rent (thank you, parents!). I also found that I could take all of the classes that I needed online, so the fact that I live 4 hours away from campus wouldn’t be a problem either. When an opportunity like that falls in your lap, it would be silly not to take it.

After a year of teaching at a university level, I realized something that everyone close to me seemed to already know: I want to be a teacher. After consideration, I determined I want to continue teaching at the college level. I love the freedom that it affords to keep up with the most cutting-edge knowledge in my field, the freedom to try out different teaching styles and work independently with students to get the best outcomes from them, as well as the flexibility of time. I will need a PhD eventually to teach at a high-level university. I plan to pursue a PhD in the next few years. In the meantime, having a Master’s degree will allow me to teach at community colleges and technical schools.

Since I would be completing the MS in Computer Science program at my alma mater, I imagined that a lot of my classes from my BS would transfer and help me to complete the MS program quicker. However, I still had to complete 30 credits, with fewer classes available because I had taken several combined BS/MS classes as an undergrad. As long as I didn’t have to take that database class over again, I suppose this is alright.

My first semester, I took Distributed and Parallel Computing, Intro to Data Mining, and Android Development. All of the courses were online. Online classes are not for everyone, but I prefer independent, self-paced learning, so I don’t mind them. The first thing that I learned was that I still HATE mobile development. I hate it so much. I thought I might give it another chance. I still hate working on tiny screens, I hate all of the dependencies and bloat of all of the tools involved with mobile development, and I hate the Android Studio IDE (still not as much as I hate Xcode). Fortunately, there turned out to not be a whole lot of actual Android development that happened in this class, but general concepts around how apps work.

Parallel computing was challenging. This was part of my knowledge base that was definitely lacking from undergrad. The course was mostly in C, which deals with the very low-level architecture of computers that I had only just started to gain an appreciation for as I’ve forayed into microprocessors as a hobby. It’s hard to make different processors talk to each other, but it’s so important to enhancing computing capabilities as we move forward with more powerful computers and applications of computing that require immense amounts of computing power.

I loved data mining. We used Weka to try out different classifying algorithms on some large datasets to find what algorithms could return the most accurate results for the different kinds of datasets. This made me wonder about ways that we could apply machine learning to determine in advance what algorithms might be best for different kind of datasets and automate that decision. It was so cool to be able to use computer science to pull meaningful conclusions out of huge chunks of unreadable data.

Over the summer, I took three more classes, Unix and Linux programming, Internet Computing, and Web Computing. Internet Computing was easy and fun (I’ve been a web developer for a while now, so nothing too new here). Unix and Linux programming was helpful for figuring out how to write some scripts and commands to automate some of the nonsense that I do on a regular basis. Web computing was mainly in Java, which is my last choice for web programming, when there are now so many great solutions for building web applications with languages designed for that purpose, like JavaScript. It’s sometimes interesting to look at a different way of doing things, though I’m not convinced that we’ll be running back to Java Applets anytime soon.

At the end of the summer I also started my thesis and picked a two more classes to complete my coursework. For my final semester, I took Networking Security, which covered quite a few current and relevant cybersecurity threats. There was some interesting discussion in the course about what we might be able to do to prevent cyberattacks. We went over a few, in my opinion, novel designs for security systems, and how to try to shore up the consistently weakest point for security in any system: the end user.

Having taken Artificial Intelligence as an undergrad, and enjoying Data Mining so much, I wanted to complete the AI concentration. However, I learned that would not be possible for me, as the BS/MS AI class that I had taken as an undergraduate wouldn’t count towards the concentration, and I would have to take a PhD-level course to have it count as the MS section of AI. This ended up presenting an exciting opportunity to work with one of my favorite professors, as I was unable to enroll in the PhD section. There were still a lot more concepts about AI that I needed to wrap my head around, and we put together a plan for coursework. Finding it all so interesting, I decided in the middle of the semester to apply to an entry-level job for cognitive computing.

I got WALLOPED on the interview. I failed miserably. I mean, I’m thrilled to have gotten one of the coding challenges to work. Out of the 8 questions, I got that one coding challenge, about half of another one, flubbed the third one, and then flopped my way through 5 questions about machine learning and neural networks for the next three hours. I knew I was not only in over my head, but had completely drowned when I got the question “Describe the differences between several different kinds of neural networks.” and all I could say was “There are different kinds!?” However, trying and failing at the interview was the best thing that could have happened, because I learned where my knowledge gaps were. I went back to my AI professor, and said “I want to learn this,” and so we put together a new learning plan that helped me fill in the holes and I wrote my final paper on comparing and contrasting different kinds of neural networks.

I opted to write a thesis on individual research rather than take a capstone course. I had no idea what exactly I wanted to do that research on, but I knew that I had more than enough interests to pick from. I love building things, and thought I might like to do a robotics project, so I chose to work with an advisor who I also work with on youth robotics programs. We couldn’t come up with a robotics project, and Dr. Kline seldom tells me “No” when I want to build something, so I decided to build a Smart Mirror and write my thesis on that. Looking back now, I can’t believe how wrong my approach to my thesis was. I had no idea what a Master’s thesis was supposed to be like, what field of research I was even addressing, or how to go about writing a research paper.

I had high aspirations for how I was going to build this Smart Mirror — I was going to build the whole interface, use new, fancy IoT protocols on my extra-cool new ESP8266 Huzzah board, I was going to integrate facial recognition to show the right information for the right users, and I was going to use two cameras so that I could apply funny filters to the users’ reflections. I still think this Smart Mirror would be awesome. However, the basic function of a Smart Mirror is to provide information to a user while they’re looking in the mirror, so that’s where I started. I determined what information I might like on the mirror and how I might use it, then administered a survey that received much more response than I was anticipating (thank you, everyone who took that survey!).

As it turns out, I didn’t use the Smart Mirror at all. I don’t really look in the mirror very often — maybe 3 minutes a day. I was initially addressing the question of how to design a useful, consumer-grade Smart Mirror. What I found was that the patent was already owned by HP and they were not using it. Despite that, there were a few indie developers and small companies who were trying to market a consumer model Smart Mirror. They’re always a hot topic at consumer electronics showcases. They’re beautiful additions to a “smart” home ecosystem. What are they all missing that has prevented them from getting to market at a mass scale? Are the customers not biting?

Because most of the research done here hinged on the survey that was administered in the last month of the semester, I had a major crunch to try to get a draft completed, and present it to a panel of readers. My mom came into NYC with me for the thesis defense. That morning, my advisor sent me a message telling me as nicely as possible that my paper didn’t make a whole lot of sense and it didn’t address a real research topic. The presentation was similarly a mess. To be totally honest, I was extremely embarrassed, especially with my mom in the room. I was still totally unclear on what my thesis was even supposed to be, and frankly wanted to scratch the whole thing and go back and take a capstone course. I got a bunch of mixed feedback from my panel that also didn’t quite know what to make of what I had presented. This failure prevented me from graduating when I had anticipated.

During winter break, the last thing I wanted to do was start writing about the Smart Mirror again and try to turn it into a coherent research paper, if that was even possible without starting completely over with a different topic. I had an incomplete grade for the thesis credits that was quickly turning into an F, and I didn’t know how to stop that. This meant that I would not be able to send my transcripts, should a job application request them, and I wouldn’t be able to teach, or move forward academically. I had stuck myself into a corner.

Through a lot of tears, I rewrote the paper, looking through the research that had already been done by academic institutions on Smart Mirrors, and addressing the question “If there was a consumer model of a Smart Mirror, how would it be used?” I had missed my mark for graduating in under a year, but I got it done, formally, on March 29th.

However, this was not the end of my experience as a graduate student. Because of my intention to complete a PhD in Computer Science down the line, I was granted a full scholarship to attend CRA-W’s Grad Cohort in San Francisco. The intent of the conference was to provide the necessary knowledge and network to encourage women pursuing graduate degrees in computing to stay in their programs and complete them, despite the many obstacles that they face. I wasn’t sure exactly what the nature of the workshops would be, or what I would be able to take from them having just wrapped up my master’s degree, but hoped that I might be able to hear from some university’s about their PhD programs and meet some professors with whom I would like to do some research with.

I learned so much in the day and a half of workshops and poster sessions. I only wish I had learned it a year ago. I learned how to approach research, how to go about getting papers published, why that’s important, how to find a research lab, and how to apply for academic and research-oriented jobs. I met a ton of wonderful women from all over the world, who were passionate about improving the world through cutting-edge computing research. I was able to contextualize my experience at Pace, both as a graduate student and an adjunct professor. And I realized that my program at Pace was pretty great. My thesis ended up being pretty inline with the research expectations for master’s students, thanks to Dr. Kline and soon-to-be Dr. Sarris pushing me to bring it up to a much higher standard. I had the opportunity to take interesting classes with some professors that I really liked, and learn very practical skills. I got to work with an advisor who cares about my research and future success, and has become a mentor. Not everyone I spoke with at this conference was as lucky.

I’m now formally graduated with my Master of Science in Computer Science. Thank you so much to Pace University and the Seidenberg School of Computer Science and Information Systems for providing me with the opportunity to keep learning and reaching higher while I’m doing what I love with the students I care about. Thank you to Dr. Kline and Stacey for being mentors both in my academic pursuits, and in teaching. Thank you to my parents for watching little Douglas while I had to go into NYC to get things done. Thank you to whoever sponsored my scholarship to attend the CRA-W Grad Cohort and the women there that shared their experiences. Thank you to all of my students who bared with me while I was working on my own classes, and took interest in all of the new things that I was learning that I just HAD to tell you all about. I need to take a little time now to work on my professional goals and make some money, but then someday you’ll be calling me Dr. Julie.

--

--

Julie Gauthier
Julie Gauthier

Web developer fueled by ska punk and pirate metal, passionate about empowering others with tech @Codapillar