IPC
(Concurrent Programming)
Comm. End Point
+IP addr
+port
UDP
+send()
+reception()
TCP
+buffering
+OOB data
+send()
+reception()
Passive TCP
+backLog()
+accept()
Socket
+init()
+close()
Active TCP
+connection()
Net DB
Figure 2: A generic model to describe Socket concepts.
fine concepts of the TCP/IP subject. The figure shows
the concept of Socket, which is derived from a previ-
ous concept called IPC (inter-process communication
concept), which was learned previously within the
Concurrent Programming subject. The Socket con-
cept will be specialized in UDP and TCP sockets. For
each class, the attributes are used to list the main im-
portant features of the concepts. For example, when
defining a Communication End Point, one IP ad-
dress and one transport port are required. Procedural
concepts are included as operations within the class.
We have included the basic operations that students
will use when working with Sockets. The diagram in
fig. 2 also uses more UML notation for our descrip-
tion purposes. For instance, classes in italics (UML
abstract classes) will now mean that the concepts they
represent need to be extended/refined by other classes
(that is, they need more explanation). This refinement
is shown in fig. 2, where the IPC concept is special-
ized as a Socket and, then as a TCP socket, which
is also specialized in a passive and active one. As
commented before, this example describing a subject
can be considered a generic model, and can be refined
later.
2.2 Scheduling Lectures and Activities
Once we have designed our subjects and concepts us-
ing Class Diagrams, the next step in our methodol-
ogy consists of organizing all activities which lead
to obtaining the proposed learning objectives. Thus,
we will add UML Activity Diagrams to our general
model. Fig. 3 shows an example of a diagram pre-
pared to be used for teaching the concepts related to
the TCP/IP subject. An action could be fully iden-
tified by its name. Furthermore, control flow makes
it easy to move forward through the syllabus. For ex-
Application data framing
Basic usage
TCP-UDP relationship
Network queries
TCP basic exercise UDP basic exercise
Sockets Definition
Figure 3: Sequence of activities involved in a subject.
ample, if we are now in the action called Basic Usage,
then we will execute two exercises in parallel, for ex-
ample, one exercise programmingTCP sockets (in the
lab) and another one programming UDP sockets (at
home).
2.3 Obtaining Specific Courses
In our methodology, an educational itinerary will be
the result of a (parameterizable) transformation pro-
cess applied to a generic course in order to obtain an-
other more concrete. Therefore, the teacher could be
able to react to different constraints such as the stu-
dent backgrounds, and subsequently preparing differ-
ent learning strategies (modifications of the generic
elements designed in our visual subject). This trans-
formation process will mean the existence of an MDA
transformation template, which will be applied to our
existing general models. The model obtained after
the transformation will be a specific one, now includ-
ing modifications in the original diagrams. A typical
scenario of application for an educational itinerary,
would consists of insertions, modifications and re-
movals of actions in existing Activity Diagrams, or
content features and explanations in Class Diagrams.
In the proposed Communications Software course, we
have considered at least three different itineraries:
one that uses the C language and a UNIX platform,
one that uses multiplatform C++ libraries and spe-
cific Design Patterns (Schmidt and Huston, 2003) and
the last one using the Java language. For instance,
fig. 4 shows a partial view of applying the so-called
C/UNIX educational itinerary to the Class Diagram
for TCP/IP concepts of fig. 2. In the figure, ba-
sic concepts on the left part become the ones on the
right, which specify that the concepts will focus on
CSEDU 2010 - 2nd International Conference on Computer Supported Education
436