5.3
Creating a browser-based virtual computer lab in the cloud for instruction and visualization using Python
Creating a browser-based virtual computer lab in the cloud for instruction and visualization using Python
![](images/flag.png)
![](images/blue_ribbon.png)
Tuesday, 4 February 2014: 2:00 PM
Room C302 (The Georgia World Congress Center )
One of the difficulties in using Python for scientific applications is that one needs a fairly complete set of Python data processing and visualization packages to be installed, beyond the standard Python distribution. Freely available scientific Python distributions like Enthought Canopy and Anaconda address this problem. A typical approach for teaching Python is to use a dedicated computer lab, where one of these distributions is installed on a set of machines with identical computing environments for use by students. An alternative approach is to allow students to use their own laptop computers, where they install one of the scientific Python distributions by themselves. This approach takes more set-up time, because the distributions often require some tweaking for each software platform, but requires no dedicated hardware and has the advantage of allowing students to easily run programs after class on their own computers. This presentation discusses a third approach that involves creating a software environment for Python using “cloud computing”. This involves running a server using a cloud infrastructure provider, such as Amazon Web Services. A new server can be set-up within minutes, with a scientific Python distribution automatically installed during set-up. Students can then login to their own accounts on the server using a browser-based interface to execute Python programs and visualize graphical output. Two different options for browser-based visualization will be discussed in this context, the IPython Notebook server and the GraphTerm server, which supports a graphical terminal interface. The advantages and disadvantages of using a virtual computer lab will also be discussed.