Skip to main content

Part 2: A new way to teach computer programming

The May 6, 2011 business section of the Los Angeles Times reported that 230 million laptop sales are expected this year, but in the United States, sales are expected to be surpassed by tablets (much the same way that laptop sales exceeded desktop PC sales in the middle of last decade). In 2010, manufacturers sold 19 million tablets. This year, sales will exceed 50 million, and next year, sales are projected to exceed 100 million.

Handheld devices can readily be used in courses where there are extensive reading assignments. But can this trend be exploited in courses such as computer programming?

Since early 2006, Amazon Web Services (AWS) has provided companies with a computational infrastructure (I should say that other firms such as Google offer similar capabilities). You can requisition computer power, storage, and other services, gaining access to a suite of elastic IT services as you need. I secured a processing arena on AWS for learning and teaching.

Using AWS, I deployed a Linux operating system on a server in New Jersey. I then carved up the arena and created student accounts. Students in my programming class in San Diego downloaded two tools: SSH and FTP.

Secure Shell (or SSH) is a network protocol that allows students to open a window on a local computer and connect to a remote computer just as if they were sitting at that computer. The local computer can be a PC or MAC, and the students are essentially typing into a remote Linux computer. File transfer protocol (FTP) is a tool that enables one to transfer files between two computers.

Students then connected to the Amazon Linux machine through SSH and were able to use simple editing tools to write code, compile, and run that code without the complexity of Integrated Development Environments that are used to commercially compile software. They were able to download my own coding examples, transfer them over using FTP, then compile and run them.

Now comes the nice part. They downloaded versions of SSH for iPads. They were able to sit down at lunch in San Diego and code on a Linux server in New Jersey, using their iPad in California. They had a simple programming interface for a third- generation language. They were not encumbered by the operating system. They used simple line compilation tools. The system was the same for all students. They learned more about computers. Even better, they learned to think like scientists.

The cost of this experiment for 90 students programming every week was a total of only $200.00. Our department no longer needs to support workstations, mainframes, or IT staff. I no longer need local Linux machines and the students no longer need their own PCs or laptops. With just a mobile device like an iPad, students can be coding on a massively parallel Linux cluster. 

Related Links:

Part one of this story on the complications caused by the generational changes in computer programing language