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.
(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.
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!
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!
Five Computer Science students were honored at the 2017 Honors Convocation ceremony held on Thursday, April 27 in Dimnent Chapel.
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.
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.
Congratulations to all of these students on their outstanding work!
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.
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.
Collective Idea, a Holland software development company founded by 2004 Hope graduate Daniel Morrison, was recently named one of the 2017 “Michigan 50 Companies to Watch” by Michigan Celebrates Small Business. Collective Idea was founded in 2005, and has grown to 31 employees. They recently completed renovations to their space on the 4th floor above Butch’s Dry Dock in Holland.
In addition to Daniel, Collective Idea employs several other Hope Computer Science graduates, including Matt Slack, Michael Kopchick, Victoria Gonda, Kyle Magnuson.
In a demonstration of the friendly rivalry with Calvin College, Collective Idea’s Vice President Brian Ryckbost is a Calvin College graduate, as are many other developers at the company.
Congratulations to Collective Idea on this significant accomplishment!
We were excited to learn that Dr. Jim Boerkoel (’05) was recently awarded a Faculty Early Career Development (CAREER) award by the National Science Foundation, one of the most prestigious awards given to young faculty.
Planning is important for autonomous systems, and planning for the real world typically involves reasoning about uncertainty in perception, action, and how the environment will react to actions of the agents. This work will improve the robustness and reliability or plans in applications such as autonomous driving, automated warehousing, and personal robots by addressing limitations in how current planning systems handle real-world scheduling uncertainty. The research will explore fundamental questions such as: What makes a plan good? How good is it? How can we make it better? And, how should we adjust plans when faced with uncertainty?
After completing his undergraduate degree at Hope College, Jim continued his education at the University of Michigan, earning a Master’s degree in 2008 and his PhD in 2011. After a year as a Post-Doc at MIT, he and his wife Liz moved to California where he joined the faculty of Harvey Mudd in 2013.
Jim and Liz also recently celebrated the birth of their son Jacob William on September 3, 2016.
On Saturday October 29th, Hope College computer science students John Dood, Nathan Vance, and Roger Veldman competed in the 2016 ACM ICPC East Central North America Regional ProgrammingContest. They competed at the Grand Valley State University Site, one of four in the region. During the five hour competition they were able to write programs to solve 3 of the 10 problems they were given. This earned them 9th place out of 26 team at the GVSU site, and 45th out of 126 teams in the region. For a little perspective, only 20 teams solved 5 or more problems.
Nathan and John are seniors from Holland and Grand Rapids, respectively, while Roger is a sophomore from Hudsonville. The students did a great job! And perhaps just as importantly, they had a great time competing.
Senior Project Seminar is a part of every Hope Computer Science major’s last year. In this course, a good majority of the time is spent learning about and practicing the task of building a large software application, or performing a large research study. A significant portion of the class is also devoted to a discussion of ethical issues that students might encounter in their careers.
Today was a beautiful early Fall day, and so we took advantage of the opportunity to discuss questions like:
To what extent should you be concerned about characteristics of a customer who is using your technology? Under what, if any, circumstances should such concerns prevent you from doing business with that customer? Would the company share any moral responsibility for large scale efforts to suppress freedom of speech?
Suppose that you are a programmer for Volkswagen, and you were either asked to write the software that detected when emissions testing was being performed, or stumbled upon it as part of other tasks. What do you think your ethical duty would be in this scenario? What, if any, factors might prevent you from doing it? How would you choose to handle this scenario?
What do you think individuals’ responsibilities are to help ensure a diverse workforce? What (perhaps unintentional) behaviors / ideas might be contributing to the lack of diversity in the tech workforce?
As the world becomes increasingly dependent on software and hardware systems, it’s critical that our young computer scientists get a chance to think about these questions before they enter the workforce.
Want to share your experiences involving questions of ethics in the tech world with our students? Share it via a comment and we’ll be sure to pass your thoughts along to the students!
As we get ready to start the new semester, we wanted to let everyone know about some changes we’ve made to the computer science student lab. We try hard to keep keep our facilities set up in a way that matches the ways that our students work. These days, this increasingly means providing support for students using laptops. We’ve had “laptop stations” in the lab for a while, with a large monitor, external mouse and keyboard, and power connections for students using laptops.
This summer, we removed a few of our traditional desktop workstations in order to provide some additional options for students wanting to use their laptops, read, or just interact with each other:
Another way some people like to work in 2016 is by standing rather than sitting. We had the opportunity to bring a stand-up desk in as an experiment, just to see how students like it:
A last, perhaps more radical, change we are evaluating is reducing the number of physical workstations even more, by providing students with a “virtual machine” that they can use on their own laptops. This combination of software and hardware allows the department to provide a standardized set of software for students to use, while still allowing them the freedom of using their own computer. Dr. McFall’s summer research team used this environment successfully during the summer of 2016, and the students in CSCI 481, Senior Project Seminar, will be piloting the environment during the coming fall semester.
Got ideas for other ways we can improve our facilities? Feel free to make suggestions in the comments!