Jump to content

City College of New York students get hands-on experience with the cloud

Rather than allocating limited resources to build new infrastructure, City College of New York looked to Google Cloud to help teach open-source technologies such as virtualization and containers. Now their students have valuable, hands-on training before entering the field of computer science.

Computer science (CS) departments need to provide education and training in the latest technologies used in the workplace, which these days means the cloud and related technologies like virtualization. However, most universities don’t have the resources to build out new infrastructure to support these technologies, and the pace of change is so rapid that keeping up with the latest platforms, tools and languages is almost impossible.

At City College of New York (CCNY), the faculty wanted to provide students with hands on experience with virtualization, containers and other cloud technologies, which were not well addressed in their current textbooks and other course materials. CCNY needed a new strategy that would allow it to keep pace with the latest developments in computing in a way that was both affordable and practical.

“Many CS programs tend to be rather theoretical and traditional in their approaches to core data structures, algorithms and operating systems,” says Peter Barnett, Adjunct Associate Computer Science professor at CCNY. “It’s important to get students to ‘bend their minds outward.’ We need to provide a visionary education for students to be well-rounded computer scientists.”

Building a comprehensive CS education with the help of Google Cloud

Barnett was referred to Google Cloud Education Grants by Lindsay Siegel, executive director of the Zahn Innovation Center, an incubator at CCNY that includes a startup bootcamp, mentorship, pro-bono services and rapid prototyping facilities.

When Barnett first introduced Google Cloud to his class, he gave his students an exercise to get them thinking about how cloud platforms implement features of traditional operating systems and application servers. They were asked to consider the question “Where are you?”—a container or virtual machine? How can you tell if you’re on a particular server or a cluster of distributed machines?

Students were given the choice of working with Google Cloud or another cloud technology provider. For the many who chose Google Cloud, Barnett said they found the tutorials intuitive, making it easy to begin importing data and building applications. They had support from the Google Cloud team and from CCNY’s own professors if they ran into any problems getting projects up and running.

Some students worked with Google App Engine and explored how containers worked, while others chose one of the tutorials for building an app in Google Compute Engine. All the students figured out how to explore their virtual machine (VM) or container environments using Linux commands, and explored their database backends with SQL commands.

Encouraging students to think like engineers

By immersing themselves in the cloud platform, students were encouraged to think conceptually about the cloud and to understand that, even in the cloud, they are still using actual hardware. They read articles, watched tutorials and experimented with what they could do inside and outside of containers. They took note of memory and CPU usage and learned about how virtual storage is provided and how their IP addresses are obtained.

Three students—Nissan, James and Michael—went beyond the minimum requirements of creating a sample application. “They imported their own repositories and built their own applications. It worked nicely, and they came away with a good impression of how Google operates as a working environment,” Barnett says.

Understanding why and how

When students are encouraged to ask their own questions, they discover far more about a topic. During some of their exercises, students noted how long an application took to respond based on its location—the U.K. or the U.S. This required them to think further about where the physical compute resources were located. One student implemented Google Cloud’s MySQL database in his Cloud project, and explored it to understand where the system files were stored.

Barnett encouraged his class to learn about the cloud technologies that most interested them. Some students explored using Kubernetes to manage containers, while others experimented with load balancing in MongoDB. Students then shared their experiences with one another to better understand a range of environments.

"Students aren’t going to be working on hard metal servers. The cloud isn’t just the future; it’s the present."

Peter Barnett, Adjunct Associate Computer Science Professor, City College of New York

Beyond the demo

Students in Professor Barnett’s Senior Project capstone course at CCNY are currently using Google Cloud to implement the backend portion of serious software projects with significant scientific, social and entrepreneurial potential.

His five teams’ projects include: using machine learning to advance the optical character recognition of handwriting; assisting trainers, physical therapists and their clients in developing and maintaining correct form in exercise; enhancing patent search using content analytics combined with machine learning; interior mapping of subway stations and other public places to assist visually impaired people navigate the spaces; and generating quasi-random music with AI that changes in response to user feedback.

Most of these projects use AI in the form of content analytics and machine learning, and Google Cloud provides a robust set of APIs such as ML-Engine and BigQuery to support them. The Google for Education team provided generous grants of time on Google Cloud to each of Barnett’s teams to facilitate their development and testing, which is currently under way.

Providing a real-world experience

To be successful computer scientists, students need to learn both the theory and practical applications of the tools used in today’s workplace. Cloud services such as Google Cloud give CCNY access to state of the art developer tools and large-scale cloud infrastructure without requiring a huge up-front investment. Students can learn how to work with many languages and cloud platforms, including Python, Ruby, Sinatra and Google Cloud. These tools and languages would be out of reach for many schools, whose limited resources prevent them offering such a variety of technologies to explore. Google Cloud provides an affordable way to offer access to modern computing environments in a way that can scale to serve the needs of all students and departments.

“The cloud environment is the modern manifestation of the operating system,” Barnett says. “Students aren’t going to be working on hard metal servers. The cloud isn’t just the future; it’s the present.”

Sign up here for updates, insights, resources, and more.