Gazi Eğitim Bilimleri Dergisi (GEBD)
Gazi Journal of Education Sciences (GJES)
Cilt. 5; Özel Sayı; 2019; 39~54
E-ISSN: 2149-9381
ISSN: 2149-4932
Transforming Traditional Courses Through Web 2.0 Philosophy:
The Case of an Introductory Programming Course
Hakan TÜZÜN
Hacettepe Üniversitesi
htuzun@hacettepe.edu.tr
Gönderilme Tarihi: 21/07/2019
Kabul Tarihi: 18/09/2019
Yayınlanma Tarihi: 10/10/2019
DOI: 10.30855/gjes.2019.os.01.003
Article Info
ABSTRACT
Keywords:
In this study, the use of ubiquitous Internet tools utilized in an
undergraduate introductory computer programming course at a large
state university in Turkey are examined. Course web space, blogs,
discussion board, e-mail, and personal web pages were among the
Internet tools utilized by the participants of the course. The framework
for using these tools has been conceived as “Learning Programming
2.0,” which was inspired and shaped by “Web 2.0” principles and
practices conceptualized by Tim O’Reilly. Web 2.0 characterizes second
generation Internet services, such as wikis, blogs, and other tools that
encourage interaction and participation through the Internet.
Essentially, Web 2.0 framework includes not only the tools, but also a
set of principles for using these tools such as harnessing collective
intelligence or providing rich user experiences. In this sense, the focus
of the study is not on the tools, but the pedagogical principles followed
to transform the course, the impact of these principles on the context,
and implementation problems. Although the Learning Programming
2.0 framework puts extra load on the shoulders of facilitators, it is
concluded that this approach contributes to formation of a learning
context in which learning programming is meaningful, effective, and
life-long for learners.
Programming
programming
languages,
and
Improving
classroom teaching,
Postsecondary
education,
Teaching/learning
strategies,
Pedagogical issues
Tüzün, H. (2019). Transforming traditional courses through web 2.0 philosophy: The case of an
introductory programming course. Gazi Eğitim Bilimleri Dergisi, 5(Özel Sayı), 39-54. DOI:
https://dx.doi.org/10.30855/gjes.2019.os.01.003
Dergi Web Sayfası: http://dergipark.gov.tr/gebd
Transforming traditional courses through web 2.0 philosophy (Tüzün)
Geleneksel Derslerin Web 2.0 Felsefesiyle Dönüştürülmesi: Bir
Programlama Dersi Örneği
Makale Bilgileri
ÖZET
Anahtar
Kelimeler:
Bu çalışmada, yaygın İnternet araçlarının Türkiye'de bir devlet
üniversitesinde lisans seviyesindeki bir programlama dersinde
kullanımı incelenmiştir. Ders web alanı, bloglar, tartışma listesi, e-posta
ve kişisel web sayfaları, ders katılımcıları tarafından kullanılan İnternet
araçları arasındadır. Bu araçları kullanma çerçevesi, Tim O’Reilly
tarafından kavramsallaştırılan “Web 2.0” ilke ve uygulamalarından
ilham alan ve biçimlendirilen “Programlamayı Öğrenme 2.0” olarak
ifade edilmiştir. Web 2.0; wiki'ler, bloglar ve İnternet üzerinden
etkileşimi ve katılımı teşvik eden diğer araçlar gibi ikinci nesil İnternet
hizmetlerini karakterize eder. Temel olarak, Web 2.0 çerçevesi sadece
araçları değil aynı zamanda bu araçları kullanmak üzere ortak aklın
kullanılması veya zengin kullanıcı deneyimlerinin sağlanması gibi bir
takım ilkeleri de içerir. Bu anlamda; çalışmanın odağı araçlar değil, dersi
dönüştürmek için izlenen pedagojik ilkeler, bu ilkelerin bağlam
üzerindeki etkisi ve uygulama sorunlarıdır. Programlamayı Öğrenme
2.0 çerçevesi, öğretim elemanlarının omuzlarına fazladan yük
getirmesine rağmen, bu yaklaşımın programlama öğrenmeyi anlamlı,
etkili ve yaşam boyu sürer hale getiren bir öğrenme bağlamının
oluşumuna katkıda bulunduğu sonucuna varılmıştır.
Programlama ve
programlama
dilleri,
Sınıf öğretiminin
geliştirilmesi,
Üniversite
eğitimi,
Öğretme ve
öğrenme
stratejileri,
Pedagojik
unsurlar
INTRODUCTION
Software has become very vital for the modern society. At the dawn of the 21st century,
most aspects of everyday life are controlled by software, including banking, transportation, and
medical systems. Closer examples at a personal level would be elevators, air conditioning,
electricity, and water in office buildings and homes, air bags in cars, traffic lights on streets, and
all types of communication among people other than snail mail. As more and more routine and
critical tasks are controlled by software, the society needs more and more programmers to fulfill
this increasing demand. As an example, while the Apollo 11 mission to the Moon contained
145,000 lines of code, this increased to 400,000 lines in Space Shuttle missions, and 2.5 million
lines in Curiosity mission to Mars. Further, the International Space Station’s operations run
through 2.3 million lines of computer code (“NASA facts and figures,” 2019). With programming
being this much crucial, cultivating programmers is more important than ever to meet the
demands of society (European Schoolnet, 2015). However, creating software is a complex process
(Kalelioğlu, Gülbahar & Doğan, 2017) and a literature review reported many difficulties in
teaching and learning programming in formal courses (Saygıner & Tüzün, 2018).
Related Literature and Theoretical Framework
The purpose of a programming course is usually to teach about basic programming
concepts, data and control structures, and good programming style (Malik, 2000). According to
Gries (2006), influential innovators of programming such as Niklaus Wirth made the following
contributions in 1970s to the teaching of programming languages, but these are not emphasized
40
Transforming traditional courses through web 2.0 philosophy (Tüzün)
in programming courses anymore: 1) Simplicity, beauty, and language are important in teaching
programming to beginners, 2) Principles of developing and refining programs are more
important than mere code writing, and 3) A program should be developed in context while the
context providing opportunities for program development. Gries (2006), an instructor teaching
programming for forty years, summed these up by emphasizing that the purpose of
programming education should not be conveying facts into students, but to teach them to think.
Researchers and practitioners have utilized innovative pedagogies such as pair
programming (Zin, Idris, & Subramaniam, 2006), or innovative software environments such as
Alice (Bishop-Clark, Courte, & Howard, 2006), or block-based programming environments
(Berland, Martin, Benton, Smith, & Davis, 2013) for teaching programming languages. A rising
trend is the use of narrative (Burke & Kafai, 2010), language, and online methods. An example of
the use of language is the practice of Panell (2003). Based on his observation of the correlation
between the best programmers in his class and their use of everyday language, Panell concluded
that teaching an Introductory Programming Course (IPC) is all about teaching a new language.
For that reason, he recommended using language related activities. Panell utilized unusual
teaching methods in his programming courses such as using poetry and bringing drama into
programming. He concluded that students learnt more from these types of experiences than they
did by taking notes in lectures.
An example of the use of online methods is the study of Boyle, Bradley, Chalk, Jones, and
Pickard (2003). When these researchers experienced problems in student achievement rate and
retentions in their IPCs, they followed a blended learning approach to deal with this problem.
Their blended environment included both face-to-face and online components, provided support
to students through online resources, and assessed the performance of the learners through
continuous online methods. Results indicated a widespread use of online components by
learners. Overall, the learning environment blended with online components resulted in
improvements in pass rates and positive student attitudes in the IPCs studied in this research.
When Kelleher and Pausch (2005) reviewed programming languages and environments
designed for making programming accessible to novice programmers, they identified the
problems with learning a programming language as not only the mechanical barriers such as
syntax and rules of a language but also as sociological barriers such as learners not seeing the
relevance of programming or their perceiving programming as an individualistic and isolated
act. They identified two kinds of sociological barriers in programming: the absence of “social”
and “compelling contexts” for learning about programming. They added sociological barriers
were harder to address than the mechanical ones since it was harder to identify them.
Consequently, most of the environments they reviewed did not address this issue. They
suggested that students could help each other’s learning, look and use each other’s work, and
work on projects together in future programming courses.
This study focuses on a formal learning context in which ubiquitous Internet tools were
integrated to overcome mechanical and sociological barriers in students’ learning in an
undergraduate introductory computer programming course. Towards this purpose, the
pedagogical principles followed to transform the course, the impact of these principles on the
context, and implementation problems are examined.
41
Transforming traditional courses through web 2.0 philosophy (Tüzün)
METHOD
An ethnographic method conceptualized by Ge, Thomas, and Greene (2006) as
“Technology-Rich Ethnography” (TRE) was utilized in this study. TRE is a compilation of data
gathering methods, which are appropriate for examination of technology-rich learning
environments in order to see what is going on in the context. While there were 13 cases between
2006 and 2018, a single case was selected to fit data to the journal limitations. The case from 2006
was selected to be illuminative of the data for the reason that it was the transition period in terms
of using the pedagogical principles.
Research Context and Participants
The research context was a Computer Education and Instructional Technology department
at a major research university in Ankara, Turkey. The department aims to educate prospective
computer teachers who will teach Information Technology (IT) related courses in K-12
institutions. Major components of the curriculum in the department include domain related
courses (50%), pedagogy related courses (25%), and general courses (25%).
“Programming Languages I” is a 5-hour per week (3 hours for lecture and 2 hours for lab
activities) mandatory course in the curriculum to be taken at sophomore level. In the curriculum
this course is defined as an IPC introducing students to such topics as general structure of
programming, data types, variables, sub-programs, and standard functions and procedures. The
course is the first programming course students encounter in the curriculum and precedes
another mandatory programming course about visual programming languages in the sophomore
year. There were 82 students enrolled in two sections of this course in the Fall semester. One of
the boys dropped out of the course early in the semester. Therefore, 81 students (30 girls, 51 boys)
completed the course.
Transformation of the Course
An analysis of the enrollments showed that 45 (56%) students were taking the course for
the first time, while 36 (44%) students were repeating it. The repeating students were asked what
they thought were the reasons for repeating the course. They indicated the following difficulties:
1) They directly experienced program codes without understanding the meaning of
programming, 2) and as a result they had motivational problems and related drop-outs, and 3)
they had difficulties with showing in the exams what they learnt in the course. Overall, all
repeaters pointed to the problematic didactic teaching method. The instructor would teach
programming in this context for the first time, and the experience of the repeaters demonstrated
the need for more active teaching methods.
Transformation of the course was framed by insights, inferences, and attitudes the
instructor has developed throughout his programming experience. He started computer
programming at the age of eleven with Commodore 64 computers. He developed amateur
programs on this simple platform. During this period, he concluded that one could learn
programming on an individual effort; however, English would be a must for that person since most of the
original resources were available in English. His curiosity on programming guided him to IT field
and he studied computer systems education at undergraduate and graduate level, during which
he practiced such computer languages as Basic, Pascal, Assembly, and C. During this period, he
concluded that one’s programming knowledge and skills could become better with formal
education; however, it would not be possible to learn all aspects of a programming language in
the limited time frame of a programming course. For that reason, learners would have to keep on
42
Transforming traditional courses through web 2.0 philosophy (Tüzün)
improving their knowledge and skills outside the course. Upon completing the undergraduate
education, he became a computer systems teacher and taught courses about programming at a
vocational high school for one year and at a university for another year. During this period, he
considered that students had to learn programming simply because they were present in class. Most of
the time, his pedagogy was limited to didactic teaching methods, isolated learners from each
other, and assessed their learning according to the written program codes on paper.
When the instructor started and continued his doctoral degree in an instructional
technology program, he became enmeshed with the importance of meaning, motivation, social
interaction, and culture in learning. At the same time with his doctoral education, when he started
to work as a professional programmer in a National Science Foundation project, his vision on
learning and teaching programming was supported by additional insights. First, he had to extend
his repertoire by learning about such programming languages and technologies as Perl,
JavaScript, and MySQL since these were the backbone of the project. He did not have time to
attend formal courses on these languages and technologies; therefore, he had to improve his
knowledge just-in-time. This constructed his view that programming education is a life-long
endeavor. Second, while working in the project, he experienced that programming was not a
straightforward process that only included coding. Programming actually was about solving
emergent problems in the context of a relevant project by using contextual tools. These contextual tools
included not only printed resources such as books but also a community of programmers who
dynamically contributed to others by using discussion boards, blogs, and knowledge bases. And
third, he had previously taken numerous formal courses about programming, but he still had to
re-learn or remember much of this previous knowledge. In doing this, he did not have to
memorize anything since these were available and accessible anytime in the contextual tools
previously mentioned. Therefore, he recognized that some programming concepts and skills were
consolidated after numerous exposures to the same content. All these previous experiences of the
instructor contributed to the transformation of the IPC.
Research assignments, lectures, lab assignments, group discussions and interactions, and
personal reflections formed the teaching methods of the restructured IPC. A typical week’s
schedule in the course syllabus is presented in Table 1.
Table 1.
A Typical Week’s Schedule in the Syllabus
Week
Topics
[Tasks] & {Lab Activities} for students
Week #8
- Week08.ppt
- [Send topic research for Week 9]
lecture
- {Complete the activities in the document
(The process of
Lab08.doc}
converting a
- {Complete weekly blog entry about what you
problem into a
learnt in the lecture}
program)
One of the learners reflected how these components functioned in the context of the course:
We were coming to the lecture with prior knowledge because of the research assignment
[about that week’s topic]. We were attending the lecture, some of which included
participatory activities. We were doing a variety of activities [structured by the instructor]
in the lab related to the topic, and at the end of the lab we were blogging [about what we
learnt that day]. If we examine this practice as a whole, we would have covered that week’s
43
Transforming traditional courses through web 2.0 philosophy (Tüzün)
topic for four times and the last iteration also gave us a chance for interpretation. This
practice didn’t give us a chance other than learning.
Data Sources
The following components of TRE were employed in this study: 1) observation records and
reflections from the course instructor, 2) end-of-semester reflection reports from learners, 3)
weekly blog entries by learners, 4) discussion board postings by learners, and 5) demographics
of learners. End-of-semester reflection reports from learners constituted the main TRE data source
that provided the richest and the most useful information. Other data sources such as instructor’s
observation records and reflections served in triangulating this primary data and providing
trustworthiness.
Data Analysis
In the reflection reports, the learners were asked the following question: “To what degree
Internet tools utilized in the course such as e-mail, blog, and discussion board have made an
impact on your learning?” Responses were categorized among the Internet tools by their impact
and utilization problems by following open coding (Glaser & Strauss, 1967). Quantitative data
regarding the use of e-mail, blog, and discussion board were tabulated to obtain the total,
minimum, maximum, and average utilization of these tools. The categories were explained by
tabulated statistical data and data drawn from the reflection reports. As recommended by
Creswell (1998), a reviewer who had research and teaching experience related to programming,
acted as an external audit to identify and eliminate any biases in results and interpretations.
RESULTS
Impact of the Internet Tools
E-mail. The instructor sent out 87 messages over the semester. 16 of these messages were
directed to all learners while 71 of them were directed to specific individuals. The instructor
received 1002 messages, 85 of which included general questions and 917 of which included
assignments. Learners indicated the use of e-mail linked the learners and the instructor out of
class. The use of e-mail was necessary to deliver many class assignments, and it provided
sustained motivation:
Since you were sending your announcements and feedback through this channel, checking my emails frequently became a habit.
[The use of] e-mail was both necessary and made it easy to deliver research assignments and exams.
Handing these over would be difficult and time consuming.
My being informed by e-mail on what I needed to do exclusively by the course instructor, our
continual communication with him, and his immediate feedback [by e-mail] when I made a mistake
increased my interest towards the course. Students like the course the most when they are paid attention
to.
Blog. The least number of blog entries was for second week that included the response of
66 learners while the most number of blog entries was for ninth and tenth weeks that included
responses from 79 learners. On average, 71 learners reflected about their learning each week.
When collective entries for weeks were imported to a word processor, they occupied between 18
pages (second week) and 55 pages (fourteenth week) of reflections, while the weekly average
collective blog contribution was 37 pages. The blog tool impacted the learners at personal and
44
Transforming traditional courses through web 2.0 philosophy (Tüzün)
interpersonal levels. At personal level, blog tool increased the concentration of learners within
lectures:
The blog assignments being related to what was covered in the lectures made me fully concentrate
within the lectures.
Blogging helped learners with recalling previous topics:
I was reviewing the topics I forgot about by following the blogs [I wrote].
Another impact of blogs at personal level was consolidating and critiquing that week’s
content:
Blog was a repetition and evaluation of that day’s topic from our own perspectives. Objectively, I
tried to write about everything I did and experienced that day (including things like if the lecture bored me
and if I slept in the lecture). This showed me how much I achieved in the course that day, and also showed
how much more I should achieve. It was also increasing my attention to the course.
I guess blogging was a useful self-evaluation tool. This way, I knew what I achieved and what I was
missing related to that week’s topic, I was linking that week’s topic with previous weeks’, and I was
speculating about how my learning in that week would benefit myself in the future.
Blogging helped with correcting learners’ general misconceptions about specific
programming topics:
Another positive outcome of blogging was that it afforded the instructor correcting any
misunderstandings that we thought we understood in the lectures.
The blog tool also compensated the learners when they were not able to attend a specific
lecture:
I was not able to attend the lecture a week, and by going through [my friends’] blogs I compensated
for this deficit.
At the interpersonal level, the blog tool allowed for sharing and paying attention to others’
perspectives:
I was supplementing the issues I missed in the lecture and also the issues I didn’t understand about
by reading through my friends’ blogs.
In my opinion, the public availability of blogs [to each other] supported the course. Because, it
allowed others to see what they learnt in the class and how they related the topics to previous topics. This
way, we had a chance to study a topic from multiple perspectives.
Discussion board. Excluding 842 messages under entertainment topic and 627 messages
under technology news topic, learners posted a total of 1626 messages related to course content
in the discussion board. 1300 of these messages were under 13 topics initiated by the instructor,
and 326 messages were under 8 topics initiated by learners. For topics that were initiated by the
instructor and required mandatory participation, 36 learners (topic of “what would happen?”) to
76 learners (topic of “why binary system?”) contributed. The average number of learners
participating in each mandatory topic was 52. The biggest impact of the discussion board was
that it allowed for communication among course participants out of class:
Every course should definitely have a discussion board. I was following all students’ perspectives
there, I was able to learn through the resources sent, and I was able to direct questions and get answers. It
45
Transforming traditional courses through web 2.0 philosophy (Tüzün)
was like a library. Since there were many students taking the course, the participation was immense. The
topics in the discussion board on “entertainment” and “technology news” added an extra flavor.
One of the learners creatively explicated the overall pedagogical impact of the discussion
board:
In our pedagogy relates courses, we constantly touch upon an issue. Our instructors always indicate
that students learn better from each other; they communicate the ideas to each other the way they
understand. Discussion board served in this purpose by presenting this opportunity to learn from each
other’s learning. I benefited a lot in terms of programming and IT from the topics of discussion board.
Characterizing the Use of Internet Tools: Analytical Web 2.0 Framework
The crash of the dot-com bubble in 2001 was a turning point for the Internet. It was
observed that the software companies that survived this crash had some common characteristics.
These characteristics were conceptualized as Web 2.0, and the concept embraces a set of principles
for the design of next-generation software for the Internet (O'Reilly, 2005). According to Web 2.0
framework, Internet applications could be at a varying distance to these principles. The more
principles an application contains, the more Web 2.0 it is. The Web 2.0 framework was utilized in
this study as an analytical lens to examine the activity of learners in the IPC through Internet
tools. The concept of “Learning Programming 2.0” was inspired by “Web 2.0” principles and
practices conceptualized by O'Reilly (2005). It denotes a set of principles for using in
programming education. While Web 2.0 defines seven principles, Learning Programming 2.0
framework contains seven transformed principles. Below, Web 2.0 principles are explained based
on O'Reilly (2005) and their corresponding equivalents in Learning Programming 2.0 framework
are explicated. An advanced organizer is presented in Table 2.
Table 2.
Principles of Web 2.0 and Learning Programming 2.0
Principles identifying
“Web 2.0”
1) The web as platform
2) Harnessing collective intelligence
3) Data is the next intel inside
4) End of the software release cycle
5) Lightweight programming models
6) Software above the level of a single
device
7) Rich user experiences
Principles identifying
“Learning Programming 2.0”
1) The context as platform
2) Harnessing collective intelligence
3) Added value
4) End of the exam-based assessment
5) Lightweight course management models
6) Learning above the level of brick-andmortar
7) Rich learner experiences
The web as platform (the context as platform). Web 2.0 applications treat the web as a
platform; different web services scattered over the Internet function together seamlessly to
deliver an integrated page to a reader on another computer on the Internet. In the Programming
2.0 framework, this principle takes the form of “the context as platform;” i.e., multiple tools and
pedagogies are utilized in multiple contexts as part of the programming course to support
students in their learning.
The Web 2.0 framework points to the importance of data in Internet applications: “The
value of the software is proportional to the scale and dynamism of the data it helps to manage”
(O'Reilly, 2005). Google, for example is a specialized database with its extensive database
46
Transforming traditional courses through web 2.0 philosophy (Tüzün)
management capabilities. In the IPC, the course Web space was utilized to provide this dynamism
of the content. The course Web space brought together such tools as lecture notes, lab activities,
and blog and discussion tools. These tools dynamically and organically increased the content and
value of the course over the semester.
The Web 2.0 framework advices to “leverage customer self-service and algorithmic data
management to reach out to the entire web, to the edges and not just the center, to the long tail
and not just the head” (O'Reilly, 2005). Here, the long tail refers to the collective power of tiny
Web sites that constitute the majority of the Internet. As an example, with its AdSense technology,
Google invented a way to push its commercials to hundreds of thousands of these tiny Web sites.
In the IPC, all learners were reached out by e-mails to connect them to the course when they
existed out of class. Reminders about the upcoming assignments and emerging issues were
shared regularly through e-mail messages.
Another key Web 2.0 principle indicates that “the service automatically gets better the
more people use it” (O'Reilly, 2005). Most point to point (P2P) applications are an example of this
principle. In these applications, every client in the network also participates as a server. The
implication of this principle for Learning Programming 2.0 is that every learner is a potential
instructor at the same time. Learners shared their knowledge and skills through the blog and
discussion tools in the course for the benefit of their peers.
Harnessing collective intelligence (harnessing collective intelligence). Major Web 2.0
applications are able to harness the collective intelligence of their users. eBay, for example, is
really about the collective activity of its users. This service provides a context for its users and it
organically grows in response to users’ activities (O'Reilly, 2005).
The blog and discussion tools enabled harnessing collective intelligence of learners in the
IPC. There were structured activities scattered through the semester for this purpose. Such a
regular learner task was learners’ posting to the discussion board weekly about what they did
not understand about that week’s topic and whether they wanted to follow-up any additional
issue out of curiosity. As an example, the topic for week thirteen was about debugging, and
postings about this topic generated 228 messages in a single week. These messages contained 40
questions initiated by 30 different individuals and 188 answers responded by 47 different
individuals. All 40 questions for this week were answered. Clearly, it was almost impossible for
the instructor to offer this opportunity to 81 students because of time constraints but collective
power of learners created an extended learning opportunity.
Harnessing collective intelligence of users in Web 2.0 applications requires the
encouragement of users towards participation. There are three methods for such encouragement.
The first one is the method of P2P services in which every participant is a natural contributor.
Another method is to pay users for their contribution. A third method is to find volunteers for
their contribution just like occurring in open source communities. The learners in the IPC were
encouraged to share their collective intelligence by a combination of these three methods. The
participation of learners was frequently asked and encouraged both in class and through e-mail
messages. In addition, an assessment method that is based on participation was followed. For
example, 16% of the overall course grade for a learner was assessed based on the contribution of
that learner to the discussion board topics.
Learners were asked to put together a personal web page at the beginning of the semester
to foster a feeling of collectiveness and community. These pages included a learner’s name, e47
Transforming traditional courses through web 2.0 philosophy (Tüzün)
mail address, prior experience related to programming and using various software, prior courses
taken related to programming, and learner’s expectations from the course, along with a picture.
These personal web pages were published in the course web space and they were accessible to
all learners.
Data is the next intel inside (added value). Database management is a core prerequisite
of Web 2.0 applications. As an example, multiple services provide mapping services through the
Internet, such as MapQuest, Yahoo, Microsoft, and Google. Other companies can license the same
map data through providers and provide a similar service. In this sense, the extension of data
through added value is essential for Internet applications to gain competitive advantage over
others (O'Reilly, 2005). For example, although MapQuest was the first mapping service emerged
on the Internet, it obliged to share the users with other similar emerging service providers. Google
Earth, one of these emerging services, on the other hand added value to the same data with such
extensions as community layers, in which users could tag locations on the maps. Had the
MapQuest added this kind of value, it would have been very difficult for the competitors to enter
the market just by licensing the map data.
This kind of value was added to the IPC by blog and discussion tools. Useful information
was presented by learners especially through the discussion board. As an example, one of the
learners informed other community members in the fifth week of the course about the availability
of a very rich code searching service that even the course instructor was unaware of. After
learning about the availability of this service, the instructor immediately e-mailed other learners
to ripple this added value.
End of the software release cycle (end of the exam-based assessment). Software
companies working according to the Web 2.0 principles deliver a service and not a product. For
that reason, the software needs to be constantly updated. As an example, Flickr releases new
versions in every half hour (May, 2005). In this continuous release cycle, users are treated as codevelopers. Their participation is constantly monitored to see which new features are used, and
how they are used. This software release model produced the concept of “perpetual beta,” in
which software is released on a very frequent basis (O'Reilly, 2005).
In Learning Programming 2.0 framework, learning of a student in the IPC continued on
a frequent basis since the performance of the learners were assessed not just through a single endof-the-semester final exam but also through such “perpetual” means as research assignments,
weekly blog entries, discussion topics, and lab assignments. Besides, the nature of the exams
measured more than memorization. For example, the mid-term exam was take-home type,
spanned to a whole week, and required reporting the creation of an authentic programming task.
The final exam included many different types of questions while avoiding “write code on paper
that will do this” type of questions. In addition, the grade weight of the final exam over the course
grade was minimal.
In perpetual assessment of learners, their participation in tasks and activities were valued
and learners were perceived and treated by the course instructor as co-developers of the course
through the artifacts they produced and contributed. For this purpose, the organization of the
course was loosely structured in order to flexibly integrate contributions by learners. For
example, one of the learners posted to the discussion board articles related to programming
algorithms in the eleventh week of the course. Coming out in a national computer magazine, the
articles provided a useful knowledge base in an appropriate technical language suitable for
novices. Although the topic of algorithms was covered in the sixth, seventh, and eight weeks of
48
Transforming traditional courses through web 2.0 philosophy (Tüzün)
the course, the instructor decided to utilize these artifacts to consolidate learners’ knowledge and
skills. For this purpose, the learners were assigned the task of reading these articles and posting
a one-page summary and critique to the course blog by the following week. One of the learners
indicated at the end of the semester reflection that “reading these articles changed [his] perspectives
into programming.” The instructor has continued to use these articles in the following iterations of
the IPC with a similar effect on learners.
Lightweight programming models (lightweight course management models). Web 2.0
applications usually utilize simple programming technologies. These simple technologies allow
for hackability and remixability with other technologies, since they don’t prevent re-usability. As
an example, the application of housingmaps.com was built simply by merging together two
existing services. Web 1.0 components are everywhere; but Web 2.0 applications create value
simply by assembling them in novel or effective ways (O'Reilly, 2005).
In the IPC, a lightweight course management model was embraced for the utilization of
Internet tools. A fragmented structure was utilized to accomplish this instead of using a Learning
Management System (LMS). Blogging and discussion board tools and other resources such as
course syllabus, PowerPoint lectures, lab assignments, library resources, online books, and
personal web pages were accessible through the course Web space (Figure 1). The course Web
space was actually a browsable directory structure on the instructor’s personal homepage on the
university’s web server. The lack of a course Web site, Web page, or course LMS prevented the
complexity of the course management; the instructor was easily able to extend the tools and
resources available to learners by dragging and dropping them to the course Web space. This
remixing of the simple existing tools and content created a synergy without creating extra hassle
for the learners:
“Programming Languages I” course was such a planned course from head to toe. I conceptualize
this course as a very well ordered home context. We could find anything we needed since everything was
in place. Catering our needs just-in-time did not exhaust us since we did not have to search for them room
by room. Fragments in the course Web space were like rooms. With its discussion board, blog, and library,
the course Web space resembled the kitchen, living room, and hall of a house.
Figure 1. The course web space
Software above the level of a single device (learning above the level of brick-and-mortar).
Web 2.0 applications are not limited to just the PC platform. iTunes is a good example of this
principle. iPod/iTunes combination spans multiple devices (O'Reilly, 2005). In Programming 2.0
49
Transforming traditional courses through web 2.0 philosophy (Tüzün)
framework, this principle takes the form of “learning above the level of brick-and-mortar.” In the
IPC, learners participated in activities both in class and out of class.
The impact of this extended participation was clearly visible. One learner indicated that
“they extended the course into other times through the opportunities provided by the Internet.” Another
one indicated “the course broke the time limitations and provided opportunities out of class such as
searching solutions to problems and getting feedback.” Another one summarized the overall impact of
these Internet tools: “All these tools connected me to the course even at home.”
Rich user experiences (rich learner experiences). Web designers are able to build user
interfaces for Web 2.0 applications as rich as local PC applications (O'Reilly, 2005). Similarly, the
Internet tools afforded a rich and active learning environment advocated by most recent learning
theories:
The course was not built on a single learning resource, it guided us to research. We were not used
to this method, and it was very different from learning from a single resource that we were used to. I believe
this method was quite constructive and useful; because while searching through these resources you are
trying to find what you need by carefully reading them, which makes you think.
Implementation Problems
An analysis of learners’ access to IT outside the school revealed that the majority (90%) had
access to a computer with Internet access while a small number (10%) did not. Those learners
without IT access solved this problem by using public Internet cafes:
Since I did not have a computer at home, I was not able to use the discussion board effectively. For
my assignments, I had to drink many teas at Internet cafes :)
Most of the learners critiqued getting credit towards discussion board participation, and
indicated this strategy resulted in redundancy of information:
I think the discussion board diverted from its main purpose. Students sent the same information
over and over again to get credit. I witnessed many times that a question was answered by the same multiple
responses.
Some learners however developed strategies to overcome redundancy in the discussion
board:
I think the discussion board was effectively used. Many friends shared [with each other]. I was not
able to read them all, but by being selective I learnt a lot.
A common concern was about the submission of assignments by e-mail:
Sometimes the e-mail system has problems, like the server going down, and etc. As a result, our
assignments sent by e-mail don’t go to their target, and although we sent it, it is as if we did not, and this
creates an anxiety on us.
To overcome this anxiety, the instructor sent out an e-mail message to the whole class after
the due date of an assignment, acknowledging received and absent submissions. Related to this
regular interaction between the instructor and learners, the single biggest difficulty of Learning
Programming 2.0 framework from the perspective of instructor was the extensive time
requirements for guidance and assessment of this immense learning community. Learners were
also aware of this requirement and acknowledged the burden of the instructor:
50
Transforming traditional courses through web 2.0 philosophy (Tüzün)
Our instructor insistently avoided [following] traditional didactic teaching method, and I think this
was good. I can say he wore himself out; he was constantly giving us feedback.
Following, controlling, and grading all of our activities should be very time consuming and
tiresome.
I deem the real difficulty was on the shoulder of the instructor. Addressing the community and
accurately guiding them is a quite difficult task.
DISCUSSION AND IMPLICATIONS
The purpose of this study was to integrate ubiquitous Internet tools in an undergraduate
introductory computer programming course to overcome mechanical and sociological barriers in
students’ learning. Course web space, blogs, discussion board, e-mail, and personal web pages
were among the Internet tools utilized by the participants. Web 2.0 framework was used as an
analytical lens for characterizing the use of Internet tools in the IPC. The findings point towards
the issues discussed below.
The use of Internet tools in the IPC has been successful in addressing the previous
underlying problems like motivation, attendance, and achievement. In terms of motivation,
Perkins, Hancock, Hobbs, Martin, and Simmons (1989) classify novice learners of programming
as “stoppers” and “movers.” When faced with a problem, stoppers discontinue the task while
movers persist in spending effort. The use of Internet tools in the IPC impacted the learners to
have a positive attitude towards learning about programming, which in turn prevented them
from becoming stoppers. In terms of attendance, just one learner dropped-out early in the
semester and this was a student dropping-out all of his other courses. In terms of achievement,
just one learner was graded less than 50% (failed according to university grading criteria), 7
learners were graded between 50% and 65% (passed if learner’s overall GPA was over 1.80 out of
4.00), and 73 learners were graded over 65% (passed). Considering that some contexts of
programming education have an achievement rate of as low as 32% and a drop-out rate of as high
as 52% (Beise, Myers, VanBrackle, & Chevli-Saroq, 2003) these results are quite remarkable. The
use of Internet tools in parallel to the Web 2.0 framework created a field of attraction in the course
context. As a result of this attraction, learning programming was meaningful for learners,
attendance increased almost to perfection, and learners’ achievement rate increased.
Learning programming is a complex process that requires mastering concept of programs,
relationship between computer hardware and programs, mechanics of programming languages,
general structures such as conditionals and loops, and additional skills such as problem solving,
testing, and debugging (DuBoulay, 1989). It is so difficult to cover all these components at once
in the limited time frame of an IPC. For that reason, having incremental opportunities for
exploration is essential in programming education to handle the complexity of learning about
many components (Green, 1990). The Internet tools extended the boundary of the formal IPC in
terms of time and place while the learners had incremental and distributed opportunities for
exploring and mastering many programming components through these tools.
Two of the Internet tools deserve special consideration with their pedagogical affordances
for teaching and learning programming. The blog tool afforded the learners the opportunity to
reflect on their understandings. Learners used their natural language while explicating about the
learning activities, which is deemed as important in learning programming languages (Gries,
2006, Panell 2003). While blogging, the learners speculated about why they were learning and
how to use this learning, and also made connections with their past learning. Their discourse in
51
Transforming traditional courses through web 2.0 philosophy (Tüzün)
the blogs also informed the instructor about any misconceptions they constructed, and provided
an opportunity for modification. Both the discussion board and blog tools not only increased the
interaction among learners, but also afforded learners helping each other’s learning, and looking
and using each other’s work as suggested by Kelleher and Pausch (2005). This way, they helped
with the formation of a Community of Practice (CoP, Wenger, 1998) among the learners of
programming. The perception of community was such evident in learners’ reflection responses
that most of them answered the questions from the first person plural perspective (i.e., we).
Further, the community aspect was so strong among the learners that it eliminated the barrier
between two different sections of the course that were on different days of the week. Additionally,
the instructor being a part of this community and his becoming familiar with the members
through the trails in blogs, discussion board, and personal web pages not only motivated learners
but also afforded the instructor to personalize learning to many different personalities.
Approximately ten years are required to turn a novice programmer into an expert one. For
that reason, a novice programmer becoming an expert is not possible in a four-year IT program
(Winslow, 1996). Related to this limitation, literature suggests that the focus in programming
education should be on student’s learning instead of instructor’s teaching to foster reflective and
life-long learners (de Raadt, 2007; Robins, Rountree, & Rountree, 2003). The Internet tools utilized
in the IPC facilitated the formation of a learner-centered context while increasing the awareness
of learners into the importance of being life-long learners.
CONCLUSION
This study showed that, in addition to being useful for distance education, ubiquitous
Internet tools can increase the quality and effectiveness of face-to-face “proximal education.”
Although Learning Programming 2.0 engages the facilitator with many tasks and commitments
over just lecturing in class and just organizing a mid-term and a final exam, the framework pays
off by helping with the formation of a learning context in which programming education is
meaningful, effective, and life-long for learners. As the continuity and advancement of modern
society is becoming more and more dependent upon software and people programming them,
innovative frameworks and pedagogies for programming education needs to be conceptualized,
applied, verified, and extended. Learning Programming 2.0 framework is such an effort in this
direction and it is expected that future work will verify and extend this grounded framework.
ACKNOWLEDGEMENT
Öğretim Teknolojileri alanında A.B.D.’de doktora eğitimi için 1998 yılında kazandığım
bursu değerlendirip değerlendirmemeyi düşünürken alan hakkında verdiği bilgiler ve
yönlendirmeleri ile rehberlik yaparak mesleki gelişimime katkı sağlayan Sayın Prof. Dr. Halil
İbrahim YALIN Hocama teşekkür eder, kendisine mutluluklar dilerim.
REFERENCES
Beise, C., Myers, M., VanBrackle, L., & Chevli-Saroq, N. (2003). An examination of age,
race, and sex as predictors of success in the first programming course. Journal of Informatics
Education and Research, 5(1), 51-64.
Berland, M., Martin, T., Benton, T., Smith, C.P., & Davis, D. (2013). Using learning analytics
to understand the learning pathways of novice programmers. Journal of the Learning Sciences,
22(4), 564-599.
52
Transforming traditional courses through web 2.0 philosophy (Tüzün)
Bishop-Clark, C., Courte, J., & Howard, E.V. (2006). Programming in pairs with alice to
improve confidence, enjoyment, and achievement. Journal of Educational Computing Research,
34(2), 213-228.
Boyle, T., Bradley, C., Chalk, P., Jones, R., & Pickard, P. (2003). Using blended learning to
improve student success rates in learning to program. Journal of Educational Media, 28(2-3), 165178.
Burke, Q., & Kafai, Y.B. (2010). Programming & storytelling: Opportunities for learning
about coding & composition. In Proceedings of the 9th International Conference on Interaction
Design and Children (pp. 348-351), Barcelona, Spain.
Creswell, J.W. (1998). Qualitative inquiry and research design: Choosing among five
traditions. Thousand Oaks, CA: Sage.
de Raadt, M. (2007). A review of Australasian investigations into problem solving and the
novice programmer. Computer Science Education, 17(3), 201-213.
DuBoulay, B. (1989). Some difficulties of learning to program. In E. Soloway & J.C. Spohrer
(Eds.), Studying the novice programmer (pp. 283-299). Hillsdale, NJ: Lawrence-Erlbaum
Associates.
European Schoolnet (2015). Computing our future: Computer programming and coding Priorities, school curricula and initiatives across Europe. Retrieved July 20, 2019 from
http://www.eun.org/resources/detail?publicationID=661.
Ge, X., Thomas, M.K., & Greene, B.A. (2006). Technology-rich ethnography for examining
the transition to authentic problem-solving in a high school computer programming class. Journal
of Educational Computing Research, 34(4), 319-352.
Glaser, B.G., & Strauss, A.L. (1967). The discovery of grounded theory: Strategies for
qualitative research. Chicago, IL: Aldine.
Green, T.R.G. (1990). Programming languages as information structures. In J.M. Hoc,
T.R.G. Green, R. Samurcay, & D.J. Gillmore (Eds.), Psychology of programming (pp. 117-137).
London: Academic Press.
Gries, D. (2006). What have we not learned about teaching programming?. Computer,
39(10), 81-82.
Kalelioğlu, F., Gülbahar, Y., & Doğan, D. (2017). Teaching how to think like a programmer:
Emerging insights. In H. Özçınar, G. Wong, & H.T. Öztürk (Eds.), Teaching Computational
Thinking in Primary Education (pp. 18-35). Hershey, PA: IGI Global Publishing.
Kelleher, C., & Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of
programming environments and languages for novice programmers. ACM Computing Surveys,
37(2), 83-137.
Malik, A.M. (2000). On the perils of programming. Communications of the ACM, 43(12),
95-97.
May, C. (2005). Deploy every 30 minutes: Redux, retrieved June 29, 2007 from
http://blogs.warwick.ac.uk:80/chrismay/tag/flickr.
53
Transforming traditional courses through web 2.0 philosophy (Tüzün)
Nasa
facts
and
figures.
(2019).
https://www.nasa.gov/feature/facts-and-figures.
Retrieved
July
20,
2019,
from
O'Reilly, T. (2005). What is web 2.0: Design patterns and business models for the next
generation of software, retrieved June 29, 2007 from http://www.oreillynet.com/lpt/a/6228.
Panell, C. (2003). Teaching computer programming as a language. Techdirections, 62(8),
26-27.
Perkins, D.N., Hancock, C., Hobbs, R., Martin, F., & Simmons, R. (1989). Conditions of
learning in novice programmers. In E. Soloway & J.C. Spohrer (Eds.), Studying the novice
programmer (pp. 261-279). Hillsdale, NJ: Lawrence-Erlbaum Associates.
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A
review and discussion. Computer Science Education, 13(2), 137-172.
Saygıner, Ş., & Tüzün, H. (2018). Programlama eğitimi üzerine bir inceleme: Yaşanan
zorluklar, mevcut uygulamalar ve güncel yaklaşımlar. In B. Akkoyunlu, A. İşman, & H. F.
Odabaşı (Eds.), Eğitim Teknolojileri Okumaları 2018 (pp. 693-710). Ankara, Turkey: Pegem
Akademi.
Wenger, E. (1998). Communities of practice: Leaning, meaning, and identity. New York:
Cambridge University Press.
Winslow, L.E. (1996). Programming pedagogy-a psychological overview. ACM SIGCSE
Bulletin, 28(3), 17-22.
Zin, A.M., Idris, S., & Subramaniam, N.K. (2006). Implementing virtual pair programming
in e-learning environment. Journal of Information Systems Education, 17(2), 113-117.
54