You are on page 1of 7

Design of a Laboratory for an Undergraduate Distributed Systems Course∗

Cristina L. Abad Carmen K. Vaca
Facultad de Ing. en Electricidad y Computaci´on Facultad de Ing. en Electricidad y Computaci´on
Escuela Superior Polit´ecnica del Litoral Escuela Superior Polit´ecnica del Litoral
Campus Gustavo Galindo Campus Gustavo Galindo
Km 30.5 v´ıa Perimetral Km 30.5 v´ıa Perimetral
Apartado 09-01-5863. Guayaquil-Ecuador Apartado 09-01-5863. Guayaquil-Ecuador
Email: Email:

Abstract oratory instruction and design (in recent years, less than
10% of the articles published in the Journal of Engineer-
The instructional laboratory is an important complement ing Education used “laboratory” as a keyword [32]). Even
to the engineering undergraduate curriculum. In particular, less has been published in the area of Distributed Systems
Distributed Systems courses can benefit much from using laboratories: Searching through the 2000-2007 archives of
a laboratory to provide a balanced theory+practice class. the IEEE Transactions in Education, ACM Journal of Com-
This paper presents the design of an objective-based, in- puter Sciences in Colleges, the Journal of Engineering Ed-
expensive, instructional laboratory to be used in an under- ucation of the American Society for Engineering Educa-
graduate Distributed Systems course. tion, Proceedings of the ACM SIGCSE Technical Sympo-
Keywords: distributed systems course, laboratory, lab. sium on Computer Science Education and Elsevier’s Jour-
nal of Engineering Education, we found just a few papers
that describe laboratory environments for DS and related
courses [1, 2, 10, 19, 27, 28, 34]. Similar results are ob-
1. Introduction
tained if we search for papers describing laboratory assign-
ments for Distributed Systems and related areas.
In our current networked world, Distributed Systems This paper presents the design of a laboratory to be used
(DS) courses are an important part of the curricula in un- in an undergraduate Distributed Systems course. Section 2
dergraduate Computer Science education [22]. Distributed discusses why an specialized laboratory can improve how
Systems courses usually teach concepts related to Dis- a Distributed Systems course is taught. Sections 3 and 4
tributed Systems Theory, Parallel Processing, Grid Com- describe the design and implementation of the lab, respec-
puting, Distributed Computing, Security, Peer-to-Peer and tively. Finally, in Section 5 we conclude.
Overlay Networks, Middleware, Web services, among oth-
ers. All of these topics may be hard to grasp for students
if the course is only lecture-based. For this reason, many 2. Motivation
Professors rely heavily on student projects to help them de-
liver the concepts. Unfortunately, this may not be the best Distributed Systems courses, currently very common
approach for undergraduate students (see Section 2). in the undergraduate Computer Science curricula, usually
Complementing lectures with laboratory classes may be teach concepts related to Distributed Systems Theory [9,
a better way to teach Distributed Systems to undergradu- 19], Parallel Computing [2, 16, 17, 21], Grid Comput-
ates, but for this to be possible, appropriate infrastructure ing [16, 21, 27, 31], Distributed Computing [17, 19, 31], Se-
needs to be available to Professors and students. curity [19, 21, 34], Peer-to-Peer and Overlay Networks [19],
The engineering education literature has highlighted Middleware [5], Web services [16], among others. All of
the importance of the laboratory in undergraduate educa- these topics may be hard to grasp for students if the course
tion [11, 12], but very little has been published about lab- is only lecture-based. For this reason, many Professors rely
∗ Submitted to the 2007 International Conference on Frontiers in Ed- heavily on student projects to better deliver the concepts.
ucation: Computer Science and Computer Engineering (FECS 2007). If Unfortunately, this may not be the best approach for under-
accepted, the paper will be presented by Carmen Vaca. graduate students.
Distributed Systems Course
Suggestion to Improve

More classroom activities

Laboratory classes

0% 10% 20% 30% 40% 50% 60% 70% 80%
Percentage of Students

Figure 1. Suggestions provided by 60 students who took our Distributed Systems course (Fall 2005).

After an analysis of using the lecture+project approach The use of laboratory courses in the Engineering un-
to teach an undergraduate Distributed Systems course, from dergraduate curriculum has been suggested as a way to
2004 to 2006, we noticed that it may not be the best ap- relate theory and practice and help students learn the
proach due to several reasons: things that practicing engineers are assumed to already
know [12]. Specifically, in the Computer Science area,
• Many students rush through the machine problems courses like Distributed Systems can benefit greatly from
(MPs) and project and get the job done, but fail to grasp having laboratory-based classes to complement the lectures.
the important concepts that these exercises aim to de- In our institution, 60% of the students who took a lecture-
liver. based Distributed Systems class during Fall 2005, when
• Students tend to get lost in the details (e.g., solving asked what could be done to improve the class, answered
problems that arise during the MPs and project) with- that they would like to have at least one hour a week of
out stopping to get the “big picture”. laboratory classes (see Fig. 1). It should be noted that the
question (“What would you suggest to improve the course?
• Students tend to run the distributed processes in one Answer can be related to content, methodology, etc.”) was
computer only, and they do not benefit from the ex- completely open. The students were not given a list of pos-
citement of seeing their system run distributely in a sible answers, as we thought this would bias their responses
network. The main reasons for this are that many stu- towards what we thought could be improved.
dents do not have a computer network set up at home We started incorporating a few laboratory classes in our
and that our Department Computer Labslike those in DS course since Spring 2006, but the results were only par-
many institutions, grant access to only one computer tially successful, due to the lack of an appropriate labora-
at a time. tory environment. Thus, the need for a specialized Dis-
tributed Systems Laboratory was evident. As mentioned
• When trying–and failing–to solve the problems that earlier, the design of similar laboratories has not been prop-
arise during MPs, some students lose confidence in erly documented. Most previous work describes labora-
their abilities and sometimes lose interest in the class. tories specialized for some DS area, like grid comput-
• In team-based projects, it is common for a subset of the ing [2, 10, 27, 28, 34]. Kerer et al. [19] describe the de-
team members to do all the work. The students that sign and implementation of a Distributed Systems Labora-
have little or no participation in the development of tory for 600 students, but their design is specifically tailored
the project do not benefit from the experiences learned for the ShareMe class assignment used by the authors in
while working on it. This behavior has also been ob- their DS course.
served previously in other Universities [19]. We thus faced the problem of designing a Distributed
Systems laboratory that could be used a generalized DS
• Even if plagiarism is severely penalized, some students course. As has been noted in previous research [12], un-
take this path, hoping that to get away with it [7, 19]. dergraduate engineering laboratories and the consequent

Percentage of courses with laboratory classes









1 2 3 4 5 6 7 8


Figure 2. Courses with laboratory classes at ESPOL (ECE Department) with respect to the semester
students are suggested to register for the course.

laboratory-based classes should be designed with clear ob- distributed systems, unicast versus multicast, connection-
jectives in mind. The following section describes the guide- oriented versus connectionless communication, concur-
lines we followed when designing the laboratory. rency, name services, distributed objects, remote method in-
vocation, and network security) and applying them in prac-
3. Design of the Lab
Additionally, we took into consideration the “fundamen-
tal objectives of engineering instructional laboratories” de-
As noted by Feisel and Rosa [12], there are three types scribed in [12], and identified the hardware and software
of Engineering labs: development, research and educational requirements for the lab so that they would enable the
(instructional). Our lab fits in the research and instructional achievement of these thirteen objectives as follows 1 . Note
types, since our main goals were both to (1) provide support that in Sections 3.1 through 3.13, the text in italics is the
to the teaching of DS-related coursework through enabling generalized description of that particular objective, as writ-
hands-on experience and problem-based learning [20], as ten by Feisel and Rosa in [12].
well as to (2) provide support to undergraduate research in
Distributed Systems and Applied Internet Technologies. In 3.1. Objective 1: Instrumentation
this paper, we concentrate on the first objective (instruc-
tional lab).
Apply appropriate sensors, instrumentation, and/or soft-
Before designing the lab, we identified the following ob-
ware tools to make measurements of physical quantities.
jectives, adapted from the roles described by Ernst [11], to
The lab has software tools installed that allow students to
the case of a Laboratory for an undergraduate Distributed
gather various performance data so that they can analyze
Systems course: First, the student should learn how to be
the performance of the distributed systems they run. Per-
an experimenter in distributed systems and related areas.
forming this type of analysis is not a trivial task [8] and
Second, the laboratory should be a place for the student
requires knowledge of different tools and understanding of
to learn new and developing distributed systems issues and
where the problem may be (server, network, services, end-
concepts. Third, classes taught using the laboratory should
user or content [8]). Installed on the lab machines are sev-
help the student to gain insight and understanding of dis-
eral tools that can be used to make measurements and an-
tributed systems in the real world.
alyze the performance of distributed systems, in the areas
We also aimed to fulfill the objectives described by Kerer
listed before. These tools include: Big Brother [4], NetLog-
et al. [19] for a Distributed Systems laboratory: “provide
ger [15], Argus [3], Ethereal [24], TCPDUMP [29], several
an attractive environment in which students learn about
of the CAIDA tools [6], among others. Students are also
network programming and apply some fundamental con-
cepts of distributed systems” and “[deepen] the theoreti- 1 Each of the objectives start with “’By completing the laboratories in

cal concepts taught in the lecture (e.g., various models of the engineering undergraduate curriculum, you will be able to.”

allowed to obtain performance statistics from the Ethernet prototype, system, or process using appropriate tools to sat-
switch used in the lab. isfy requirements.
Systems design and development tools like Eclipse, Visual
3.2. Objective 2: Models Studio .NET, NetBeans, and Microsoft Visio, are installed
in the lab.
Identify the strengths and limitations of theoretical mod-
els as predictors of real-world behaviors. This may include 3.6. Objective 6: Learn from Failure
evaluating whether a theory adequately describes a physi-
cal event and establishing or validating a relationship be- Identify unsuccessful outcomes due to faulty equipment,
tween measured data and underlying physical principles. parts, code, construction, process, or design, and then re-
Several simulation utilities are available so that students engineer effective solutions.
can perform simulations of their systems and obtain per- If needed, students may be granted administration privi-
formance results. These results can be compared with real leges on some of the machines (e.g., to open/block ports
data obtained from the tools listed in Section 3.1. Utili- on firewall, configure services, install software, etc.). For
ties installed to help support this objective include OPNET this reason, configuration problems may arise, which could
Modeler, ns-2 [23], p2psim [25], NeuroGrid [18], planet- require partial or complete re-installation of the computer
sim [13], PeerSim [26] and GPS (General Peer-to-Peer Sim- software. The lab policy manual, published in the Web site
ulator) [35]. and a mandatory read for every student taking the course,
indicates the procedure to be taken by a student that mis-
configures a computer so that the machine can be returned
3.3. Objective 3: Experiment
to its functional state. A detailed manual is provided to such
student, indicating the steps required to re-install and/or re-
Devise an experimental approach, specify appropriate configure the computer. This manual is kept up-to-date by
equipment and procedures, implement these procedures, the lab’s student assistant.
and interpret the resulting data to characterize an engineer-
ing material, component, or system.
3.7. Objective 7: Creativity
We have designed a Web site for the lab, in which we will
publish several tutorial-based learning objects [33] that stu-
Demonstrate appropriate levels of independent thought,
dents can perform on the lab. All the required software to
creativity, and capability in real-world problem solving.
experiment with these learning objects, as well as to work
The system administration privileges granted (if needed) to
in the class MPs and project is installed in the lab. Exam-
students working on the final class project allows them to
ples of software installed include various operating systems
use all of the available resources in the design and imple-
(Windows Vista, GNU/Linux, FreeBSD), server software
mentation of the project. Additionally, the machines in the
(Apache, Geronimo, DNS, SSH, MySQL, PostgresSQL,
lab have hardware features that students may not have avail-
etc.), and various development tools, APIs, frameworks,
able in their home personal computers, and which they can
cluster tools, among others.
explore in their projects (e.g., two Gigabit Ethernet cards,
two state-of-the-art graphical cards, Intel Core 2 Duo pro-
3.4. Objective 4: Data Analysis cessor, Trusted Platform Module (TPM) microcontroller,
Integrated Intel Matrix Storage Technology (RAID), among
Demonstrate the ability to collect, analyze, and interpret others).
data, and to form and support conclusions. Make order
of magnitude judgments and use measurement unit systems 3.8. Objective 8: Psychomotor
and conversions.
Some of the learning objects to be published in the lab Web Demonstrate competence in selection, modification, and
site will ask students to use the performance tools installed operation of appropriate engineering tools and resources.
in the lab to gather and analyze data. We believe the Psychomotor objective is not applicable to
the particular lab described in this paper.
3.5. Objective 5: Design
3.9. Objective 9: Safety
Design, build, or assemble a part, product, or system, in-
cluding using specific methodologies, equipment, or mate- Identify health, safety, and environmental issues related
rials; meeting client requirements; developing system spec- to technological processes and activities, and deal with
ifications from requirements; and testing and debugging a them responsibly.


IDS File Server

University Campus Network

Web Server

Application Server

Database Server
Servers VLAN

Figure 3. Network diagram of the Distributed Systems laboratory.

The lab policy manual indicates the appropriate use of the 3.12. Objective 12: Ethics in the Labora-
computing resources of the lab so that they are handled tory
properly to avoid damage.
Behave with highest ethical standards, including report-
3.10. Objective 10: Communication ing information objectively and interacting with integrity.
Our lab manual describes the appropriate conduct the users
Communicate effectively about laboratory work with a of the lab must follow. It also describes penalties to be ap-
specific audience, both orally and in writing, at levels rang- plied in case of a violation of the conduct code.
ing from executive summaries to comprehensive technical
3.13. Objective 13: Sensory Awareness
The lab Web site links to a TWiki [30] in which students
are required to publish their reports and other information
related to the class. Additionally, we are working on form- Use the human senses to gather information and to make
ing a Student Interest Group with students that will special- sound engineering judgments in formulating conclusions
ize in topics related to Distributed Systems and will orga- about real-world problems.
nize workshops so that other students can learn from their Although this is not a part of the lab, the DS class includes
experiences. The aim of this group is to get involved stu- several case studies and a class project, through which stu-
dents interested in learning more about the area, increase dents can enhance their engineering skills.
their knowledge, enhance their communication and leader-
ship skills, as well as to generate some income to help fi- 3.14. Other
nance the group activities.
Figure 3 shows the logical network design of the lab. It
3.11. Objective 11: Teamwork should be noted that the lab (hardware, software, network)
has been designed so that it is inexpensive to implement.
Work effectively in teams, including structure individual Most of the software is free, and in the few cases of com-
and joint accountability; assign roles, responsibilities, and mercial software, we are using educational licenses granted
tasks; monitor progress; meet deadlines; and integrate in- to most Higher Education institutions.
dividual contributions into a final deliverable.
The physical layout of the lab is designed to promote and
enhance teamwork. This includes enough room for a couple 4. Implementation of the Lab
of students to work in one or two machines at a time, several
available whiteboards, etc. With respect to software, in ad- Currently we have implemented a completely functional
dition to our file server, the lab has a Concurrent Versioning prototype of the lab. We are working on obtaining funding
System (CVS) [14] available to students working on their to implement the complete lab. A pilot program with a few
class projects. selected students has already shown the benefits from using

the lab. Students are enthusiastic about it, and in the mean- com/si/presentations.asp>, last accessed March
time, a full class can access it remotely from any of our De- 2007.
partment labs. Additionally, small groups of students can [9] J. Cunha and J. Lourenc¸o. An integrated course on paral-
be granted physical access to work on their class projects. lel and distributed processing. In Proceedings of the 29th
SIGCSE technical symposium on Computer science educa-
tion (SIGCSE 1998), 1998.
5. Conclusion [10] W. Du, Z. Teng, and R. Wang. SEED: A suite of instruc-
tional laboratories for computer security education. In Pro-
ceedings of the 38th ACM Technical Symposium on Com-
The instructional laboratory is an important complement
puter Science Education (SIGCSE 2007), Mar. 2007.
to the engineering undergraduate curriculum. In particular, [11] E. Ernst. A new role for the undergraduate engineering lab-
Distributed Systems courses can benefit much from using oratory. IEEE Transactions on Education, E-26(2):49–51,
a laboratory to provide a balanced theory+practice class. May 1983.
This paper presented an objective-based design of a lab- [12] L. Feisel and A. Rosa. The role of the laboratory in un-
oratory to be used in an undergraduate Distributed Sys- dergraduate engineering education. Journal of Engineering
tems course. The laboratory was designed so that it can be Education, 24(1):121–130, Jan. 2005.
used to enhance the student learning experience by enabling [13] P. Garc´ıa, C. Pairot, R. Mond´ejar, J. Pujol, H. Tejedor, and
instructor-lead laboratory classes. R. Rallo. PlanetSim: A new overlay network simulation
framework. Lecture Notes in Computer Science (LNCS),
3437:123–137, May 2005.
Acknowledgment [14] D. Grune. Concurrent Versions System CVS, 2004.
The authors would like to thank the VLIR-ESPOL Program, <˜dick/CVS.html>, last
which provided the grant that financed the lab, the ECE De- accessed March 2007.
partment at ESPOL, which provided the physical infrastruc- [15] D. Gunter, B. Tierney, B. Crowley, M. Holding, and J. Lee.
NetLogger: A toolkit for distributed system performance
ture for the lab, and our Student Assistant, Andre Ortega,
analysis. In Proceedings of the IEEE Mascots 2000 Con-
who worked hard to make the lab possible. ference (MASCOTS 2000), Aug. 2000.
[16] M. Holliday, B. Wilkinson, J. House, S. Daoud, and
References C. Ferner. A geographically-distributed, assignment-
structured undergraduate grid computing course. In Pro-
ceedings of the 36th ACM Technical Symposium on Com-
[1] J. Adams and D. Laverell. Configuring a multi-course lab for puter Science Education (SIGCSE 2005), 2005.
system-level projects. In Proceedings of the 36th ACM Tech- [17] L. Ivanov. A modern course on parallel and distributed
nical Symposium on Computer Science Education (SIGCSE processing. Journal of Computing Sciences in Colleges,
2005), 2005. 21(6):29–38, 2006.
[2] J. Adams, C. Nevison, and N. Schaller. Parallel comput- [18] S. Joseph. NeuroGrid: Semantically routing queries in peer-
ing to start the millennium. In Proceedings of the 31st to-peer networks. In Proceedings of the International Work-
ACM Technical Symposium on Computer Science Education shop on Peer-to-Peer Computing, May 2002.
(SIGCSE 2000), 2000. [19] C. Kerer, G. Reif, T. Gschwind, E. Kirda, R. Kur-
[3] Argus, the network audit record generation and utiliza- manowytsch, and M. Paralic. ShareMe: Running a dis-
tion system, 2006. < tributed systems lab for 600 students with three faculty
argus/>, last accessed March 2007. members. IEEE Transactions on Education, 48(3):430–437,
[4] Big brother, 2006. <>, last ac- Aug. 2005.
cessed March 2007. [20] N. Linge and D. Parsons. Problem-based learning as an ef-
[5] J. Brownsmith. Teaching and learning middleware: A fective tool for teaching computer network design. IEEE
new course. Journal of Computing Sciences in Colleges, Transactions on Education, 49(1):5–10, Feb. 2006.
22(3):251–256, Jan. 2007. [21] J. Mache and A. Apon. Grid computing in the undergraduate
[6] CAIDA, the cooperative association for Internet data analy- classroom: Topics, exercises and experiences. In Proceed-
sis, 2006. <>, last ings of the Second International Workshop on Collaborative
accessed March 2007. and Learning Applications of Grid Technology and Grid Ed-
[7] B. Cheanga, A. Kurniaa, A. Limb, and W.-C. Oonc. On ucation, May 2005.
automated grading of programming assignments in an aca- [22] A. McGettrick, M. Theys, D. Soldan, and P. Srimani. Com-
demic institution. Computers & Education, 41:121–131, puter engineering curriculum in the new millennium. IEEE
2003. Transactions on Education, 46(4):456–462, Nov. 2003.
[8] B. Chen. Infrastructure for distributed system performance [23] The network simulator - ns-2, 2006. <http://www.
tools, Aug. 2000. Presented at The University of Washing->, last accessed March 2007.
ton/Microsoft Research Summer Institute on Accelerating [24] A. Orebaugh, G. Morris, E. Warnicke, and G. Ramirez.
the Pace of Software Tools Research: Sharing Infrastructure, Ethereal Packet Sniffing. Syngress Publishing, 2004. Soft-
slides available at < ware available at <>.

[25] p2psim, 2005. <
p2psim/>, last accessed March 2007.
[26] Peersim: A peer-to-peer simulator, 2006. <http://>, last accessed March
[27] V. K. Saini and Q. Duan. Building an experimental globus-
based grid computing system in an university environment.
Journal of Computing Sciences in Colleges, 21(5):188–188,
[28] S. Sivakumar, W. Robertson, M. Artimy, and N. Aslam. A
Web-based remote interactive laboratory for internetwork-
ing education. IEEE Transactions on Education, 48(4):586–
598, Nov. 2005.
[29] TCPDUMP public repository, 2006. <http://www.>, last accessed March 2007.
[30] TWiki – Enterprise wiki & collaboration platform, 2007.
<>, last accessed March 2007.
[31] R. Walters, D. Millard, P. Bernnett, D. Argles, S. Crouch,
L. Gilbert, and G. Wills. Teaching the grid: Learning dis-
tributed computing with the m-grid framework. In Pro-
ceedings of the World Conference on Educational Mul-
timedia, Hypermedia & Telecommunications (ED-MEDIA
2006), 2006.
[32] P. Wankat. Analysis of the first ten years of the Journal of
Engineering Education. Journal of Engineering Education,
93(1):13–21, 2004.
[33] D. Wiley, editor. The Instructional Use of Learning
Objects. Association for Instructional Technology and
Association for Educational Communications and Tech-
nology, 2001. Online Version available at <http:
//>, last accessed
March 2007.
[34] A. Yang, K.-B. Yue, M. Liaw, G. Collins, J. T. Venkatraman,
S. Achar, K. Sadasivam, and P. Chen. Design of a distributed
comptuer security lab. Journal of Computing Sciences in
Colleges, 20(1):332–346, 2004.
[35] W. Yang and N. Abu-Ghazaleh. GPS: A general peer-to-
peer simulator and its use for modeling BitTorrent. In Pro-
ceedings of 13th Annual Meeting of the IEEE International
Symposium on Modeling, Analysis, and Simulation of Com-
puter and Telecommunication Systems (MASCOTS 2005),
Sept. 2005.