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 such as virtualisation. However, most universities don’t have the resources to build out new infrastructure to support these technologies, and the pace of change is so quick that keeping up with the latest platforms, tools and languages is almost impossible.
At City College of New York (CCNY), USA, lecturers wanted to provide students with hands-on experience with virtualisation, 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 programmes 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 Platform
Barnett was referred to Google Cloud Platform (GCP) Education Grants by Lindsay Siegel, executive director of the Zahn Innovation Center, an incubator at CCNY that includes a start-up bootcamp, mentorship, pro-bono services and rapid prototyping facilities.
When Barnett first introduced GCP 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 questions '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 GCP or another cloud technology provider. For the many who chose GCP, Barnett said that they found the tutorials intuitive, making it easy to begin importing data and building applications. They had support from the GCP 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 back-ends 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 UK or the US. This required them to think further about where the physical compute resources were located. One student implemented GCP’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 interested them the most. 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 understand a range of environments better.
'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 (final year) course at CCNY are currently using GCP to implement the back-end 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 underground stations and other public places to help 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 GCP 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 GCP to each of Barnett’s teams to facilitate their development and testing, which is currently underway.
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 GCP 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 GCP. These tools and languages would be out of reach for many universities, whose limited resources prevent them offering such a variety of technologies to explore. GCP 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.'