, The University of Melbourne
, The University of Melbourne
Abstract—Current academic programs don't yet teach the skill set required to meet the demand for new Internet-based distributed computing technologies. The University of Melbourne's Master of Engineering in Distributed Computing program fills the gap between undergraduate programs and industrial requirements to help students excel in both research and industry careers.
Distributed computing systems and applications are not only changing the face of computing, they're also continually changing the way we live, work, and interact as a society. The World Wide Web put the world at our fingertips, but distributed computing's history is as old as computer networks, and the primary motivation for building such systems is to share geographically distributed computing resources.
In recent years, the demand for educational courses in advanced computing and networking has expanded rapidly. This has led to a huge demand for Internet-based distributed computing technologies (such as Web and Grid services) and applications that virtualize geographically distributed resources to enable the creation of virtual enterprises, marketplaces, and service-oriented computing industries.
Because current academic programs don't yet address the skill set required to meet these demands, we launched a Master of Engineering in Distributed Computing program at the University of Melbourne.
The MEDC program is primarily for computer science, computer engineering, and electrical or electronic engineering graduates seeking technical and professional specialization in Internet-based distributed computing. It's also appropriate for professionals with a background in related disciplines who are working in the information and communication technology (ICT) industry as software developers.
Building on the students' technical background, our program addresses the demands of the growing ICT market. Its key objectives are that, on completion, graduates will
To achieve these objectives, our program has several unique attributes.
We admit students with a three- or four-year degree in computer science, software engineering, or physical science. The program's duration depends on the student's previous academic background and work experience in computing; for example, students with a four-year degree in computer science or a related discipline would normally complete the MEDC in one and a half years of full-time study. At Melbourne, we award 12.5 points for each course, and we generally expect a full-time student to take a maximum load of 50 points each semester. So, depending on their background, students may graduate after 200 points (Level 1, the two-year program), 150 points (Level 2, the one-and-a-half-year program), or 100 points (Level 3, the one-year program).
The entry requirements are designed to attract two categories of students: those with an approved level of mathematics and computer programming education and experience, and those who majored in computer science, information technology, or software engineering. Students in the first category must complete 200 points, whereas those in the second category must complete 100 to 150 points, depending on their academic standing and expertise. These requirements substantially increased the pool of potential students who could meet the university's expectations for a master's program. The first 50 points of the master's program ensure that students are prepared for the advanced master's level courses. (The http://www.cs.mu.oz.au/courses/mbc/medc.html program Web site has further details on entry requirements.)
Our department already offers two master's programs in information technology and software systems engineering. We borrowed some existing courses from these programs, packaging them with five new distributed computing courses especially developed for our new program:
We grouped the courses into three different categories.
Table 1 gives the number of courses from the different groups that students must complete, depending on their entry level.
Most of the courses in Group A and C are offered twice a year. The Group B courses are offered once a year, with the exception of Distributed Systems: Principles and Paradigms, which is offered twice because it's an MEDC foundation course. Figure 1 gives the complete list of courses taught in different groups; for details on their contents, see the http://www.cs.mu.oz.au/courses/mbc/medc.html program Web site.
Figure 1 The complete list of courses in the University of Melbourne's Master of Engineering in Distributed Computing program.
The department has excellent distributed computing facilities that all postgraduate students can use. The existing facility is primarily based on Unix or Macintosh operating systems. To further enhance our facilities, we spoke with leading IT companies about setting up specialized laboratories; several were interested in supporting the program. In particular, Microsoft offered funds for a .NET lab for distributed computing and also gave each MEDC student a technical resource kit containing books on .NET and distributed computing.
In the past two years, we've received cash grants totaling US$40,000 from Microsoft to set up educational and research infrastructure for distributed computing driven by .NET technologies. We established the Microsoft .NET Lab, which contains desktop PCs and servers loaded with various software, including the .NET framework. Our MEDC students use the lab often, along with researchers working on developing .NET-based Grid computing technologies.
The MEDC program admits students twice yearly, in March and August. We formally launched the program in May 2005 with an initial enrollment of 10 students, and the program began in August 2005 (semester 2). We now have approximately 40 students in the program, which attracts both local and international students—some of whom were working in the software industry.
We first offered Distributed Systems: Principles and Paradigms in August 2005. We encouraged students from the honors, fourth-year software engineering, and other postgraduate programs to join the foundation course, and 44 students enrolled in it. The Quality of Teaching survey revealed that the students enjoyed the course, in addition to learning new skills. We attribute this to the innovative assignments students received as part of the course. Students were enthusiastic about team-based projects. They developed a distributed platform (middleware) that supported network games and illustrated its potential by implementing a multiplayer car racing application. Microsoft presented awards to the three highest-performing students from this course as part of their support for our MEDC program.
All the other new courses we offered in 2006 were well received by students, and we'll continue to offer them in the future. In future Education columns, we plan to share our experiences in offering those courses.
Our postgraduate program in distributed computing fills the skill gap between undergraduate educational programs and industrial enterprise computing requirements. It balances theoretical foundations with the practical skills our graduates need to excel in both research and industry careers. Since the MEDC program launched in 2005, it has established itself as an attractive master's program. Thanks to the skills they have gained in MEDC courses, our students have easily found employment in large multinational companies such as IBM and in small and medium-size enterprises such as Intrepid Geophysics.
Furthermore, the program is impacting our research activities in distributed computing, including sensor networks and Grid, peer-to-peer, and mobile computing. For example, some of our students completed innovative projects in distributed computing systems and applications and regularly publish related articles in research conferences.
The teaching materials developed in our courses have been adopted by colleagues teaching in universities in the US and Europe. In addition, some universities in other countries are exploring the possibility of initiating similar programs in their schools. This positive contribution to the community has helped the University of Melbourne position itself as a world leader in formulating and delivering innovative computing education.
Cite this article: Rajkumar Buyya and Kotagiri Ramamohanarao, "An Innovative Master's Program in Distributed Computing," IEEE Distributed Systems Online, vol. 8, no. 1, 2007, art. no. 0701-o1002.
Many of our colleagues in the Department of Computer Science and Software Engineering, the Faculty of Engineering, and throughout the University supported and guided us while we launched this master's program. Our special thanks to Jannie Van Deventer, Irene Brown, Baikunth Nath, Ray Misson, John Warren, Deeps De Silva, and the Academic Board.