Abstract: This is an Innovate Practice Full Paper. The Cloud has become a principal paradigm of computing in the last ten years, and Computer Science curricula must be updated to reflect that reality. This paper examines simple ways to accomplish curriculum cloudification using Amazon Web Services (AWS), for Computer Science and other disciplines such as Business, Communication and Mathematics.
This paper is an expanded version of a technical report (see here). In particular, it contains material related to teaching Machine Learning (see here).
At the same conference, FiE 2021, I was also part of a panel with Joshua C. Nwokeji, Myra Roldan, and Terry Holmes, on A Hands-on Approach to Cloudifying Curriculum in Computing and Engineering Education.
Abstract: The term cloud computing is used to describe a pool of configurable virtualized computing resources (databases, software, storage, network, servers, etc.) delivered as a service via the Internet. The demand for cloud computing professionals continues to increase, yet academic institutions make little effort to integrate cloud computing into the computing curriculum. Lack of cloud computing resources has been identified as a major hindrance to teaching and learning cloud computing in higher education. This workshop aims to explore resources that could help computing educators teach cloud computing to students. Through hands-on activities, participants will learn about the various resources, tools, and technologies that are freely available for teaching and learning cloud computing.
As educators, we need to approach the transition to online teaching as permanent change and innovate for the future. At California State University, we have moved to virtual instruction repeatedly throughout the last five years for a variety of reasons. I encourage educators to have an online version for all your classes, not only for emergencies, but also to be responsive to students who want online offerings.
This year I am teaching (online) a sequence of 4 courses in Cloud Computing, in conjunction with the AWS Academy. Students receive AWS accounts, explore AWS services with hands-on labs, and prepare for certification (if they wish to). All classes are open to the public, and can be joined independently of each other (or all taken in sequence!). Please contact firstname.lastname@example.org to book an information session meeting on Zoom.
From the AWS page supporting the rapid transition to Remote Learning:
With the global move from in-classroom delivery to remote learning due to temporary and sustained school closings, AWS Educate wants to help educators and students with webinars and workshops ranging from beginner to advanced levels. Any educator or student is invited to join, and there’s no cost for participating. Each webinar will be recorded and available on-demand in over 100 languages.
I would like to let you know about an opportunity on our campus – open to the public. From June 1 to July 20, I will be teaching online an advanced AWS Cloud Architecting class. It is of interest to any business considering to move IT operations (fully or partially) to the cloud.
This class is taught in partnership with AWS Academy, and students will have access to AWS resources, labs, materials and will be ready at the end to take the AWS Solutions Architect certification.
CSUCI, in response to the COVID 19 crisis, has generously offered 10 full scholarships for this class, and for everyone else lowered the cost to $1,100. Everyone is welcome to apply for the scholarships – the application is short and available at this link:
Point 1: Don’t think of this move to online teaching as a one-off; this is the new normal. At California State University we have had to move to online teaching practically every year in the last five years: fires (twice), shootings, and now the pandemic. So think of the COVID-19 pandemic as an opportunity to build an online offering that can serve your department and students for years. You should have an online version for all your classes, not only for emergencies, but also to be responsive to the current reality where so many students want online offerings.
Point 2: There are two initial “shifts” in the move to online teaching. First, the pedagogical shift to not teaching in the classroom, where it is easy to connect with students physically present, to read facial expressions and adjust your teaching accordingly, to chat with some of them in person after class. Second, the shift to a different usage of tools, or a different set of tools altogether: Zoom, Canvas, Piazza, MyITLab, Slack, Microsoft Teams, and of course AWS Educate offerings. Both “shifts” require some time; e.g., think of how you are going to compensate for lack of physical presence, and do not start learning Zoom half an hour before the first class.
Point 3: In Point 2 we mentioned the challenge of not having the students physically present; how are you going to compensate for the lack of interaction that you are used to? I use Slack to create a collaborative environment in the class. I dedicate a channel to the course, and include all the students in the channel. Students can interact with me (the instructor), but even more importantly, they can interact with each other, and they do! Here appears one advantage of online teaching: often, as the students sit to write down a difficulty they encounter in the course, by the act of writing it in a public forum, they concentrate more than they do when asking verbally in class, and the question is better formed and often the answer appears in the process. Also, having those interactions recorded in the channel allows us to point them out later if the question comes up again. Further interaction comes by using Zoom on a regular basis, both to teach, and to have office hours / question periods.
Point 4: In Point 2 we mentioned the challenge of shifting to a new set of tools. For Computer Science faculty this is relatively easy from the technical perspective. We are familiar with cloud-based tools, and our students like IT tools, and so the move is seamless. What can be problematic is how these tools are deployed; that is, the heavy reliance on these tools can make the course about them instead of making them ancillary to the objective of the course. The solution here is to explain, or even better automate, the aspects of the tools that are not intrinsic to the topic being taught. For example, we use AWS Educate accounts to teach our Computer Architecture class (COMP 262), a sophomore course where student learn about different microprocessor architectures and assembler level programming. Being able to deploy AMI (Amazon Machine Images) with certain architectures frees the student to concentrate on the point of the exercise: the differences in architecture.
Point 5: It is important to be creative. More material can be taught successfully online than one would expect. For example, we have a senior elective in “mobile robotics” (COMP 470), which includes a lot of hands on lab work. It may seem hopeless to simulate such a course online, but it is not – we used the material in AWS Educate RoboMaker class to create virtual labs. Students can be given the relatively inexpensive robots (e.g., Amazon Deep Racer, ~$300 each), and participate in a lab by doing the hands-on activity at home, but testing and competing in a virtual environment in the cloud.
Point 6: Do not think of online teaching as simulating classroom teaching. It is a different entity, with its advantages and disadvantages; concentrate on the advantages. For example, simply using Zoom to deliver a lecture at the same times as a regular lecture won’t do. Your lecture will be dry, you will feel frustrated as you feel as if you were talking into your own screen instead of a classroom full of students. Use Zoom to create an interactive environment, including quizzes (there are some nice tools to deliver interactive quizzes which always awaken a sense of fun competition along students; e.g., Kahoots, Quizzez), Zoom breakout rooms, question and answer sessions, presentations by students, etc.
Point 7: Grading has to be changed. For example, rely more on assignments, as in a final assignment rather than a final exam. Tests and exams can still be given, but I would suggest to give them as multiple-choice quizzes with limited times per question, in order not to make them exercises in who can Google-search faster.
Point 8: In my experience online teaching has to be very well structured and organized, and the communication with the class has to be excellent: frequent, repetitive and complete. Students should know exactly what they need to do each week, and where to go with questions.
Point 9: Communicate enjoyment, passion and enthusiasm for the material. One of the most important roles of a teacher is to reassure the student that time spent with you, and the effort required to master your difficult material, is a worthy pursuit. Tell the students what is the treasure that they will possess upon completion, what we dryly call SLO (Student Learning Outcomes), but which is the raison d’être for your course. Present your online offering not as “the 2nd best given the circumstances”, but rather as a great opportunity to work with others in an online setting – remember, this is the direction in which the IT world is moving, and students will benefit greatly from having the experience of being self-motivating, accountable and working with others online.
Point 10 (Bonus for Comp Sci instructors): Some material can be taught very easily online. For example, I prefer to teach programming classes in a blended online environment, even when we do not have a crisis! The reason is that Amazon Cloud9 is a perfect cloud-based IDE (Integrated Development Environment) that has many advantages over a machine-in-a-lab IDE: first, everyone has exactly the same environment, which I can customize to the needs of the course as precisely as I choose, and everyone can access this environment independently of the type of computer they have, as all it requires is a wi-fi connection and a browser. It also allows me to enter the environment from the “outside”, and code with the student watching my changes. This is really fantastic!
Recently, Computer Science at CI, has made several new connections with AWS:
We are an approved member of the AWS Academy and we are authorized to deliver the AWS Academy Cloud Computing Architecture curriculum. I am the Central Point of Contact (CPOC), so if anyone is interested in being nominated to be an AWS Academy instructor at CI, please get in touch with me. [letter]
We are part of the AWS Educate initiative, and we were able to offer our COMP 529 students accounts with some credit. Note that an issue with AWS training accounts is that they close after the course is finished; to those students who are able, I would suggest to open your own (or your company’s) account so that as you learn the material you can build your own permanent infrastructure. A compromise is to build the initial infrastructure on a training account, and use “CloudFormation” to export it for re-instatement elsewhere.
As I am working through the AWS Academy Cloud Computing Architecture – Instructor Accreditation, we are going to offer COMP 529, our Cloud Computing course in the Computer Science masters program, using the AWS curriculum. This is a service offered through the AWS Academy. The students who complete the course will be ready to take the AWS Cloud Solutions Architect certification.
The first lecture will be on Thursday January 24, 2019, in Sierra Hall 1131 (the Computer Science Networking & Security Lab).