Developing More Than Just Techies …

One of the distinguishing features of a Hope College education is the effort our faculty and staff make to help ensure that students think about more than just the technical aspects of their computer science education.  One way we have been doing this recently is in our “Exploring Computer Science” course by having students read and discuss two books that examine the societal impacts of technology, both on those who use or are otherwise affected by it, and on those who design and create it.

The two books are Weapons of Math Destruction by Cathy O’Neil, and Technically Wrong: Sexist Apps, Biased Algorithms, and Other Threats of Toxic Tech by Sara Wachter-Boettcher.

Weapons of Math Destruction Web SiteLink to publisher web site for Technically Wrong

O’Neil’s book takes a look at how our increasing reliance on algorithms to make decisions has unintended impacts, particularly when those algorithms have biases encoded in them, either intentionally or unintentionally.  Wachter-Boettcher expands on the issues explored by O’Neil by looking at how the lack of diversity in the tech workforce might contribute to the problems caused by these algorithms.

Rather than tell you about these books myself, however, I’m going to let you hear from two students from the fall 2018 offering of “Exploring Computer Science,” Cy Balk and Kyle Ross.  In addition to reading one of the two books and writing a review, each student in the class was paired with a partner who had read the other book and tasked with creating a “podcast” episode where each played the role of their book’s author in a discussion about the two book’s content.

Though both Cy and Kyle are male students playing the role of two female authors in this podcast, the lessons they learned from this project transcend gender. They did an excellent job exploring the ideas in the two books and discussing them in an engaging way.  Take a listen!

Wrapping it All Up

(This is the third and final post in a series by Joe Bustamante, a Hope senior who spent the summer as an application development intern at Open Systems Technologies in Grand Rapids, MI.  In this series, Joe describes his internship experience and how it relates to his learning at Hope College.  Our apologies for not getting this one out sooner!).

It’s odd to think that school is back in full swing and I now have homework and other responsibilities that weren’t present this summer. The first week of classes may have just finished, but my mind is still partly in a summer mindset, especially when it comes to software development. I finished up my internship at Open Systems Technologies just a few weeks ago, but I’m still thinking about the opportunities I had there and some of the things I learned in the process. As I start up another school year and attempt to put many of the skills I practiced this summer into effect here at Hope, I’ve realized I can sum up some of what I learned this summer into three big takeaways.

The first big thing I realized from my internship is that application development is a team job. For the most part, any software system with even a mediocre level of complexity or size requires a team of people to build and maintain. As I worked on some larger systems this summer (at least, larger than some of the projects that you typically get assigned in classes), I realized how necessary it is to have good communication with your team. The only way to keep so many moving parts working together is not only with good architecture and design, but also maintaining constant communication throughout the development process. Any project that involves more than a couple branches of work necessitates that those branches have both a clear vision and purpose, as well as a cohesive way to handle any conflicts that arise as those branches are continuously merged back together.

Part of this first realization was also coming to understand some of the differences between the two main fields of development work: consulting and product. In consulting, communication is crucial since working with clients and meeting customer demands on a regular basis is key. Especially in a place that develops with an agile or agile-like methodology, and where regular demos and constant gathering of requirements are important, communicating effectively with both your team and a customer is an invaluable skill. That isn’t to say that communication isn’t also an essential skill in product development, but it takes a different form. The focus tends to be less on communication with the customer and more with your team and the rest of your organization, unless customer relations is part of your role. Either way, it’s important to think about what kind of a team dynamic you want to work with when trying to find a job as a developer. For me, I think this summer has shown me that working as a consultant on a small team within an agile methodology is one kind of dynamic I’m comfortable in. However, that might not be true for other people, and thus it’s important to try and get a feel for that dynamic at a potential workplace.

The second important realization I had this summer, and one which I’ve talked about a lot in previous posts, is the importance of continuous learning and question asking. There’s always someone who knows more than you or is more experienced than you. Seeking those people out to grow your own understanding is a valuable part of the of software development. Besides the actual programming and designing I did this summer, one of the main ways I learned and grew was from looking at the code that other people on my team had written, especially the more senior developers. Seeing the ways that other people solve similar problems is a great method to grow your own understanding. Code reviews work in tandem to this. Having other people look at your code and ask you why you did things the way you did is good practice for making you think about your decisions. Additionally, it lets others show you any of the potential errors or bugs you may have missed.

That said, it’s also important to have confidence in your ability and voice any questions you may have about the work of others, even if they may have more experience than you. At the very least, asking about things that don’t make sense to you will help you understand better, and it might even possibly uncover a bug or mistake in your team’s code that others didn’t realize. Imposter syndrome is a very real thing in the development field, and something that doesn’t always go away, even as you gain more experience. As most people who have ever been in the position of being the “expert” on something know, the pressure you feel when everyone looks to you for answers is often times even greater than what you feel when you just start out learning something. All that to say, never be afraid to ask questions and be confident in your own understanding of programming and the disciplines that surround it, and seek out the knowledge and advice of others whenever you can.

The final important lesson I learned this summer is the importance of understanding the field of computer science and software development as a whole. Certainly, most people who take a course in data structures, for example, won’t have to implement their own red-black tree. That said, there were a number of times this summer where I benefited even indirectly from a lot of the learning I did at Hope. One primary example of that is working with JavaScript for the first time this summer. Though I had never really worked with JS before, I had already been exposed to learning a number of different programming languages at Hope, and it helped make the process much easier. Additionally, JavaScript has started to include a lot of functional elements that my team was making use of. Because we had spent time learning about the functional paradigm and what some of its strengths and characteristics were, it made it a lot easier to learn that element of the language.

This doesn’t mean that you need to have a formal degree in computer science, of course; plenty of developers are self-taught or never went to college. However, the fundamental theories behind programming and computing that are taught in a computer science curriculum are invaluable to creating good software and making smart design decisions. Even if you don’t directly use some of the knowledge you gain in more specialized systems, the process of learning those things itself provides a huge benefit when it comes to learning new technology. And you never know – you may just have to work with some framework or technology that uses some of what you learned under the hood. That was also the case for me this summer. As my team was developing the Alexa skill and our cloud backend, we were using a lot of promises and asynchronous frameworks. Though my experience with asynchronous programming was minimal, and I had never used these frameworks before, the learning I did in my advanced algorithms class helped me understand what was going on in the background and fix some bugs when they came up. Even though I didn’t have to actually implement any parallel or asynchronous functionality besides what the frameworks provided, knowing how those concepts worked allowed me to find bugs and use those frameworks more effectively.

It was an incredible opportunity to be able to work at OST. It’s hard to sum up everything I learned into a single blog post, but I think these three things encapsulate the summer well. Spending a summer working on a team and developing an actual product has helped me realize that software development, and especially consulting, is something that I would love to do as a career. Being able to gain hands-on experience through an internship was a valuable way for me to come to that realization about software development, and definitely something I would recommend to anyone else interested in the field.

Students celebrate women in technology at Grace Hopper Conference

On October 4-6, the department sent eight Hope Computer Science students and one faculty member to this year’s Grace Hopper Celebration in Orlando, Florida. The annual conference is the largest gathering of women in technology and is a great way for attendees to build their networks and celebrate the accomplishments of women in computing. This year, around 18,000 people attended the conference and were able to hear from inspiring women, such as keynote speaker Melinda Gates.

Melissa Bazany, a senior from Howell, MI, majoring in communications and minoring in computer science, was first drawn to computer science by web design, which provided a way to combine her communication design skills with logical thinking.  When asked to reflect on her experience and what she felt was most valuable about the conference, Bazany said, “Meeting new people led to learning new perspectives and takes on topics to help me learn more; with that, the willingness the people had to help students learn more there.”

“It’s really inspiring to see so many women coming together from an industry where you don’t actually see that many women in a single group. It’s a great place to begin networking and start searching for job opportunities while learning more about the industry,” said Joanie Davis, a senior from Caledonia, MI, majoring in computer science.

Amber Carnahan, a senior from Howell, MI, double majoring in English and computer science, commented on the wide array of speakers and attendees. “I loved hearing the multitude of ways that women used their computer science experience and the various careers they pursued. It showed how flexible computer science is and that the future can hold many possibilities.”

Attending the conference helped the students gain confidence in their abilities in Computer Science, and all of them came back with encouraging words for other young women who might be considering Computer Science.

“If you’re interested in CS, study it! Even if you eventually decide it’s not for you, you’ll gain skills that could prove invaluable to you, just in basic understanding of how technology works. And if it does click for you, then you’ve found your passion in an amazing field!” — Joanie Davis

“It sometimes can seem difficult and there’s a lot of men,” Bazany said, “but learning how to ask good questions and ‘holding your own’ in a traditionally male-dominant environment will prove to you that it’s just another area of study.”

Jori Gelbaugh, a sophomore Computer Science and International Studies double major from Galesburg, adds, “You are capable of learning computer science, regardless of your perceptions of what it is, and there is a large support network at Hope available in your process of learning.”

The CS department at Hope is committed to sending our young women to this conference each year, and to doing everything possible to provide a welcoming and supportive environment to everyone who is interested in learning more about what this exciting field has to offer.

Hope Computer Science students win best poster competition at conference

Students Amber Carnahan and Jori Gelbaugh won the best poster award at the 2017 Consortium for Computing Sciences in Colleges (CCSC) Midwest annual conference, held on September 26-27 at Calvin College.

Students Jori Gelbaugh (left) & Amber Carnahan (right) with their poster about their Articulus project at CCSC MW 2017.

Amber and Jori’s poster summarized their work on Articulus.  On their page at the Google Chrome Web store, Amber and Jori describe purpose of Articulus:

Articulus is a Google Chrome extension that improves the readability of online articles. 

... In plain English, Articulus makes reading online easier!

For students with reading or learning disabilities, reading online articles can often be challenging because of online distractions and difficult words. Articulus was created to give these students (and other readers) the freedom to easily read the articles they want.

Work on Articulus was completed during the summer of 2017, and was supervised by Dr. Mike Jipping.  Congratulations to the students and Dr. Jipping for their outstanding work!

Hope Computer Science student team create app to help people find each other on Hope’s campus

Student Grace DuMez presented the Pallist application to a group of students, faculty, and local industry professionals on August 2, 2017.  DuMez and her partner Michael Kiley (studying abroad in Mexico for Fall 2017) developed Pallist as part of the Summer 2017 Hope Software Institute under the supervision of Dr. Michael Jipping.  Pallist is an application that helps people find friends located in the same building on Hope College’s campus.

The students presented their work to a group of software developers from Atomic ObjectOpen Systems TechnologiesBluJay Solutions, and SpinDance.  After the presentation, the students, faculty, and professionals enjoyed getting to know each other over lunch.

Here’s a video of the students’ presentation:

Students in the Hope Software Institute create app to adjust reading level of web pages

On Wednesday, August 2, the team of Amber Carnahan and Jori Gelbaugh presented their work on Articulus, a Chrome extension whose goal is allow readers of a web page to adjust the reading level required to understand the page’s content.  Amber and Jori worked under the direction of Dr. Mike Jipping as part of the Hope Software Institute.

The students presented their work to a group of software developers from Atomic ObjectOpen Systems Technologies, BluJay Solutions, and SpinDance.  After the presentation, the students, faculty, and professionals enjoyed getting to know each other over lunch.

Here’s a video of the students’ presentation:

The Learning Never Stops

(This is part 2 of a series of posts by Joe Bustamante, a rising Hope senior who is spending the summer as an application development intern at Open Systems Technologies in Grand Rapids, MI.  In this series, Joe describes his internship experience and how it relates to his learning at Hope College).

One of the things that made me want to pursue computer science and application development is the amount of learning involved. Technology changes so rapidly that you constantly have to learn and evaluate new tools. Being a constant learner is one of my favorite parts of the job. Almost nothing is as satisfying as learning how to solve a problem in a different or better way than you had realized before. That first moment when everything comes together and begins to make sense is one of the best feelings in the world, and working in technology just means that you continually get to have that feeling as new problems arise for you to overcome.

That feeling has been a pretty big defining factor of my internship so far. In my first post, I wrote about how I was working on developing an Alexa skill to connect to devices via the cloud. Almost none of the languages or technologies that have been involved in developing the skill were things that I had experience with prior to starting at Open Systems Technologies (OST). I’ve had to learn a lot in the development process, and it hasn’t always been easy. There have been a lot of times where I’ve thought I did something the ‘best’ way, or that I was really starting to understand things. Almost every time I’ve felt that, though, there’s been a better way to do it. Whether that was something I realized on my own or was pointed to by someone else on the team, it can be a hard thing to come to terms with the fact that you still have a long way to go, especially after you’ve been working on something for a while. However, accepting that fact and fully embracing it as a learning opportunity has been something I’ve been constantly trying to push myself to do so far, and it’s opened the door to that incredible feeling that can only come through learning.

Out of all the things I’ve had to learn or get better at, the idea of modularization and decoupling stand out. When you’re working on a project by yourself, especially a small one, it may not be an issue if a lot of your code is coupled together or isn’t as broken up into individual files or classes as it could be. It certainly isn’t a marker of good design, but it might not hamper your program. However, working in a production level environment, establishing a codebase that many other people will have to understand and modify, and trying to write something that will stand the test of time and scalability all require decoupled, modular code. Before I started, I thought I was pretty good at breaking things up and writing programs in a way that was easy to understand.

Independent of how skilled I actually might have been – probably much less so than I thought – I’ve realized just how much room I still have to improve. I’ve had to refactor the code for the Alexa skill a number of times at this point, and each time it becomes way easier to read, maintain, and add on to. For this, I’m really grateful to the senior developers on my team who have been working at this a lot longer than I have. Having someone else look at your code can be a bit scary, but when someone more experienced than you walks you through it, it opens the door to things you might never have thought about. Having other people do code reviews and take the time to help me learn how I can be an even better programmer has been one of the best parts of the internship so far, and something I’ve really come to appreciate.

Learning to be a better programmer is also exciting when I think about my future – both in a more immediate sense as I come back to Hope and in the long run after I graduate. I know that what I’ve been doing at OST will make me a better student in a number of ways. For one, having actually worked in a production level environment will ensure that my coding practices will be at a higher level than if I hadn’t had my internship.

OST Interns volunteering with Friends of GR Parks

This means I’ll be able to design programs for projects in a much cleaner and more effective way than I would have before. Another improvement is that I’ll have a better understanding of the current landscape of technology and therefore be better able to choose technologies and languages to solve the problems I’m given. Coming into OST, it was a bit overwhelming knowing that I would have to work on projects at a scale much higher than I had before, and have to learn a ton of new concepts in the process. Now, having already had to do that, it will be that much less daunting doing it in the future.

As far as how my internship will help me post-graduation, it’s comforting knowing that I’ll be able to enter the job field already having production level experience at a well-established practice behind me. How many people in college can say that they worked on a team developing software that shipped and is currently in use by thousands of people? Additionally, I’ve been able to do a lot of work in the internet-of-things and cloud computing realm. When you look at the future of development, I don’t think there’s much debate that internet-of-things development is undoubtedly one of the most important and fastest growing fields. To be able to enter the job field having some pretty extensive experience working on those types of projects is really cool, and something I’m very grateful to OST for getting to do.

All in all, it’s been a pretty incredible experience so far. I think, when I was younger or just considering going into software development, I had this idea that the industry was somewhat cutthroat or that if I didn’t end up working for some well-known Silicon Valley firm, I wouldn’t really be successful. While there’s certainly merit to working for one of those companies, I’ve realized that the industry at large is full of incredible, intelligent people working on equally incredible projects. I’m not quite sure what my expectations were about what working at OST would be like, but whatever they were, they’ve definitely be firmly exceeded. I’m excited to finish it up strong, and then take those skills with me not only back to Hope but wherever I go in the future!

What It’s Like to Intern as an Application Developer

Joe Bustamante, ’18

Hi there! My name is Joe Bustamante. I just finished my junior year as a computer science and English literature double major at Hope. This summer, I’m fortunate enough to have the opportunity to intern with Open Systems Technologies (OST) in their Application Development practice. For those that don’t know, OST is an IT consulting company based in downtown Grand Rapids that works with businesses to solve whatever IT-related problems they may be facing. That may be setting up or managing a database, suggesting which cloud provider would be the best fit for them, or creating new software to meet one of their needs. As an AppDev intern, I’ll mostly be doing the software development aspect, creating whatever programs or apps companies need for their business.

I woke up the morning of my first day feeling both excited and incredibly nervous. Would I do well at OST? What if I don’t like working as a developer? Even the small things, like where I should park or whether I should bring a lunch or not, worried me. This was going to be my first major experience working on a team of other developers (who were probably a lot smarter than I am) and, like most people as they start an internship or new job, I was worried about not quite fitting in or performing as well as I would be expected to.

Fortunately, most of those doubts were put at ease within a few hours of arriving. As soon as I got to OST, the people that worked there welcomed us interns with open arms. There are four of us in Application Development, including myself, and within the first day we were all assigned to projects – not just typical intern things, like internal applications or coffee runs, but actual real projects for real clients. On top of that, the environment at OST made it easy to feel at home. Most people come in wearing jeans and a t-shirt, and are free to come in and leave whenever as long as they work a full week. The flexibility and easy-goingness at OST helps create a cool and unique environment where people enjoy coming to work, and it made it easy for us interns to feel welcomed. Another cool thing about OST’s internship program is that they assigned each of us mentors. These are senior developers within our project teams that are meant to be there to guide us throughout the summer, help us get up to speed on whatever technology we’re using, and answer any questions we have in general.

Even within these first two weeks, the amount that I’ve learned is incredible. I’m currently working on a team to develop a backend application entirely on Amazon’s Web Services, including their cloud/internet of things framework. The goal of my project team is to connect some devices being made by a company to the cloud, and I’m helping write the interface to do that, as well as develop an Alexa skill to allow users to interact with those devices. I’ll probably be working on this project for the rest of the summer, but will also be doing some work on other teams and projects as the summer goes on.

Looking forward, the main thing I’m looking to get out of my internship is to continue learning and gaining experience. Something that has struck me already is the difference in learning that happens in an academic setting compared to that in a work setting. At Hope, we spend a lot of time trying to understand the fundamentals of computer science and make sense of the discipline as a whole. At work, however, most of the learning I’ve had to do is more centered around which of the vast array of technologies, platforms, and frameworks is going to make the most sense to use on a project. You really have to take in to account which languages and services will be the best fit for what you’re trying to accomplish. There’s no doubt that a lot of this practical learning happens in an academic setting, but you really don’t get a full understanding of it until you encounter it in the workplace.

Through it all, though, one thing I’m definitely grateful for is how Hope’s computer science department (and my time there in general) has prepared me for this internship. At OST, we have interns from MSU, Michigan, Grand Valley, and lots of other big schools. I’ve found that my background at Hope has actually helped me be almost more prepared than I might have been at some of the bigger colleges. Hope’s emphasis on the liberal arts and holistic learning has especially helped me on the business side of the job. Since OST is a consulting company, we spend a lot of time working with customers and adapting to what they want. The classes I’ve taken for my English major and core requirements have really prepared me well for those types of interactions, and for how to communicate effectively in general.

On top of that, I’ve found that my computer science background has been more than adequate to prepare me for the job. Hope’s computer science department has done an excellent job teaching me how to learn and adapt in the technological world, which is something I’ve had to do in abundance these first two weeks. Because of the experience I’ve had working in such a variety of languages and projects, whether that be C#, OpenGL, Java, or C++, learning new languages and frameworks on the job is second nature. Hope has also taught me how to develop applications efficiently and in a way that’s easily maintainable. Overall, it’s been really cool getting to apply all the things I’ve studied over the last few years, and I can’t wait to see what the rest of the summer brings!

Computer Science students honored at Honors Convocation

Five Computer Science students were honored at the 2017 Honors Convocation ceremony held on Thursday, April 27 in Dimnent Chapel.

From left: Cole Watson, Aaron Green, John Dood, Joe Bustamante

Nathan Gingrich

The senior award recipients were Cole Watson, John Dood, and Aaron Green.  Watson, from Louisville Colorado, was awarded the Computer Science Senior Prize, a book award given to the graduating senior deemed to be the outstanding student by the faculty of the ComputerScience department.  Dood, from Grand Rapids, and Green, from Midland, were recipients of the David M. Boundy Award, which is a financial award funded by David Boundy and given to the person in the graduating class who is deemed by the computer science faculty to have the greatest potential for making future contributions to the field of computer science.

Bustamante (Williamston) and Gingrich (Potsdam, New York) are both juniors and were honored with the Russel J. Kraay Award, a financial award funded by Dr. Russell J. Kraay and given to sophomore or junior students who, in the judgment of the computer science faculty, have demonstrated excellence in the field of computer science.

In addition to the Computer Science awards, our students were well represented across campus as well.  Nathan Vance, a senior Computer Science & Chemistry double major from Holland, was the recipient of the George and Joan Zuidema Award, given annually to a graduating senior from the Natural and Applied Sciences division who has demonstrated excellence in undertaking and completing substantial research.   This award carries a cash prize of $1000.

Nathan Vance

Two Computer Science students received Philosophy Deparmtent awards.  Michael Kiley, a freshman from Muskegon, was named the sophomore recipient of the Charles E. Lake Memorial Prize for Philosophical Promise, while Evan Altman from Petoskey received the James B. Allis Philosophia Award.

Michael Kiley

Evan Altman

Congratulations to all of these students on their outstanding work!

Reflections on Hope from a graduating senior

Cole Watson, class of 2017

My four years at Hope have been some of the most transformative years of my life. Hope has helped shape me into who I am today and who I will be in the future. Hope has prepared me well for a life after college and I am forever grateful for all the many things Hope has done for me.

I was drawn to the people of Hope and I have come to learn that when I chose Hope, I was not choosing a place, but rather I was choosing a people.

I am from Louisville, Colorado and as such, I often get asked the questions, “How did you hear about Hope?” and “Why did you chose to come to Hope?” I heard about Hope from my Uncle who lives in Holland and went to Hope himself. My older brother also went to Hope and so I knew a little bit about it that way. The reason that I chose Hope, though, was that it was everything I wanted in a college. It had good class sizes, great academic programs, a football team that I could play on, and a vibrant faith community that would challenge me daily. I was also drawn to the people of Hope and I have come to learn that when I chose Hope, I was not choosing a place, but rather I was choosing a people.

One of the biggest aspects of my life at Hope has been balancing my studies with my athletics. I played football at Hope all four years and so every semester I always had to manage doing well in both school and football. For me balancing school and football really came down to time management.  Football forced me to be extra disciplined in my studies and to stay on top of things. This required a lot of effort on my part, but it was very rewarding as I was able to play the sport I love everyday while also getting a great education.

Along with being a part of the football team, I was also a member of the Emmaus Scholars Program. The Emmaus Scholars Program is a yearlong intentional Christian community that prays, eats, lives, and learns together. The focus of the program is on Christian community and Christian mission.  This program was the single most transformative thing for me at Hope. It was in this program that I was able to deeply explore my faith and what it means to be a Christian. It also helped me think deeply about my vocation and calling and how I might be able to use my skills as a computer scientist for the Kingdom of God.

Not only was I involved in programs during the school year at Hope, but I was also involved in some of Hope’s summer research programs. During the summer after my freshman year, I was able to work alongside Professor Jipping in the Computer Science department and develop an Android app. Our team created an app to help adults with cognitive disabilities ride the bus in Holland. This opportunity allowed me to grow more as a computer scientist than any of my classes have. I also was able to be a part of another summer research program during the summer after my sophomore year. That summer I did some mathematical/computer science research with Dr. Cusack (Computer Science) and Dr. Bekmetjev (Mathematics). That summer taught me how to think deeply about hard problems and how to accept failure as a step in a longer journey towards success.

The MaxTracks team, including from left to right, Victoria Gonda (’16), Cole Watson (’17), Dr. Mike Jipping, and Kalli Crandell (’16)

Hope College has been an amazing place for me and I am so thankful for the liberal arts education that I got. I was able to deeply explore my faith as a Christian while at the same time learning how to write mathematical proofs and program complex applications. My time at Hope allowed me to explore how all my interests and passions can be combined and explored together. Hope has given me the opportunity to ask deep questions and really explore who I really am. I am forever grateful for Hope College and the well-rounded education that I received.