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