Paper presented at EDUCON 2012 (April), talking about an experience of using social network, web2.0, microblogging and virtual worlds in the teaching of programming techniques.
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Artigo Educon2012
1. Social networks, microblogging, virtual worlds, and
Web 2.0 in the teaching of programming techniques
for software engineering: a trial combining
collaboration and social interaction beyond college
Leonel Morgado, Benjamim Fonseca, Paulo Martins, Gonçalo Cruz, Ana Margarida Maia, Ricardo Nunes
Hugo Paredes Pro-Chancellery for Innovation & Information Management
Dep. Engineering UTAD – Univ. of Trás-os-Montes e Alto Douro
GECAD/UTAD – Univ. of Trás-os-Montes e Alto Douro Vila Real, Portugal
Vila Real, Portugal {goncaloc, margaridam, rrnunes}@utad.pt
{leonelm, benjaf, pmartins, hparedes}@utad.pt
Arnaldo Santos
Portugal Telecom Inovação
Aveiro, Portugal
arnaldo@ptinovacao.pt
Abstract— With the goal of lessening barriers to the learning of attention has been given to helping students progress from
advanced programming techniques, we put into place a trial basic programming towards advanced programming [2]. In our
which required students to get involved with online communities lecturing experience at the mid-course level (4th semester of a
of programmers. Using a course assignment on software 6-semester program), we are regularly confronted with students
architecture styles, students had study a problem, find basis for a which can create small programs on their own, as well as adapt
tentative approach, and discuss it online with programmers. The and combine small pieces of existing code, yet struggle when
expectation was that students would find motivation for their challenged to think about the code structure in more abstract
studies from both the contact with communities of programmers, ways. Our lecturing focus is on software architecture, with the
and from having to study and reflect upon their problem well
Model-View-Controller (MVC) architectural style being a key
enough to be able to draw the interest of members of those
aspect. In our experience, the general concept of separating
communities. We present the strategy we used, the developments
and outcomes, and ideas for further application of this approach.
MVC concerns is not complex for students in general to
understand. But actually converting this idea into well-
Keywords- programming, collaboration, learning, social structured code is typically quite challenging. This can be
networks, virtual worlds, PLE particularly noticed if one confronts students with the need to
implement it not from scratch but within real-life programming
situations, such as employing preexistent frameworks, libraries
I. INTRODUCTION
or application programming interfaces (APIs) that have not
Teaching computer programming is known to be a been developed with software architecture concerns in mind.
challenging task, and a relevant issue in Computer Science and
related areas. The joint taskforce of the Association for One aspect which drew our attention was the need to
Computing Machinery and IEEE Computer Society for motivate students to tackle the challenge posed by having to
revision of the Computer Science Curriculum (ACM/IEEE structure a program within an overarching architectural
CSC) even states, in its 2008 report, that “there is wide concept. Not only for those students whose programming skills
recognition that a considerable amount of work is needed to are somewhat limited and understandably struggle to take them
discover better and more effective ways of presenting the an extra step, but also for students who, while being able to
discipline of computing” [1], emphasizing the need to adapt code their way around more complex problems, seem not to
curricula not only to the technological aspects of computing, value the longer-term benefits of structuring their code in
but also to new pedagogical developments: “Institutions (...), different, more manageable ways. We found that for some of
must recognize the importance of remaining abreast of progress these students, it is hard to see value in doing architectural-
in both technology and pedagogy” (ibid.). correct code, when they can make their programs work as
intended without this effort.
Traditionally, research concerns in the field of computer
programming learning have focused on the difficulties of Part of this problem, we hypothesize, may be due to lack of
novices and on the program comprehension by experts: little two aspects: experience on long-term development of
Sponsored by Portugal Telecom Inovação, in the scope of the Plano de Inovação do Grupo PT and supported by FEDER Funds through the “Programa
Operacional Factores de Competitividade - COMPETE” program, and by National Funds through FCT “Fundação para a Ciência e a Tecnologia” under the
project: FCOMP-01-0124-FEDER-PEst-OE/EEI/UI0760/2011.
2. programs, and on team-based software development. The programming, object-oriented programming, assembly
rationale for this hypothesis is that complexly-woven software programming, and introductory concurrent programming. They
artifacts can be managed extensively while one keeps also developed two semester-long “lab” projects on structured
developing then alone and continuously, but having to divide programming and object-oriented programming techniques. In
programming tasks by a team, explain programming logic to parallel with the MPIII course, they are attending a course on
new team members, and debug external code are all situations algorithms, and developing a semester-long “lab” project
where the value of having an architectural code organization is applying the concepts of the MPIII course [3].
more readily apparent.
In summary, MPIII students possess significant background
These aspects are partly related to social factors in the on creating and developing programs, but not on doing large-
practice of programming. Research in this area, while new at scale programming, which is one of the learning objectives of
the non-novice level, has been a source of interest for some the ACM/IEEE CSC [1]. The MPIII course aims to support this
time. Gender differences in particular, but not only, have drawn by introducing the MVC architectural style, which basically
some inquiry on the need to research ways to support the proposes a division of concerns between three blocks: model
learning of programming in groups and communities, where (classes holding program state), controller (classes
more advanced programmers can provide support to students to implementing program flow), and view (classes dealing with
assist them in learning [6][7][8]. output). Since its original proposal in 1988 [4], this
architectural style has seen wide adoption in software
To explore this hypothesis, we developed a preliminary engineering practice, but approaches and perspectives have
trial, which involved a course assignment. In it, students had to
varied. In the MPIII course, the original proposal of Krasner &
develop coding approaches to implement MVC-based Pope in 1988 is contrasted with a more recent flavor proposed
architectures using various real-life frameworks, libraries or
by Curry & Grace in 2008 [5].
APIs. For instance: “write a detailed document explaining how
to apply the MVC architectural style to application
development using the Windows Phone Application Platform
and the XNA framework.”
To complete these assignments, students had involve
themselves in online programming communities as part of the
code development (as an actual assignment requirement).
Specifically, the assignment involved four stages for students:
a) Preliminary study of the problem, including analysis
of documentation, and searching for sources on the Web or
technical literature, to attain a starting solution;
b) Online search for programming practitioners and
communities (mailing lists, Facebook public profiles/groups,
Twitter users, Web fora, LinkedIn groups, Second Life groups
and regions, etc.), approaching them, and getting involved;
c) Bringing the problems to those practitioners and Figure 1. MVC flavors in the MPIII course, from [5] (top) & [4] (bottom).
communities, presenting ideas, exchanging viewpoints, and in
general attempt to improve the starting solution; Fig. 1 presents these two flavors of the MVC architectural
style. A very short summary of the differences is that K&P’s
d) Combining the results into a structured document original concept had the controller dealing with user input,
detailing the recommended approach, and into an assessment whereas C&G’s 2008 flavor places input processing in the
report with factual evidence of the progress which led to the view (albeit eventually reporting to the controller). Also, K&P
final version of the document. allowed the model to send messages to the controller (to impact
In this paper, we detail the structure of this trial, its its processing of input), whereas in C&G’s version the model
organization, progress, and results. only sends messages to the view (since in this version the view
is responsible for both output and input). These and other
II. BACKGROUND differences between flavors of the MVC style have an impact
on their adequacy to different problems and systems, and
A. The course context and content: flavors of MVC students are expected to become aware of this complex
relationship between software architectures and their
This work was developed in the context of the course
application. The conversion of the architectural concepts into
“Programming Methodologies III” (MPIII), of the 4th semester
coding practices was supported by various examples, using
of the undergraduate program in Informatics Engineering of the
graphical applications (e.g., Fig. 2) or virtual worlds.
University of Trás-os-Montes e Alto Douro, in Portugal.
Before reaching this course, students attended other courses on In this specific example, the application had two windows:
programming techniques and concepts: computational logic, in the left window the user could click on the “New shape”
basic procedural programming, structured procedural button (topmost) or on the “Exit” button (bottommost). For
3. every click on the “New shape” button, the application would them to invite us into these groups, so we could follow these
randomly select between drawing a rectangle or an ellipse, as discussions and have a better grasp of the processes, doubts,
well as the drawing coordinates. The right window would and hardships behind their learning, which are often difficult to
display a log of the sequence of shapes drawn. gleam from the evolution of text reports alone.
III. THE ASSIGNMENTS
Since students could check on the progress of their peers
online, we needed to have assignments that were structurally
identical, so that student effort distribution would be fair and
students could actually benefit from this openness. But we also
needed them to be different enough to avoid straight copycat
solutions. Our approach was to provide a generic assignment
Figure 2. Sample application for presenting MVC flavors to students. framework or meta-assignment, which was them instantiated
differently for each group of students. Table 1 presents the
Implementing this application using the original K&P structure of the meta-assignment, and Table 2, further below,
flavor of MVC (bottommost in Fig. 1), with user input taking present some of the instantiations for development by groups
place in the controller, meant that the code module behind the of students.
“New Shape” button would take the role of controller, thus
asking the model to generate the data for the new shape (type,
TABLE I. THE META- ASSIGNMENT
color, coordinates), and then that same code would ask the
view code modules to update the drawing area of the left Phase
Literature search on the assigned topic, doing reading notes.
window and the text log of the right window. This could either 1
be done by providing the view code modules with the data Search for professionals & communities of practice online,
Phase
related to the assigned theme, and follow them for a while,
about the new shape, or by notifying them of the need to 2
the get a feeling of their context and style.
update themselves, which they would do by accessing the Involvement with the professionals & communities, debating
model code module. Phase the assigned topic, either asynchronously or synchronously.
3 Devise tentative approaches to solve or develop the assigned
Conversely, implementing this following the C&G flavor topic, then present, debate, and develop them.
of MVC (topmost in Fig. 1), with the user input taking place in Phase Provide an online report of the results and present in class
the views, meant that the code module behind the “New 4 the end product of the process.
Shape” button takes the role of view, thus reporting that event
to the controller module, who would then “select” the views TABLE II. SAMPLE ASSIGNMENT INSTANTIATIONS
(the two windows), in effect asking them to update themselves, Write a detailed document explaining how to use the MVC
as above. In short, apart from the distinction in processing of architectural style to develop applications using
input, the implementation of the C&G flavor is a subset of the Group OpenSimulator/Second Life virtual worlds as a user
possible implementations of the K&P flavor. 1 interface, employing the libOpenMetaverse library. The
document should include specific implementation examples
to illustrate the explanation.
B. Usage of groupware and social software Write a detailed document explaining how to use the MVC
Our intent was to track and support the students while they architectural style to develop applications using the
Group
Windows Phone Application Platform, employing the XNA
developed the assignments. It was also our intention that 2
framework. The document should include specific
students could follow the progress of their peers in this process, implementation examples to illustrate the explanation.
to boost confidence. But we also wanted the process in general Group
Same as group 2, but employing the Silverlight framework.
to be open to mutual access amongst students as a means of 3
peer support, since less skilled students could benefit from
checking the work of more skilled students as a source of IV. THE EXAMPLE PROVIDED
sample methods and possible outcomes. For these reasons, we
used wiki software, which enables online co-editing of A. The theme of the example
hyperlinked editing. Students could access their own pages, In order to support the development of the activities by
detailing their specific assignment and progress, or check up on students, we developed and provided online an example, as a
other students’ pages. Teachers could also at any time check on guide for what was intended. This example was not focused on
the progress of each assignment. And comments, questions, computer programming, to avoid having students follow it too
and recommendations could be placed on individual pages, by closely, rather than develop their own approaches to literature
teachers or students, to support this open process. search, and contact with experts/communities.
To support openness of discussion, we further asked This was particularly important since we were asking
students to create discussion groups on social Web sites such as students to get involved with people outside the academic
Facebook, as platforms for casual debate on the development environment. Were we to provide examples of communities of
of the assignments, e.g., to discuss on how to proceed or practice and/or professionals linked to programming, it would
conduct specific tasks, to discuss viewpoints before committing be highly likely for those to be flooded with student queries
them into code or structured text, etc. And we also asked for looking to reproduce our example, rather than seek alternatives.
4. So, we elected to provide an example where the subject was e- although nowadays we would also have the option of
business, as shown in Table III. presenting public Facebook or Google+ profiles.
TABLE III. NON-PROGRAMMING EXAMPLE PROVIDED (GOALS) D. Example materials for phase 3
To support phase 3, we developed a fictional example of a
Theme E-business
conversation between a student and professional, illustrating
Develop an e-business strategy for a local business.
Consider: which business models to use; which online
what was being requested. Part of these sample materials is
Assignment presented here in Figure 5.
tools are more suited for marketing purposes; which
example
Portuguese companies are actively pursuing this kind of
business approach, and with which strategies/goals?
B. Example materials for phase 1
For supporting phase 1, it was straightforward enough to
provide a list of sample Web sites, sample papers, sample
bibliographic reference style, and sample reading notes.
C. Example materials for phase 2
For supporting phase 2, we searched for on-line public
contacts of experts and communities of practice on the theme
of e-business, mimicking what we wanted students to do for
programming. As mentioned above, since these contacts were
not related to programming, we were avoiding the risk of
students flooding the sample contacts with queries, rather than
making their own efforts to find communities and get involved
in them. Figure 3 presents some examples provided regarding
communities in social networks (Facebook & Orkut).
Figure 3. Communities of practice on e-business, used as examples
Figure 5. Example material demonstrating a conversation with a professional
Further, sample materials were also prepared, as examples
to students of the participation in communities of practice in
social media. The intent of these examples was to provide
students with details on the kind of conversation and
participation that was desired: interested, polite, and relevant.
V. RESULTS
The assignments were developed using the PBWorks wiki
platform [9], at address http://mpiii20102011.pbworks.com. In
all, 62 students were involved, forming 20 groups. Of these, 19
Figure 4. Twitter feeds of e-business professionals in the example groups (59 students) actually took part. The assignment
development ran for 4 months, from start to finish. Table IV
Regarding contacts with experts, we provided some summarizes the work developed by each group.
examples of public Twitter feeds, as shown in Figure 4,
5. Amongst the groups of Table IV, only 7 sustained some able to provide usable examples of approaches to solve it. This
activity throughout all the phases of the assignment. Looking result does not reflect the actual students’ results in the course,
into the number of edits to their wiki pages, we get the data which were much more dependent on tests than on this
presented in Table V, showing that the editing activity took assignment, whose weight on the final grade was 20%. The
place every other day or every three days (except for group 1, ones with clearly “positive” reports and/or presentations were
which only developed their effort over the two final weeks). groups 1, 2, and 5. Also, group 13 was a borderline case.
TABLE IV. ASSIGNMENT DEVELOPMENT BY EACH GROUP TABLE V. EDITS PER DAY, GROUPS WITH SUSTAINED ACTIVITY
Assignment development Editing activity
Group Days of N.º N.º Group Days of N.º N.º Edits / Edits / day /
Summary Edits /day
editing edits members editing edits members member member
Literature + reading notes. Interviewed 1 17 19 5 1.1 3.8 0.22
older UTAD colleagues on the subject.
1 17 19 5
One of their forum posts got 14 responses 2 ≈ 90 61 4 0.7 15.3 0.17
in 4 days. Current reads: 573. Their
questions lacked focus and clarity, 5 ≈ 60 36 4 0.6 9 0.15
particularly contacting via Facebook.
Literature + reading notes. Discussions on 13 ≈ 75 28 5 0.4 5.6 0.07
several fora, gathering ≈ 10 responses and ≈ 75
2 ≈ 90 61 4 14 37 2 0.5 18.5 0.25
≈ 2000 reads. Some short contacts with
college professors and a professional. 16 ≈ 60 19 5 0.3 3.8 0.06
3 ≈ 30 8 5 Added literature locations, nothing else.
18 ≈ 30 13 3 0.4 4.3 0.14
4 11 4 4 Added a single literature location.
Literature + reading notes. Posted in At the end of the process, we asked students to fill in an
5 ≈ 60 36 4 several fora and sent e-mails, but didn’t online survey, using 4-level Likert scales, on the usage and
get responses or only amazement (“????”).
adequacy of the tools involved, and on the difficulties
6 ≈ 30 6 4 Only made a summary of the assignment. experienced in developing it. A total of 36 of the 62 students
7 ≈ 30 3 4 Only made a summary of the assignment. (58%) participated in the survey. We then analyzed the results
considering confidence intervals for each response for a
8 ≈ 30 5 3 Added literature locations, nothing else. confidence level of 95%. These significantly agreed
9 0 0 4 Only created the group page. (75%~80% vs. 20%~25%) on the wiki platform: i) being easy
to use; ii) supportive of collaborative work; iii) allowing
10 0 0 4 Only created the group page. greater interaction with colleagues and teachers; iv) being
11 0 0 5 Only created the group page. useful for developing the assignments; v) being adequate as an
online platform to support the course. And also on vi) the
12 0 0 3 Only created the group page. usefulness of the example documents; vii) whether the
Literature + reading notes. Posted in assignment helped develop new knowledge, competences, and
several fora, used mailing lists and experiences; and viii) whether the activities met the students’
13 ≈ 75 28 5
Facebook. Got significant feedback, with
over a dozen responses and ≈ 2000 reads. personal interests. Slightly more polarizing were: ix) the wiki’s
List of literature, reading notes, contacts support for organizing one’s work (28% disagreeing vs. 72%
14 ≈ 75 37 2 agreeing); x) the amount of time for developing the assignment
established, without significant results.
15 2 16 2 List of literature, few reading notes. (25% vs. 72%); and xi) whether the feedback was sufficient
List of literature, reading notes, contacts
(31% vs. 67%).
16 ≈ 60 19 5 established, some via e-mail, without We also asked where students tried to find and
significant results.
communicate with professionals or communities, with fora
17 ≈ 45 17 3 Added literature locations, nothing else. being the preferred medium, followed by Facebook and blogs,
List of literature, reading notes, contacts then e-mail and Twitter (Fig. 6).
18 ≈ 30 13 3 established, some via e-mail, without
significant results.
19 - - 4 Didn’t take part.
20 2 12 1 List of literature, few reading notes.
The outcome of the effort to study and discuss the assigned
theme was, as mentioned in section III, an online report of the Figure 6. Locales used by students for finding and communicating
results and a class presentation summarizing them. Analyzing
these outcomes, we analyzed them for grading. Summarizing On the main difficulties felt, students pointed two as the
the results for this paper, we are labeling them as “positive” main ones: understanding what was being asked of them
when their overall quality demonstrated that students had (56%), and finding professionals and communities in the field
learned significant aspects of their assigned theme and were (62%). Understanding the actual assignment and solving it was
6. also a difficulty for 44% of students. Language barriers and this course in spite having failed basic-level programming
collaborative work were minor difficulties (21% each). courses (the program does not enforce a prerequisites policy).
On the development of the assignment, 53% of students A positive indicator is that while students found that
reported lack of time as the main issue, with lack of feedback coming across communities and experienced developers online
on the developed work (44%) and lack of motivation (41%) as was their major difficulty, they also expressed their view that
the subsequent most important issues. Not understanding the meeting them/participating and clearing doubts this way were
subject matter followed (31%), with minor issues being low the main factors supporting a strong perspective on the
technological skills (22%) and lack of comprehension of the adequacy of this assignment in the course. Part of this may also
assignment and its goals (19%). be motivated by some feedback we received in class during this
trial. For instance, there was some level of surprise on the part
Finally, the students strongly found the assignment
of students in the level of involvement that community
adequate for the course (72% for, 22% against). The main members showed – some students seemed to expect a colder,
favorable factor was “I managed to clear doubts by contacting more technically-pure approach, rather than a normal human
experts” (50%), followed by “I met experts and discussion
community environment. Also, some students got reprimanded
groups in the field, and shared experiences which enriched my in communities for trying to basically ask for a solution for a
learning” (39%). The unfavorable views were distributed class problem without thinking it over properly beforehand.
relatively evenly between “I had difficulties completing the They were surprised and felt value in realizing that professional
various assignment phases” (31%), “I couldn’t communicate communities value competence and effort over quick fixes.
effectively in the discussion groups” (25%), “the difficulty
level of the assignment was too high” (25%), and “the problem
assigned to me was too complex” (22%). 8% of students had VII. FINAL THOUGHTS AND FUTURE WORK
other unidentified problems. We propose that an approach enabling students to enhance
their contact and participation with professional developers and
VI. DISCUSSION & CONCLUSIONS communities of practice can enhance their learning and provide
motivation for learning advanced programming. However, we
Ultimately, most students did not manage to reach believe that the results show that such approaches require the
successful outcomes. Only 7 groups presented some output development of educational strategies to encourage and support
throughout the various phases of the project, and only 4 the sustained and regular participation of students in
experienced positive feedback from their involvement with communities. It was important for us, as lecturers, to realize
professional developers and online communities of practice, as that students still hoped to be able to overcome lack of
shown in Table IV. community involvement over time with last-minute intense
The relevant feedback was achieved mostly from online efforts – something against which a strategy should be devised.
fora and mailing lists. While students state that blogs where This insight will inform new attempts of the use of the
also a relevant source, their reports don’t actually provide any approach in subsequent editions of the course. It is our hope
concrete evidence of that, which leads us to hypothesize that that ultimately we can support effective involvement of
perhaps they used them as a source of information, but not as a programming students in programming communities.
source of discussion and interaction.
Students report lack of time as the main difficulty, yet all ACKNOWLEDGMENT
but one group tried to complete the assignment in a small span We would like to thanks all students for their participation
of the four months of time provided. This leads us to conclude in the assignments supporting this work. We also wish to thank
that students may have underestimated the need to devote time all professionals and community members contributing to the
over a long period in order to get involved with communities efforts of students.
and gain the attention of professional developers. Their reports
point towards focused bursts of posting and communicating, REFERENCES
rather than to long-haul distributed time allocation. And often
[1] Association for Computing Machinery (ACM) & IEEE Computer
trying to approach communities with little investment in a Society (IEEE-CS), “Computer Science Curriculum 2008: An Interim
starting solution/proposal (or without a starting solution at all). Revision of CS 2001.” Computing Curriculum Series.
http://www.acm.org//education/curricula/ComputerScience2008.pdf
We find this consistent with the fact that “lack of feedback (2008).
on the developed work” and “lack of motivation” are also [2] A. Robins, J. Rountree, and N. Rountree (2003). Learning and Teaching
relevant difficulties. Teachers provided feedback only when Programming: A Review and Discussion. Computer Science Education,
students expressed difficulties or had some interactions vol. 13, no. 2, pp. 137-172.
reported in the wiki pages. Given the apparent concentration of [3] Universidade de Trás-os-Montes e Alto Douro, “Despacho n.º
students on short bursts of work, this meant that teacher 14253/2011 – Regulamento do curso de Licenciatura em Engenharia
feedback would follow a similar patterns, rather than a Informática,” Diário da República, 2.ª série, no. 202, October 20 th, 2011.
sustained on-line contact with the students. [4] G. Krasner, and S. Pope, S. (1988), “A cookbook for using the model-
view controller user interface paradigm in Smalltalk-80,” Journal of
Difficulties related to the lack of mastery or understanding Object-Oriented Programming, vol. 1, no. 3, pp. 26-49.
of the subject matter requirements are common, but that is [5] E. Curry, and Paul Grace, “Flexible Self-Management Using the Model-
unsurprising, given that several of our students are attending View-Controller Pattern,” IEEE Software, vol. 25, no. 3, pp. 84-90.
7. [6] S. Sim, M. Cohn, and K. Philip, “The work of software development as
an assemblage of computational practice,” in CHASE '09 Proceedings of
the 2009 ICSE Workshop on Cooperative and Human Aspects on
Software Engineering, Washington: IEEE Computer Society, 2009, pp.
92-95.
[7] S. Harrel et al., “Virtually there: emerging designs for STEM teaching
and learning in immersive online 3D microworlds,” in ICLS'08
Proceedings of the 8th international conference on International
conference for the learning sciences, Utrecht, Netherlands: International
Conference of the Learning Sciences, 2008, pp. 383-391.
[8] P. Sancho-Tomas, R. Fuentes-Fernández, and B. Fernández-Manjón,
“Learning teamwork skills in university programming courses,”
Computers & Education, vol. 53, no. 2, 2009, pp. 517-531.
[9] PBWiki, Inc., “PBworks | Online Team Collaboration,”
http://pbworks.com/ (retrieved 2011-11-21).