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.
Introducing a new master's program
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
• have substantial expertise in key areas of Internet programming and distributed computing,
• be able to apply the acquired techniques and knowledge to help develop and implement enterprise software systems in organizations,
• be able to analyze and design ICT projects to meet current and future needs, and
• be able to apply Internet-based distributed computing systems and algorithms to e-science and e-business applications.
To achieve these objectives, our program has several unique attributes.
• It provides expertise for developing service-oriented, enterprise computing systems and applications that operate in wired or wireless network environments. These enterprise systems can scale from a single organization to multiple organizations.
• It promotes the use of industry standards and distributed computing technologies such as J2EE and .NET.
• About half of the program focuses on highly specialized topics such as distributed systems, cluster and Grid computing, distributed algorithms, mobile systems programming, sensor networks, and Web services.
• It includes a compulsory project where students design and develop distributed computing technologies and apply them to e-science or e-business.
Duration and prerequisites
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:
• Distributed Systems: Principles and Paradigms,
• Distributed Algorithms,
• Mobile Computing Systems Programming,
• Sensor Networks and Applications, and
• Distributed Computing Project.
We grouped the courses into three different categories.
• Group A, foundation studies, brings students up-to-date with advanced computer science concepts, techniques, and tools.
• Group B offers advanced study in distributed computing technologies and applications. MEDC students take at least four core recommended courses in addition to the core compulsory course (Distributed Systems: Principles and Paradigms).
• Group C lets students conduct a practical or research-oriented distributed computing project, either individually or in teams.
gives the number of courses from the different groups that students must complete, depending on their entry level.
Table 1. Required number of courses in the University of Melbourne's Master of Engineering in Distributed Computing program.
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.
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.
is the director of the Master of Engineering in Distributed Computing program and the Grid Computing and Distributed Systems Laboratory at the University of Melbourne. He also serves as chair of the IEEE Technical Committee for Scalable Computing. Contact him at firstname.lastname@example.org; http://www.gridbus.org.
is the head of the Department of Computer Science and Software Engineering at the University of Melbourne. He also serves as the university's associate dean for research of the Faculty of Engineering. Contact him at email@example.com.