SlideShare a Scribd company logo
A Learning Setting Based on Competitions for Agile Software Engineering
Davut Çulha
Abstract
In learning, competitions are used for years in applications of robotics because of the increased learning efficiency.
Likewise, competitions can be used as learning catalyzers in software engineering. In this work, a graduate-level
course in software engineering is flourished with a learning setting based on competitions. The course relies on
teaching agile software engineering methodologies. A project is implemented using an agile methodology because of
the preparation of the students to the real world. From the software engineering point of view, software development
should be learned by the students by experiencing the entire development life cycle. From the business point of view,
the students should learn to take roles in software development by experiencing teamwork and collaboration, and they
should be ready for the software development issues of real life. Competition-based learning supports these two points
of view by increasing teamwork, creating self-motivation, and by simulating today’s fast-changing environments. In
short, learning efficiency is increased for a course of agile software engineering using a competition-based learning
setting by adapting a problem from mathematics.
Keywords
Competition-based learning, agile development, software development
1. Introduction
Competition-based learning is a learning methodology in which students’ learning willingness is increased (Altin and
Pedaste 2013). In robotics education, competition-based learning is mostly and effectively applied. This work is an
attempt for software engineering education to universalize competition-based learning. First application of
competition-based learning to software engineering shows that competitions increase learning motivation of students
(Çulha 2016). Although there is a possibility to apply competition-based learning to many fields in education, its
application is mostly localized to robotics.
In software engineering, the speed of software development becomes crucial. Therefore, agility and agile
methodologies are important (Prasad 2014, Begel and Nagappan 2007, Dingsoyr, Nerur, Balijepally and Moe 2012,
Dyba and Dingsoyr 2008). Consequently, usage of agile methodologies increases in development of software. Agile
methodologies have short development cycles to react fast to the changing customer requirements. The short
development cycles are also useful in software engineering education as well as agility. If agile methodologies are
projected in software engineering education, the students can experience all the activities of software development.
Software engineering courses should maximize some benefits of the course. First of all, the students should feel they
do real world applications because they will encounter them after graduation. Secondly, they should learn teamwork
because in the real world most of the software development cannot be completed alone. Thirdly, they should learn to
develop software in projects because most of the software development are realized as projects. Lastly, they should
learn software development life cycle because they will encounter all the development activities in real life. In
conclusion, if a team project is employed in a competition environment in a software engineering course, most of the
important benefits are maximized. In this setting, competition-based learning also behaves like a catalyzer to increase
the learning efficiency.
The remaining part of this work proceeds as follows. In the section that follows, related work is given. In the third
section, the course is described. Then, the definition of project is made. In the fifth section, the methodology applied
is explained. After that, the implementations of the project are presented by considering their results. Then, discussion
and conclusion are made.
2. Related Work
In order to increase the efficiency of learning, some methodologies are applied to courses. One of them is competition-
based learning. In competition-based learning, learning outcomes are achieved through competitions. In robotics
education, competitions are used widely among the developed robots. In Altin and Pedaste (2013), Jung (2013), Paulik
and Krishnan (2001, 1999), Hyyppa (2004), applications of competition-based learning are effectively realized as a
learning method.
In Burguillo (2010), competition-based learning is applied via a framework which uses Game Theory tournaments.
Increase in the learning performance and motivation of students are achieved by the tournaments. In Silva and Madeira
(2010), for an engineering program, a programming course is designed based on competition-based learning. The
application is realized through a framework which is a mixture of collaboration and competition-based learning.
In Chung (2008), the advantages of competition based learning are given as the following: competitions motivate and
promote students to work harder; students ask more questions than regular home works; in some cases, students work
beyond the class topics; it enhances the learning objectives in the class. However, less cooperation between teams is
observed as a drawback. That drawback is partially solved by requiring presentations to share ideas.
Software engineering can be taught using computer games. In a course of software engineering, teaching of software
development life cycle is realized efficiently using computer game-based projects (Claypool and Claypool 2005).
Simulation of real world can be done using computer games. Likewise, mathematics is used in Brazier, Taylor, Basu
and Sircar (2006) to efficiently realize the real world.
In agile software development, development of software is done using agile methods. Agile methodologies became
widespread in recent years (Dingsoyr, Nerur, Balijepally and Moe 2012). In software engineering, engineering
principles are applied to software development. Traditional software engineering courses exploit traditional
methodologies in their syllabuses. A traditional software engineering methodology is Unified Process (Jacobson,
Booch and Rumbaugh 1999), which is employed in the education of a software engineering course (Young and
Needham 2013). In agile software engineering, software development is realized using agile principles. In a software
engineering course (Reichlmayr 2003), Test-driven Development (Beck 2003) is exploited, which is an agile
methodology. In the course, a project is developed in teams. Furthermore, the methodology has short incremental
release cycles. Accordingly, this team-based agile teaching of software engineering makes students converge to real
world software development activities.
In real world applications, the software life cycle usually is longer than a term. Hereby, real world projects cannot be
developed in a term period for students. However, the students should learn the different activities of software
development in their software engineering courses. Since agile methodologies have iterations, including agile
methodologies causes students to feel the life cycle of development of software. In a software engineering course
(Shukla and Williams 2002), Extreme Programming (Lindstrom and Jeffries 2004) is applied, which is a well-known
agile methodology. Especially, important agile practices are integrated to the course.
Real world applications are usually developed in teams because a single developer cannot complete in a reasonable
time. From this point of view, a teamwork is needed implicitly in software development. Therefore, the students of
software engineering courses can be familiar with developing software in teams. Eventually, a big enough development
task should be assigned to students, which should not be developed simply by a student alone. At that time, the project-
based task comes as a solution. Similarly, in real life, software development is realized as projects. In short, a software
engineering course to converge to the real life should reinforce students to learn teamwork, working for a project, and
the entire life cycle of development of software.
In Paulik and Krishnan (2001, 1999), the software engineering is taught using project-based approach. All activities
and the entire development life cycle of software can be taught in software engineering courses. One way of doing this
is assigning a semester-long project to the students. These kinds of project-based courses usually assign to the students
a single project for the entire term. While developing the project, students pass through the phases of the software
development life cycle. They encounter obstacles of development. They apply software engineering practices. They
participate in the activities of the life cycle. In a course of software engineering, a semester-long project is assigned to
the students (Claypool and Claypool 2005, Young and Needham 2013, Collofello and Woodfield 1982. The students
learn basics of software engineering, its theory, and practices. In Marmorstein (2011), open source projects are
employed. In Pletch and Agajanian (2007), a project is implemented to support teamwork in a software engineering
course. The team project helps to students to examine process and people relations in addition to real life issues in
software engineering. In Baker, Navarro and van der Hoek (2005), real world projects are simulated with a card game
in course projects. Therefore, software engineering processes related to real life are experienced using course projects.
3. Course Description
Competitions are used to improve the learning efficiency in a graduate-level course of software engineering at Atilim
University. The course is coded as SE571 with the name Agile Software Development Approaches. In the course, all
the major agile methodologies are covered with an emphasis on Scrum (Schwaber 2004) and Extreme Programming
(Lindstrom and Jeffries 2004). In order to be clearer, the other educated approaches are Test Driven Development
(TDD), Dynamic Systems Development Method (DSDM), Feature-driven Development (FDD), Lean, Kanban, Agile
Unified, and Crystal (Highsmith 2002). Agile project management (Fernandez and Fernandez 2008) is also covered in
the course.
The aim of the course is to teach the significance of agile methodologies, comparing of agile methodologies, how to
evaluate whether projects follow agile principles, and how to determine a suitable agile methodology for a specific
project.
In the course, 4 hours are taught weekly, of which 2 are for lectures and 2 are for application. Midterm and final exams
form the 50% of the total grades. 20% comes from the assignments. The rest 30% is reserved to a project. In the
University, this course has never been taught before. However, there is a similar undergraduate course called as Agile
Methods in Software Development. In the previous years, the undergraduate course was given with the same format.
In the last term, competition-based learning was applied (Çulha 2016). According to the lessons learned from the
undergraduate course application, the competition-based learning setting was crystallized in the course SE571. In this
term, competition-based adjustment is done again for the project part of the course. Scrum methodology is followed
in the project. There were 16 enrolled students in the course. 6 teams were built from them, where each team has 2 or
3 members. The project is evaluated in two parts. In the first part, the written report of the project is dealt, where how
the Scrum methodology is applied is evaluated. This classical evaluation constitute big part of the grading with a
percentage of 70. The remained 30% of the evaluation is reserved for competition. According to the performance in
the competitions, the teams get their points from this competition part.
The students are enrolled to the course from Software Engineering and Information Technology Departments at Atilim
University. All of the students are master or PhD students.
4. Project Description
The project is based on competition. Therefore, a suitable problem for competition is designed. For this reason,
mathematics is used to find the problem. The aim of the problem basically is to find the missing intermediate prime
numbers in a text file in a given time. The text file is taken as input file to the program. It contains consecutive prime
numbers starting from the first prime number. Some prime numbers are extracted from the input file. The aim of the
program is to find those missing prime numbers. The input file is arranged according to the competitions.
The program which will be written for the project takes a parameter. It is in seconds for the duration. Also, the given
text file is taken as input implicitly. In the determined duration, the program finds all the missing prime numbers of
the given text file. The program outputs a text file including all the missing primes. In the output file, all the missing
prime numbers should be in order. In other words, if there is another number than the expected missing number in the
location of the output file, the previous correctly found missing prime numbers will be evaluated for the performance.
The others will not be evaluated even if there are some other missing prime numbers located ahead. Java will be used
in all coding, where external libraries will not be used.
The project will be completed in 3 iterations, where a four-week duration is selected for each of them. At the end of
each sprint, the groups will prepare a report to certify the success of applying Scrum methodology. Furthermore, for
each iteration, the competition of the prepared programs will be executed in a computer which runs on Windows 7
operating system. The selected computer runs with two CPUs at 3.00GHz and 2.67GHz, and 4GB of RAM.
The ability of adaptation to fast-changing environments is important in agile methodologies. To support adaptation of
fast-changing environments, supplementary requirements are requested for each iteration. These requirements will be
used students to feel the fast-changing environment as well as to increase the motivation in the course.
Group size of 2 or 3 was determined for forming groups. 6 groups were comprised from the enrolled 16 students. At
the end of each iteration, each group prepares a report with a developed program.
5. The Methodology
In Figure 1, the methodology applied is shown. Each iteration of the software development is also an exercise stage
for the competition. The sprint is completed with a competition.
Figure 1. The applied methodology
In competitions, there should be an availability to do better and better performances. There should not be exact
solutions to differentiate the students according to their performances. Therefore, the problem of the project should be
selected as suitable for competitions. If the given input file is small, the exact solutions can be found. However, the
size of the input file can be adjusted as big enough as not examined in the given duration. In consequence, the problem
is suitable for competition.
6. Implementations of the Project
The results are checked using a simple written program. This program inputs a file composed of consecutive missing
primes. The first missing prime is found, and is checked with the missing prime list. If these numbers are the same, the
next missing prime is found, and is checked with the next number in the list. It finds the first correctly ordered missing
numbers according to the missing prime list for the whole file. If the missing number is not the expected missing prime,
then it ceases and accepts the previous missing numbers for the performance evaluation.
Table 1 shows the competitions for the iterations. At the end of the first sprint, the duration 120 seconds is used for the
competition of the programs. For the second sprint, the duration is decreased to 80 seconds. For the last sprint, the
duration is also decreased, and became 10 seconds. In the third column of the table, the number of missing primes are
shown. In the first sprint an input text file prepared with 15 missing prime numbers. In the second sprint, the input file
is designed with 6 missing prime numbers. In the last sprint, the input file size is increased and its number of missing
primes also increased.
Table 1. Competitions
Duration
(seconds)
# of
Missing
Primes
Group 1 Group 2 Group 3 Group 4 Group 5 Group 6
Sprint 1 120 15 9 0 15 15 0 14
Sprint 2 80 6 6 6 6 6 6 6
Sprint 3 10 20 1 0 20 2 0 0
In the second sprint, to increase the tension of rivalry the program complexity is increased. However, all groups found
the exact number of missing primes. Therefore, all of them were the winner of the competition. A suitable adjustment
in the program complexity was needed. In the third sprint, the problem complexity is increased drastically with a very
small number for the parameter of duration.
In Table 2, the ranks in the competitions are displayed. In the first sprint, there are two groups in the first position. In
the second sprint, all the groups are in the first position. In the third sprint, three of them finished the competition at
fourth place.
Table 2. Ranks
Group 1 Group 2 Group 3 Group 4 Group 5 Group 6
Sprint 1 3 4 1 1 5 2
Sprint 2 1 1 1 1 1 1
Sprint 3 3 4 1 2 4 4
In Table 3, the grades of the groups are shown. These grades are for 30% of the total project grade. According to the
competition performance, the groups at first place take 30 full points, whereas the following places at the competitions
take their grades by decreasing 5 points from the full grade successively. Actually, the major part of the total project
grade comes from the traditional part with a percentage of 70%.
Table 3. Competition grades
Group 1 Group 2 Group 3 Group 4 Group 5 Group 6
Sprint 1 20 15 30 30 10 25
Sprint 2 30 30 30 30 30 30
Sprint 3 20 15 30 25 15 15
In Table 4, the report grades of the groups are displayed. This part is the 70% of the total project grade. How
appropriately the Scrum methodology is applied is measured using this part. The report grades exhibit that the full
grade is taken nearly by all the groups. Competition motivated students to do better work. As a result, they prepared
good reports for the sprints. Motivation obtained from competition is contagious in good meaning. This contagiousness
looks like the motivation ripples generated by daily scrums in Scrum methodology. In other words, the excitement of
competition extends to the report part, to the whole course, and maybe to other courses. In consequence, fine and well
formatted reports were submitted by the students, and which proved that the Scrum methodology was learned well. In
short, competition affects the course very positively.
Table 4. Report grades
Group 1 Group 2 Group 3 Group 4 Group 5 Group 6
Sprint 1 68 70 64 66 63 67
Sprint 2 70 70 60 67 62 68
Sprint 3 30 70 47 62 61 70
In Table 5, the total project grades over 100 are shown. As a last column, the total grades of the groups are shown.
According to this table, the maximum grades are taken in the second iteration. In the last iteration, the total grades
were kept at minimum.
Table 5. Total grades
Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Total
Sprint 1 88 85 94 96 73 92 528
Sprint 2 100 100 90 97 92 98 577
Sprint 3 50 85 77 87 76 85 460
In Table 6, the efforts of the groups are given. Efforts spent were recorded by the groups during the sprints. At the
report of the sprint, each effort was documented by the groups. In the last column of the table, the total efforts are seen.
In the second iteration, the groups spent the maximum effort with a total of 110 hours. In the last iteration, they spent
their minimum efforts.
Table 6. Total efforts (in hours)
Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Total
Sprint 1 16 31 12 10 21 9 99
Sprint 2 20 24 9 16 26 15 110
Sprint 3 9 12 8 9 28 13 79
In Table 7, the total grades are also added to the table as well as the corresponding total efforts. The contagious
motivation of competition affects the report grades indirectly. Hence, groups spent more efforts took more grades.
Therefore, the total grades and efforts are aligned. Fortunately, the expected correlation was obtained.
Table 7. Total efforts and grades
Total Effort (hours) Total Grade
Sprint 1 99 528
Sprint 2 110 577
Sprint 3 79 460
In Figure 2, the group performances are displayed through the sprints. In fact, in the first and in the last sprint,
competition is felt deeply by the students. At the end of the second sprint, all groups shared the first place of the
competition.
Figure 2. Performance of the groups through the sprints
7. Discussion
The total efforts spent by the students can be seen in Table 7. According to this, the project was found as interesting
from the students. They were surprised when the project was announced because they did not establish the relation
with agile software development. They thought that the project is a mathematics project. Moreover, they were also
surprised from the competition part because they said they did not experience it before in the courses. During the
implementation of the project, they implemented several algorithms, of which some were searched from the internet,
and some were their own trial algorithms. All these efforts were reported by the students. For the project, many hours
were spent especially in the first two sprints as shown in Table 7. From the undergraduate level corresponding course,
it is known that students learn many things in the first 3 sprints. According to student reports, they learned how to
apply the Scrum methodology very well. In agile methodologies, communication among team members increase the
success of development. The students used daily scrums as a default communication way. However, they also used
social media as wells as phone, e-mail, and internet for communication. In consequence, they maximized the
communication in the teams.
G1
G1
G1
G2
G2
G2
G3 G3 G3G4 G4
G4
G5
G5
G5
G6
G6
G6
0
1
2
3
4
5
6
Sprint 1 Sprint 2 Sprint 3
Group 1
Group 2
Group 3
Group 4
Group 5
Group 6
Students get excited because of competitions. Even after the competitions, they study on the finished parts, and write
the program again, and asks for the re-execution of the finished parts. Those are directed to the next competitions
without demolishing their excitements.
For each sprint, adapting to the changing environment was expected. For this reason, some supplementary changes are
appended to the sprint requirements. First of all, for each sprint, the duration is decreased, and students are not informed
about their values. A few rules are changed, or extracted totally, with addition of new rules. For example, the number
of written lines of codes in the programs is restricted. Likely, threading is forbidden. The students adapted to these
changes as expected according to their reports.
In Çulha (2016), a project is implemented in the application of agile software engineering using competition-based
learning. The project is realized using Scrum methodology in teams. The project is established around a prime number
problem from mathematics like the applied problem in the course. According to Çulha (2016), the number of iterations
were high because students lost their interest with problem. Actually, there are 5 sprints and the last 2 sprints did not
catch the concern of the students. Hence, in this work, only 3 sprints were taken. Three sprints fitted to the course well
because the students did not lose their relevance to the project. Moreover, generally, duration for a sprint is 30 days.
As a result, 3 sprints properly settled down for a single-term agile software engineering course. Moreover, in Çulha
(2016), for each iteration, some little changes were made to increase the concern of the students. The same method
was applied in this course by changing duration parameter in the sprints. These little changes multiplied the excitement
of students to the course.
Competitions are easily arranged in robotics courses because designed robots are competed in a straightforward
manner. However, preparing settings in other areas is difficult. In this study, the competition-based learning is
expanded to software engineering area. Probably, its extension to computer science area as a whole would be not
difficult. Absolutely, extending to other areas may be hard, but the gain in learning efficiency would tolerate that
adversity.
Mathematics is a good place to find competition-based problems. Simple mathematical problems should be prepared
for the competitions. Those problems should be enclosed with the related core course material. Hence, students do not
feel that the assignment is pure mathematics.
The competition problems should measure the performance of the competitions. In other words, there should be better
results every time even if obtaining good results.
Table 8. Course evaluation
# of
Students
Course
Department
Average
Faculty
Average
University
Average
Evaluation (over 5) 15 4.45 4.15 4.32 4.32
When students compete, they should not feel that the course is like a gambling. In other words, the whole evaluation
of the course should not depend on the competitions. At that time, students would get angry, there would be serious
conflicts among the teams and inside teams. According to the observations, less than quarter of the course evaluation
would depend on competitions. In this course, nearly 10% of the course evaluation comes from the competitions. This
percentage is not big, and not very small, but it fits well because the satisfaction level of the course is above the
university average. In Table 8, the results of the course evaluation questionnaire are displayed. 15 students are attended
to the questionnaire, and the evaluation score for the course is 4.45 over 5 whereas university average is 4.32.
Another method was applied to take away competitions from gambling. The evaluations do not depend on the actual
performances of the competitions because there would be big gaps among teams. At that time, the winner gets the
whole grade, whereas others get nearly zero grades. In consequence, the evaluation of the competitions depends on the
order of competition results. In Table 2, the ranks are determined for this purpose.
The teams are formed as 2 or 3-student teams. In agile approaches, communication among team members is an
important factor for success. Moreover, it is known that communication in small teams is better. As a result, it is
observed that the size 3 for teams in this course is a good choice to learn collaboration and teamwork.
8. Conclusion
Main contribution of the paper is that problems from mathematics can be exploited in software engineering education.
Competitions enhance the quality of education in software engineering. In software engineering education, a good
motivator is obtained via competition-based learning. Especially, for agile software engineering education, the
application of competition-based learning creates also the fast-changing environment where agile software
development runs.
In agile software development, frequent inspections of the project like daily scrums generate motivation ripples in the
project environment. Likewise, the competitions generate similar motivation ripples on students. These motivation
ripples improve the total quality of the course. Furthermore, these motivation ripples affects the learning in the other
courses. These affects can be investigated in future researches.
Another contribution of the paper is that the competition atmosphere strengthens the communication among the
students. In agile software engineering, the strong communication is a sought thing, and agile software engineering
also increase the communication among stakeholders implicitly.
In the paper, applying competitions in learning of agile software engineering is presented for a graduate-level course.
Real world is simulated using competitions. Students were motivated by competition-based setting to find the missing
prime numbers. In agile software development, self-motivation should be increased. Competitions assist students to
gain self-motivation. The word “agile” has the meaning “quick” in addition to other meanings. Therefore, in agile
methodologies, being quick is inevitable. Fast changes in the environment are again inevitable in today’s software
development. Competition-based settings provide agile environments to software development. Consequently,
adaptation to the fast-changing environment is achieved. It is observed that teaching of software engineering is
increased in efficiency by applying competition-based learning approach.
Competition-based projects creates simulations of fast-changing environments of real world. In agile software
development courses, development issues related to real world can be encountered by competition-based projects.
In agile software development, strengthening the communication among the stakeholders of the projects may be the
main cause of the success of the agile software development. Competitions increase the motivations of the students.
They want to be winner of the competitions. Therefore, they increase the teamwork by increasing the communication
between their team members. In brief, agile software development is a right place to apply competition-based learning.
Furthermore, competition-based learning contributes to the base concepts of computer science. The students try to
optimize time and space usage. Space and time management in programming are demanded in competition-based
settings because of obtaining good performance. For the future work, contagious effect of competition-based learning
can be studied.
References
Altin, H. and Pedaste, M. (2013) Learning Approaches to Applying Robotics in Science Education. Journal of Baltic
Science Education.
Baker, A., Navarro, E.O. and van der Hoek, A. (2005) An Experimental Card Game for Teaching Software Engineering
Processes. Journal of Systems and Software.
Beck, K. (2003) Test-driven Development: by Example. Addison-Wesley Professional.
Begel, A. and Nagappan, N. (2007) Usage and Perceptions of Agile Software Development in an Industrial Context:
An Exploratory Study. In Empirical Software Engineering and Measurement.
Brazier, P., Villalobos, M.C., Taylor, M., Basu, K. and Sircar, T. (2006) A Cross-Disciplinary Software Engineering
Project Implemented as a Web Service. Proc of the 9th International Conference on Engineering Education.
Burguillo, J. C. (2010) Using Game Theory and Competition-based Learning to Stimulate Student Motivation and
Performance. Computers & Education.
Chung, C.J. C. (2008) Learning through Competitions – Competition Based Learning (CBL). LTU CTL Conference,
April 2008.
Claypool, K.T. and Claypool, M. (2005) Teaching Software Engineering Through Game Design. ITiCSE.
Collofello, J. and Woodfield, S. (1982) A Project-unified Software Engineering Course Sequence. ACM SIGCSE
Bulletin.
Çulha, D. (2016) Applying Competition-based Learning to Agile Software Engineering. Comput. Appl. Eng. Educ.
Dingsoyr, T., Nerur, S., Balijepally, V., and Moe, N.B. (2012) A Decade of Agile Methodologies: Towards
Explaining Agile Software Development. Journal of Systems and Software.
Dyba, T. and Dingsoyr, T. (2008) Empirical Studies of Agile Software Development: a Systematic Review.
Information and Software Technology.
Fernandez, D.J. and Fernandez, J.D. (2008) Agile Project Management - Agilism versus Traditional Approaches.
Journal of Computer Information Systems.
Highsmith, J.A. (2002) Agile Software Development Ecosystems. Addison Wesley Professional.
Hyyppa, K. (2004) Competition - An Efficient Method to Get Students Committed. ICALT, IEEE Computer Society.
Jacobson, I., Booch, G. and Rumbaugh, J. (1999) The Unified Software Development Process. Reading, MA, Addison-
Wesley.
Jung, S. (2013) Experiences in Developing an Experimental Robotics Course Program for Undergraduate Education.
IEEE Trans. Education.
Lindstrom, L. and Jeffries, R. (2004) Extreme Programming and Agile Software Development Methodologies.
Information Systems Management.
Marmorstein, R.M. (2011) Open Source Contribution as an Effective Software Engineering Class Project. ITiCSE.
Paulik, M.J. and Krishnan, N.M. (2001) A Competition-motivated Capstone Design Course: the Result of a Fifteen-
year Evolution. IEEE Trans. Education.
Paulik, M. J. and Krishnan, M. (1999) An Autonomous Ground Vehicle Competition-driven Capstone Design Course.
Proc. 1999 Frontiers Educ. Conf. Nov 1999.
Pletch, A. and Agajanian, A. (2007) A Software Engineering Project that Looks Like the Real World. Journal of
Computing Sciences in Colleges.
Prasad, M.K. (2014) Agile Computing – A Case Study.
Reichlmayr, T. (2003) The Agile Approach in an Undergraduate Software Engineering Course Project. Proc. 33rd
Annual Frontiers in Education.
Schwaber, K. (2004) Agile Project Management with Scrum. Washington, Microsoft Press.
Shukla, A. and Williams, L.A. (2002) Adapting Extreme Programming for a Core Software Engineering Course.
Software Engineering Education and Training. Proceedings. Los Alamitos, CA, IEEE Computer Society
Silva, B. and Madeira, R.N. (2010) A Study and a Proposal of a Collaborative and Competitive Learning
Methodology. IEEE Education Engineering.
Young, P. and Needham, P. (2013) Using a Class-Wide, Semester-Long Project to Teach Software Engineering
Principles. GSTF Journal on Computing.

More Related Content

PDF
Final year design project report - Studies in application of augmented realit...
Mannu Amrit
 
PDF
Project Clearn: Studies in application of augmented reality in E Learning Cou...
Mannu Amrit
 
PDF
Virtual Flipped Classroom
RamiroAduviriVelasco
 
PDF
Abstact 3
Sorawit Sermpol
 
PDF
Project Report, Design Project 3 - Studies in application of augmented realit...
Mannu Amrit
 
PPT
Software Engineering Education and Teaching
Somya Jain
 
PPT
Software Engineering education and teaching
Somya Jain
 
PPT
Technology In Education
Debra Masden
 
Final year design project report - Studies in application of augmented realit...
Mannu Amrit
 
Project Clearn: Studies in application of augmented reality in E Learning Cou...
Mannu Amrit
 
Virtual Flipped Classroom
RamiroAduviriVelasco
 
Abstact 3
Sorawit Sermpol
 
Project Report, Design Project 3 - Studies in application of augmented realit...
Mannu Amrit
 
Software Engineering Education and Teaching
Somya Jain
 
Software Engineering education and teaching
Somya Jain
 
Technology In Education
Debra Masden
 

What's hot (19)

PDF
THE IMPACT OF USING VISUAL PROGRAMMING ENVIRONMENT TOWARDS COLLEGE STUDENTS’ ...
ijma
 
DOCX
Axtell Course Proposal
Sarah Axtell
 
PPT
Quality In Computer Supported Collaborative eLearning by Lambropoulos Romero
Niki Lambropoulos PhD
 
PPTX
Convergence of Pedagogies and Technologies- A case study of MS-CIT by Mr. Viv...
SNDTWU
 
PPTX
Nc3 adl presentations tech teachers
Mia Murphy
 
PDF
Elearning
Othman Ibrahim
 
PDF
EDTECH 503 ID project_action_buttons
kabooth
 
DOCX
Edld 5352 Week 4 Blog Upload
jim brewster
 
DOC
7464 Movie Maker Workshop Plan Mtl
mlofton62
 
PPTX
Overview of the field of instructional design and
Alisa San Pedro
 
DOC
RESUME
Tarun Sahu
 
PPTX
Instructional Message Design: Issues and Trends
Ecenaz Alemdağ
 
DOC
Final projectguidegen
Sharizkhan
 
PDF
EXPLORATION ON TRAINING PRACTICE ABILITY IN DIGITAL LOGIC EXPERIMENT
IJITE
 
PDF
Development of a Modular Unit of a Higher Level Framework or Tool for Basic P...
TELKOMNIKA JOURNAL
 
PDF
NEED FOR A SOFT DIMENSION
csandit
 
DOCX
The Effect of Hypervideo Application
MochamadMusa
 
PDF
Proposal elearning content developement
Azmawati Lazim
 
PPT
How to Increase the Quality of Learning Resources
olavskun
 
THE IMPACT OF USING VISUAL PROGRAMMING ENVIRONMENT TOWARDS COLLEGE STUDENTS’ ...
ijma
 
Axtell Course Proposal
Sarah Axtell
 
Quality In Computer Supported Collaborative eLearning by Lambropoulos Romero
Niki Lambropoulos PhD
 
Convergence of Pedagogies and Technologies- A case study of MS-CIT by Mr. Viv...
SNDTWU
 
Nc3 adl presentations tech teachers
Mia Murphy
 
Elearning
Othman Ibrahim
 
EDTECH 503 ID project_action_buttons
kabooth
 
Edld 5352 Week 4 Blog Upload
jim brewster
 
7464 Movie Maker Workshop Plan Mtl
mlofton62
 
Overview of the field of instructional design and
Alisa San Pedro
 
RESUME
Tarun Sahu
 
Instructional Message Design: Issues and Trends
Ecenaz Alemdağ
 
Final projectguidegen
Sharizkhan
 
EXPLORATION ON TRAINING PRACTICE ABILITY IN DIGITAL LOGIC EXPERIMENT
IJITE
 
Development of a Modular Unit of a Higher Level Framework or Tool for Basic P...
TELKOMNIKA JOURNAL
 
NEED FOR A SOFT DIMENSION
csandit
 
The Effect of Hypervideo Application
MochamadMusa
 
Proposal elearning content developement
Azmawati Lazim
 
How to Increase the Quality of Learning Resources
olavskun
 
Ad

Viewers also liked (20)

DOCX
Vamsi's Resume
Vamsi Gani
 
PPTX
Análisis comparativo entre las organizaciones tradicionales y actuales
Juan david Viafra
 
PPTX
Mind trick
Nehme Kourani
 
DOCX
Betania alvarez gimenez
Betania Alvarez
 
PPTX
financial markets and institutions
babak mahmoodi
 
PDF
التسجيل للحضور للمؤتمر الإقليمي الثالث للاتحاد الدولي لجمعيات المكتبات ومؤسسا...
مكتبات اون لاين
 
DOCX
Instamate 2.0 Review - Instamate 2.0 Scam?
Jono Armstrong
 
PPTX
Sindrome del-tunel-carpiano
EmmanuelDX
 
PDF
Reglamento areas verdes
Jose Ruiz
 
PDF
SHERIN KUNJAMMA RAJ
Sherin Kunjamma Raj
 
PDF
A study on sales and promotion startegies towards Excellent Biotechnologies
Muneer Mohammed
 
PDF
Electrical Studies
Theunis Venter
 
PPTX
Cindrellla story
Zakia Arfaoui
 
PPTX
Соединенные штаты Америки
obstinate
 
PPTX
Yoga lifestyle presentation
Rahul Arya
 
PDF
Samsung 2009 dvm [plus III] catalogue
Haluk TOSUN
 
PPTX
Nursery teacher training (ntt) admission 2017 18
MGITI NIOS
 
PPTX
organization and HRD management
Juvi .
 
PDF
Open Source
nqfaq
 
Vamsi's Resume
Vamsi Gani
 
Análisis comparativo entre las organizaciones tradicionales y actuales
Juan david Viafra
 
Mind trick
Nehme Kourani
 
Betania alvarez gimenez
Betania Alvarez
 
financial markets and institutions
babak mahmoodi
 
التسجيل للحضور للمؤتمر الإقليمي الثالث للاتحاد الدولي لجمعيات المكتبات ومؤسسا...
مكتبات اون لاين
 
Instamate 2.0 Review - Instamate 2.0 Scam?
Jono Armstrong
 
Sindrome del-tunel-carpiano
EmmanuelDX
 
Reglamento areas verdes
Jose Ruiz
 
SHERIN KUNJAMMA RAJ
Sherin Kunjamma Raj
 
A study on sales and promotion startegies towards Excellent Biotechnologies
Muneer Mohammed
 
Electrical Studies
Theunis Venter
 
Cindrellla story
Zakia Arfaoui
 
Соединенные штаты Америки
obstinate
 
Yoga lifestyle presentation
Rahul Arya
 
Samsung 2009 dvm [plus III] catalogue
Haluk TOSUN
 
Nursery teacher training (ntt) admission 2017 18
MGITI NIOS
 
organization and HRD management
Juvi .
 
Open Source
nqfaq
 
Ad

Similar to A Learning Setting Based on Competitions for Agile Software Engineering (20)

PDF
A Domain Engineering For Interactive Learning Modules
Nathan Mathis
 
PDF
Plan curricular Sistemas de información.pdf
Jose Diaz Gomez
 
DOCX
Higher thinking skills through it based projects
Choi Chua
 
PDF
The role of gamification implementation in improving quality and intention in...
Journal of Education and Learning (EduLearn)
 
PDF
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
ijseajournal
 
PDF
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
ijseajournal
 
PDF
CONSTRUCTION AND APPLICATION OF PROJECT DRIVEN "ONE BODY, TWO WINGS AND THREE...
ijejournal
 
PDF
Episode an extreme programming method for innovative software based on system...
IJCSEA Journal
 
DOCX
Annotated bibs
Blake Steiner
 
PPT
Ph D Presentation
Sanjay Goel
 
PPTX
SOFTWARE ENGG UNIT-1 PPT HDFC life cycle and web apps.pptx
sknavajbasha
 
PDF
A Connected Course Approach For Introduction To Engineering Problem Solving
Wendy Berg
 
PDF
Agile Education
DUONG Trong Tan
 
PDF
New books dec 2012
maethaya
 
PDF
Developing E-Learning Materials for Software Development CourseA2
IJMIT JOURNAL
 
PPTX
Lesson 8 janice transition
janice samosino
 
PDF
software engineering
Tayfun Çelik
 
PDF
A study of a multi-discipline built environment project
Ursula Rutherford
 
PDF
A New Educational Thermodynamic Software to Promote Critical Thinking in Yout...
Erica Thompson
 
PDF
A Practical Approach Of Teaching Software Engineering
Amy Cernava
 
A Domain Engineering For Interactive Learning Modules
Nathan Mathis
 
Plan curricular Sistemas de información.pdf
Jose Diaz Gomez
 
Higher thinking skills through it based projects
Choi Chua
 
The role of gamification implementation in improving quality and intention in...
Journal of Education and Learning (EduLearn)
 
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
ijseajournal
 
AGILE, USER-CENTERED DESIGN AND QUALITY IN SOFTWARE PROCESSES FOR MOBILE APPL...
ijseajournal
 
CONSTRUCTION AND APPLICATION OF PROJECT DRIVEN "ONE BODY, TWO WINGS AND THREE...
ijejournal
 
Episode an extreme programming method for innovative software based on system...
IJCSEA Journal
 
Annotated bibs
Blake Steiner
 
Ph D Presentation
Sanjay Goel
 
SOFTWARE ENGG UNIT-1 PPT HDFC life cycle and web apps.pptx
sknavajbasha
 
A Connected Course Approach For Introduction To Engineering Problem Solving
Wendy Berg
 
Agile Education
DUONG Trong Tan
 
New books dec 2012
maethaya
 
Developing E-Learning Materials for Software Development CourseA2
IJMIT JOURNAL
 
Lesson 8 janice transition
janice samosino
 
software engineering
Tayfun Çelik
 
A study of a multi-discipline built environment project
Ursula Rutherford
 
A New Educational Thermodynamic Software to Promote Critical Thinking in Yout...
Erica Thompson
 
A Practical Approach Of Teaching Software Engineering
Amy Cernava
 

More from dcsunu (14)

PDF
Doğalayan Teknolojiler (Emerging Technologies)
dcsunu
 
PDF
Doğalayan Teknolojiler (Emerging Technologies)
dcsunu
 
PDF
Dogalayan Teknolojiler (Emerging Technologies)
dcsunu
 
PDF
Crystal Methods
dcsunu
 
PDF
Feature Driven Development
dcsunu
 
PDF
Kanban Development
dcsunu
 
PDF
Lean Development
dcsunu
 
PDF
Agile & Open Unified Processes
dcsunu
 
PDF
Test Driven Development
dcsunu
 
PDF
Extreme Programming (XP)
dcsunu
 
PDF
Agile Project Management
dcsunu
 
PDF
Scrum
dcsunu
 
PDF
Agile Software Development Approaches
dcsunu
 
PDF
10 adaptive sd_15
dcsunu
 
Doğalayan Teknolojiler (Emerging Technologies)
dcsunu
 
Doğalayan Teknolojiler (Emerging Technologies)
dcsunu
 
Dogalayan Teknolojiler (Emerging Technologies)
dcsunu
 
Crystal Methods
dcsunu
 
Feature Driven Development
dcsunu
 
Kanban Development
dcsunu
 
Lean Development
dcsunu
 
Agile & Open Unified Processes
dcsunu
 
Test Driven Development
dcsunu
 
Extreme Programming (XP)
dcsunu
 
Agile Project Management
dcsunu
 
Scrum
dcsunu
 
Agile Software Development Approaches
dcsunu
 
10 adaptive sd_15
dcsunu
 

Recently uploaded (20)

PDF
A REACT POMODORO TIMER WEB APPLICATION.pdf
Michael624841
 
PPTX
Save Business Costs with CRM Software for Insurance Agents
Insurance Tech Services
 
PPTX
Benefits of DCCM for Genesys Contact Center
pointel ivr
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PDF
Microsoft Teams Essentials; The pricing and the versions_PDF.pdf
Q-Advise
 
PPTX
AIRLINE PRICE API | FLIGHT API COST |
philipnathen82
 
PDF
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
PDF
Become an Agentblazer Champion Challenge
Dele Amefo
 
PDF
Multi-factor Authentication (MFA) requirement for Microsoft 365 Admin Center_...
Q-Advise
 
PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
PPT
FALLSEM2025-26_ISWE304L_TH_VL2025260102786_2025-07-10_Reference-Material-II.ppt
AKSHAYA255427
 
PDF
Community & News Update Q2 Meet Up 2025
VictoriaMetrics
 
PDF
Winning Business in a Slowing Economy, How CPQ helps Manufacturers Protect Ma...
systemscincom
 
PPTX
introduction to dart --- Section one .pptx
marknaiem92
 
PPTX
Services offered by Dynamic Solutions in Pakistan
DaniyaalAdeemShibli1
 
PPTX
Hire Expert Blazor Developers | Scalable Solutions by OnestopDA
OnestopDA
 
PDF
Emergency Mustering solutions – A Brief overview
Personnel Tracking
 
PPTX
Audio Editing and it's techniques in computer graphics.pptx
fosterbayirinia3
 
PPTX
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
Tier1 app
 
PDF
Why Should Businesses Extract Cuisine Types Data from Multiple U.S. Food Apps...
devilbrown689
 
A REACT POMODORO TIMER WEB APPLICATION.pdf
Michael624841
 
Save Business Costs with CRM Software for Insurance Agents
Insurance Tech Services
 
Benefits of DCCM for Genesys Contact Center
pointel ivr
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Microsoft Teams Essentials; The pricing and the versions_PDF.pdf
Q-Advise
 
AIRLINE PRICE API | FLIGHT API COST |
philipnathen82
 
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
Become an Agentblazer Champion Challenge
Dele Amefo
 
Multi-factor Authentication (MFA) requirement for Microsoft 365 Admin Center_...
Q-Advise
 
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
FALLSEM2025-26_ISWE304L_TH_VL2025260102786_2025-07-10_Reference-Material-II.ppt
AKSHAYA255427
 
Community & News Update Q2 Meet Up 2025
VictoriaMetrics
 
Winning Business in a Slowing Economy, How CPQ helps Manufacturers Protect Ma...
systemscincom
 
introduction to dart --- Section one .pptx
marknaiem92
 
Services offered by Dynamic Solutions in Pakistan
DaniyaalAdeemShibli1
 
Hire Expert Blazor Developers | Scalable Solutions by OnestopDA
OnestopDA
 
Emergency Mustering solutions – A Brief overview
Personnel Tracking
 
Audio Editing and it's techniques in computer graphics.pptx
fosterbayirinia3
 
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
Tier1 app
 
Why Should Businesses Extract Cuisine Types Data from Multiple U.S. Food Apps...
devilbrown689
 

A Learning Setting Based on Competitions for Agile Software Engineering

  • 1. A Learning Setting Based on Competitions for Agile Software Engineering Davut Çulha Abstract In learning, competitions are used for years in applications of robotics because of the increased learning efficiency. Likewise, competitions can be used as learning catalyzers in software engineering. In this work, a graduate-level course in software engineering is flourished with a learning setting based on competitions. The course relies on teaching agile software engineering methodologies. A project is implemented using an agile methodology because of the preparation of the students to the real world. From the software engineering point of view, software development should be learned by the students by experiencing the entire development life cycle. From the business point of view, the students should learn to take roles in software development by experiencing teamwork and collaboration, and they should be ready for the software development issues of real life. Competition-based learning supports these two points of view by increasing teamwork, creating self-motivation, and by simulating today’s fast-changing environments. In short, learning efficiency is increased for a course of agile software engineering using a competition-based learning setting by adapting a problem from mathematics. Keywords Competition-based learning, agile development, software development 1. Introduction Competition-based learning is a learning methodology in which students’ learning willingness is increased (Altin and Pedaste 2013). In robotics education, competition-based learning is mostly and effectively applied. This work is an attempt for software engineering education to universalize competition-based learning. First application of competition-based learning to software engineering shows that competitions increase learning motivation of students (Çulha 2016). Although there is a possibility to apply competition-based learning to many fields in education, its application is mostly localized to robotics. In software engineering, the speed of software development becomes crucial. Therefore, agility and agile methodologies are important (Prasad 2014, Begel and Nagappan 2007, Dingsoyr, Nerur, Balijepally and Moe 2012, Dyba and Dingsoyr 2008). Consequently, usage of agile methodologies increases in development of software. Agile methodologies have short development cycles to react fast to the changing customer requirements. The short development cycles are also useful in software engineering education as well as agility. If agile methodologies are projected in software engineering education, the students can experience all the activities of software development.
  • 2. Software engineering courses should maximize some benefits of the course. First of all, the students should feel they do real world applications because they will encounter them after graduation. Secondly, they should learn teamwork because in the real world most of the software development cannot be completed alone. Thirdly, they should learn to develop software in projects because most of the software development are realized as projects. Lastly, they should learn software development life cycle because they will encounter all the development activities in real life. In conclusion, if a team project is employed in a competition environment in a software engineering course, most of the important benefits are maximized. In this setting, competition-based learning also behaves like a catalyzer to increase the learning efficiency. The remaining part of this work proceeds as follows. In the section that follows, related work is given. In the third section, the course is described. Then, the definition of project is made. In the fifth section, the methodology applied is explained. After that, the implementations of the project are presented by considering their results. Then, discussion and conclusion are made. 2. Related Work In order to increase the efficiency of learning, some methodologies are applied to courses. One of them is competition- based learning. In competition-based learning, learning outcomes are achieved through competitions. In robotics education, competitions are used widely among the developed robots. In Altin and Pedaste (2013), Jung (2013), Paulik and Krishnan (2001, 1999), Hyyppa (2004), applications of competition-based learning are effectively realized as a learning method. In Burguillo (2010), competition-based learning is applied via a framework which uses Game Theory tournaments. Increase in the learning performance and motivation of students are achieved by the tournaments. In Silva and Madeira (2010), for an engineering program, a programming course is designed based on competition-based learning. The application is realized through a framework which is a mixture of collaboration and competition-based learning. In Chung (2008), the advantages of competition based learning are given as the following: competitions motivate and promote students to work harder; students ask more questions than regular home works; in some cases, students work beyond the class topics; it enhances the learning objectives in the class. However, less cooperation between teams is observed as a drawback. That drawback is partially solved by requiring presentations to share ideas. Software engineering can be taught using computer games. In a course of software engineering, teaching of software development life cycle is realized efficiently using computer game-based projects (Claypool and Claypool 2005). Simulation of real world can be done using computer games. Likewise, mathematics is used in Brazier, Taylor, Basu and Sircar (2006) to efficiently realize the real world. In agile software development, development of software is done using agile methods. Agile methodologies became widespread in recent years (Dingsoyr, Nerur, Balijepally and Moe 2012). In software engineering, engineering principles are applied to software development. Traditional software engineering courses exploit traditional methodologies in their syllabuses. A traditional software engineering methodology is Unified Process (Jacobson, Booch and Rumbaugh 1999), which is employed in the education of a software engineering course (Young and Needham 2013). In agile software engineering, software development is realized using agile principles. In a software engineering course (Reichlmayr 2003), Test-driven Development (Beck 2003) is exploited, which is an agile methodology. In the course, a project is developed in teams. Furthermore, the methodology has short incremental release cycles. Accordingly, this team-based agile teaching of software engineering makes students converge to real world software development activities.
  • 3. In real world applications, the software life cycle usually is longer than a term. Hereby, real world projects cannot be developed in a term period for students. However, the students should learn the different activities of software development in their software engineering courses. Since agile methodologies have iterations, including agile methodologies causes students to feel the life cycle of development of software. In a software engineering course (Shukla and Williams 2002), Extreme Programming (Lindstrom and Jeffries 2004) is applied, which is a well-known agile methodology. Especially, important agile practices are integrated to the course. Real world applications are usually developed in teams because a single developer cannot complete in a reasonable time. From this point of view, a teamwork is needed implicitly in software development. Therefore, the students of software engineering courses can be familiar with developing software in teams. Eventually, a big enough development task should be assigned to students, which should not be developed simply by a student alone. At that time, the project- based task comes as a solution. Similarly, in real life, software development is realized as projects. In short, a software engineering course to converge to the real life should reinforce students to learn teamwork, working for a project, and the entire life cycle of development of software. In Paulik and Krishnan (2001, 1999), the software engineering is taught using project-based approach. All activities and the entire development life cycle of software can be taught in software engineering courses. One way of doing this is assigning a semester-long project to the students. These kinds of project-based courses usually assign to the students a single project for the entire term. While developing the project, students pass through the phases of the software development life cycle. They encounter obstacles of development. They apply software engineering practices. They participate in the activities of the life cycle. In a course of software engineering, a semester-long project is assigned to the students (Claypool and Claypool 2005, Young and Needham 2013, Collofello and Woodfield 1982. The students learn basics of software engineering, its theory, and practices. In Marmorstein (2011), open source projects are employed. In Pletch and Agajanian (2007), a project is implemented to support teamwork in a software engineering course. The team project helps to students to examine process and people relations in addition to real life issues in software engineering. In Baker, Navarro and van der Hoek (2005), real world projects are simulated with a card game in course projects. Therefore, software engineering processes related to real life are experienced using course projects. 3. Course Description Competitions are used to improve the learning efficiency in a graduate-level course of software engineering at Atilim University. The course is coded as SE571 with the name Agile Software Development Approaches. In the course, all the major agile methodologies are covered with an emphasis on Scrum (Schwaber 2004) and Extreme Programming (Lindstrom and Jeffries 2004). In order to be clearer, the other educated approaches are Test Driven Development (TDD), Dynamic Systems Development Method (DSDM), Feature-driven Development (FDD), Lean, Kanban, Agile Unified, and Crystal (Highsmith 2002). Agile project management (Fernandez and Fernandez 2008) is also covered in the course. The aim of the course is to teach the significance of agile methodologies, comparing of agile methodologies, how to evaluate whether projects follow agile principles, and how to determine a suitable agile methodology for a specific project. In the course, 4 hours are taught weekly, of which 2 are for lectures and 2 are for application. Midterm and final exams form the 50% of the total grades. 20% comes from the assignments. The rest 30% is reserved to a project. In the University, this course has never been taught before. However, there is a similar undergraduate course called as Agile Methods in Software Development. In the previous years, the undergraduate course was given with the same format. In the last term, competition-based learning was applied (Çulha 2016). According to the lessons learned from the undergraduate course application, the competition-based learning setting was crystallized in the course SE571. In this term, competition-based adjustment is done again for the project part of the course. Scrum methodology is followed
  • 4. in the project. There were 16 enrolled students in the course. 6 teams were built from them, where each team has 2 or 3 members. The project is evaluated in two parts. In the first part, the written report of the project is dealt, where how the Scrum methodology is applied is evaluated. This classical evaluation constitute big part of the grading with a percentage of 70. The remained 30% of the evaluation is reserved for competition. According to the performance in the competitions, the teams get their points from this competition part. The students are enrolled to the course from Software Engineering and Information Technology Departments at Atilim University. All of the students are master or PhD students. 4. Project Description The project is based on competition. Therefore, a suitable problem for competition is designed. For this reason, mathematics is used to find the problem. The aim of the problem basically is to find the missing intermediate prime numbers in a text file in a given time. The text file is taken as input file to the program. It contains consecutive prime numbers starting from the first prime number. Some prime numbers are extracted from the input file. The aim of the program is to find those missing prime numbers. The input file is arranged according to the competitions. The program which will be written for the project takes a parameter. It is in seconds for the duration. Also, the given text file is taken as input implicitly. In the determined duration, the program finds all the missing prime numbers of the given text file. The program outputs a text file including all the missing primes. In the output file, all the missing prime numbers should be in order. In other words, if there is another number than the expected missing number in the location of the output file, the previous correctly found missing prime numbers will be evaluated for the performance. The others will not be evaluated even if there are some other missing prime numbers located ahead. Java will be used in all coding, where external libraries will not be used. The project will be completed in 3 iterations, where a four-week duration is selected for each of them. At the end of each sprint, the groups will prepare a report to certify the success of applying Scrum methodology. Furthermore, for each iteration, the competition of the prepared programs will be executed in a computer which runs on Windows 7 operating system. The selected computer runs with two CPUs at 3.00GHz and 2.67GHz, and 4GB of RAM. The ability of adaptation to fast-changing environments is important in agile methodologies. To support adaptation of fast-changing environments, supplementary requirements are requested for each iteration. These requirements will be used students to feel the fast-changing environment as well as to increase the motivation in the course. Group size of 2 or 3 was determined for forming groups. 6 groups were comprised from the enrolled 16 students. At the end of each iteration, each group prepares a report with a developed program. 5. The Methodology In Figure 1, the methodology applied is shown. Each iteration of the software development is also an exercise stage for the competition. The sprint is completed with a competition.
  • 5. Figure 1. The applied methodology In competitions, there should be an availability to do better and better performances. There should not be exact solutions to differentiate the students according to their performances. Therefore, the problem of the project should be selected as suitable for competitions. If the given input file is small, the exact solutions can be found. However, the size of the input file can be adjusted as big enough as not examined in the given duration. In consequence, the problem is suitable for competition. 6. Implementations of the Project The results are checked using a simple written program. This program inputs a file composed of consecutive missing primes. The first missing prime is found, and is checked with the missing prime list. If these numbers are the same, the next missing prime is found, and is checked with the next number in the list. It finds the first correctly ordered missing numbers according to the missing prime list for the whole file. If the missing number is not the expected missing prime, then it ceases and accepts the previous missing numbers for the performance evaluation. Table 1 shows the competitions for the iterations. At the end of the first sprint, the duration 120 seconds is used for the competition of the programs. For the second sprint, the duration is decreased to 80 seconds. For the last sprint, the duration is also decreased, and became 10 seconds. In the third column of the table, the number of missing primes are shown. In the first sprint an input text file prepared with 15 missing prime numbers. In the second sprint, the input file is designed with 6 missing prime numbers. In the last sprint, the input file size is increased and its number of missing primes also increased.
  • 6. Table 1. Competitions Duration (seconds) # of Missing Primes Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Sprint 1 120 15 9 0 15 15 0 14 Sprint 2 80 6 6 6 6 6 6 6 Sprint 3 10 20 1 0 20 2 0 0 In the second sprint, to increase the tension of rivalry the program complexity is increased. However, all groups found the exact number of missing primes. Therefore, all of them were the winner of the competition. A suitable adjustment in the program complexity was needed. In the third sprint, the problem complexity is increased drastically with a very small number for the parameter of duration. In Table 2, the ranks in the competitions are displayed. In the first sprint, there are two groups in the first position. In the second sprint, all the groups are in the first position. In the third sprint, three of them finished the competition at fourth place. Table 2. Ranks Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Sprint 1 3 4 1 1 5 2 Sprint 2 1 1 1 1 1 1 Sprint 3 3 4 1 2 4 4 In Table 3, the grades of the groups are shown. These grades are for 30% of the total project grade. According to the competition performance, the groups at first place take 30 full points, whereas the following places at the competitions take their grades by decreasing 5 points from the full grade successively. Actually, the major part of the total project grade comes from the traditional part with a percentage of 70%. Table 3. Competition grades Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Sprint 1 20 15 30 30 10 25 Sprint 2 30 30 30 30 30 30 Sprint 3 20 15 30 25 15 15 In Table 4, the report grades of the groups are displayed. This part is the 70% of the total project grade. How appropriately the Scrum methodology is applied is measured using this part. The report grades exhibit that the full grade is taken nearly by all the groups. Competition motivated students to do better work. As a result, they prepared good reports for the sprints. Motivation obtained from competition is contagious in good meaning. This contagiousness looks like the motivation ripples generated by daily scrums in Scrum methodology. In other words, the excitement of competition extends to the report part, to the whole course, and maybe to other courses. In consequence, fine and well
  • 7. formatted reports were submitted by the students, and which proved that the Scrum methodology was learned well. In short, competition affects the course very positively. Table 4. Report grades Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Sprint 1 68 70 64 66 63 67 Sprint 2 70 70 60 67 62 68 Sprint 3 30 70 47 62 61 70 In Table 5, the total project grades over 100 are shown. As a last column, the total grades of the groups are shown. According to this table, the maximum grades are taken in the second iteration. In the last iteration, the total grades were kept at minimum. Table 5. Total grades Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Total Sprint 1 88 85 94 96 73 92 528 Sprint 2 100 100 90 97 92 98 577 Sprint 3 50 85 77 87 76 85 460 In Table 6, the efforts of the groups are given. Efforts spent were recorded by the groups during the sprints. At the report of the sprint, each effort was documented by the groups. In the last column of the table, the total efforts are seen. In the second iteration, the groups spent the maximum effort with a total of 110 hours. In the last iteration, they spent their minimum efforts. Table 6. Total efforts (in hours) Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Total Sprint 1 16 31 12 10 21 9 99 Sprint 2 20 24 9 16 26 15 110 Sprint 3 9 12 8 9 28 13 79 In Table 7, the total grades are also added to the table as well as the corresponding total efforts. The contagious motivation of competition affects the report grades indirectly. Hence, groups spent more efforts took more grades. Therefore, the total grades and efforts are aligned. Fortunately, the expected correlation was obtained.
  • 8. Table 7. Total efforts and grades Total Effort (hours) Total Grade Sprint 1 99 528 Sprint 2 110 577 Sprint 3 79 460 In Figure 2, the group performances are displayed through the sprints. In fact, in the first and in the last sprint, competition is felt deeply by the students. At the end of the second sprint, all groups shared the first place of the competition. Figure 2. Performance of the groups through the sprints 7. Discussion The total efforts spent by the students can be seen in Table 7. According to this, the project was found as interesting from the students. They were surprised when the project was announced because they did not establish the relation with agile software development. They thought that the project is a mathematics project. Moreover, they were also surprised from the competition part because they said they did not experience it before in the courses. During the implementation of the project, they implemented several algorithms, of which some were searched from the internet, and some were their own trial algorithms. All these efforts were reported by the students. For the project, many hours were spent especially in the first two sprints as shown in Table 7. From the undergraduate level corresponding course, it is known that students learn many things in the first 3 sprints. According to student reports, they learned how to apply the Scrum methodology very well. In agile methodologies, communication among team members increase the success of development. The students used daily scrums as a default communication way. However, they also used social media as wells as phone, e-mail, and internet for communication. In consequence, they maximized the communication in the teams. G1 G1 G1 G2 G2 G2 G3 G3 G3G4 G4 G4 G5 G5 G5 G6 G6 G6 0 1 2 3 4 5 6 Sprint 1 Sprint 2 Sprint 3 Group 1 Group 2 Group 3 Group 4 Group 5 Group 6
  • 9. Students get excited because of competitions. Even after the competitions, they study on the finished parts, and write the program again, and asks for the re-execution of the finished parts. Those are directed to the next competitions without demolishing their excitements. For each sprint, adapting to the changing environment was expected. For this reason, some supplementary changes are appended to the sprint requirements. First of all, for each sprint, the duration is decreased, and students are not informed about their values. A few rules are changed, or extracted totally, with addition of new rules. For example, the number of written lines of codes in the programs is restricted. Likely, threading is forbidden. The students adapted to these changes as expected according to their reports. In Çulha (2016), a project is implemented in the application of agile software engineering using competition-based learning. The project is realized using Scrum methodology in teams. The project is established around a prime number problem from mathematics like the applied problem in the course. According to Çulha (2016), the number of iterations were high because students lost their interest with problem. Actually, there are 5 sprints and the last 2 sprints did not catch the concern of the students. Hence, in this work, only 3 sprints were taken. Three sprints fitted to the course well because the students did not lose their relevance to the project. Moreover, generally, duration for a sprint is 30 days. As a result, 3 sprints properly settled down for a single-term agile software engineering course. Moreover, in Çulha (2016), for each iteration, some little changes were made to increase the concern of the students. The same method was applied in this course by changing duration parameter in the sprints. These little changes multiplied the excitement of students to the course. Competitions are easily arranged in robotics courses because designed robots are competed in a straightforward manner. However, preparing settings in other areas is difficult. In this study, the competition-based learning is expanded to software engineering area. Probably, its extension to computer science area as a whole would be not difficult. Absolutely, extending to other areas may be hard, but the gain in learning efficiency would tolerate that adversity. Mathematics is a good place to find competition-based problems. Simple mathematical problems should be prepared for the competitions. Those problems should be enclosed with the related core course material. Hence, students do not feel that the assignment is pure mathematics. The competition problems should measure the performance of the competitions. In other words, there should be better results every time even if obtaining good results. Table 8. Course evaluation # of Students Course Department Average Faculty Average University Average Evaluation (over 5) 15 4.45 4.15 4.32 4.32 When students compete, they should not feel that the course is like a gambling. In other words, the whole evaluation of the course should not depend on the competitions. At that time, students would get angry, there would be serious conflicts among the teams and inside teams. According to the observations, less than quarter of the course evaluation would depend on competitions. In this course, nearly 10% of the course evaluation comes from the competitions. This percentage is not big, and not very small, but it fits well because the satisfaction level of the course is above the university average. In Table 8, the results of the course evaluation questionnaire are displayed. 15 students are attended to the questionnaire, and the evaluation score for the course is 4.45 over 5 whereas university average is 4.32.
  • 10. Another method was applied to take away competitions from gambling. The evaluations do not depend on the actual performances of the competitions because there would be big gaps among teams. At that time, the winner gets the whole grade, whereas others get nearly zero grades. In consequence, the evaluation of the competitions depends on the order of competition results. In Table 2, the ranks are determined for this purpose. The teams are formed as 2 or 3-student teams. In agile approaches, communication among team members is an important factor for success. Moreover, it is known that communication in small teams is better. As a result, it is observed that the size 3 for teams in this course is a good choice to learn collaboration and teamwork. 8. Conclusion Main contribution of the paper is that problems from mathematics can be exploited in software engineering education. Competitions enhance the quality of education in software engineering. In software engineering education, a good motivator is obtained via competition-based learning. Especially, for agile software engineering education, the application of competition-based learning creates also the fast-changing environment where agile software development runs. In agile software development, frequent inspections of the project like daily scrums generate motivation ripples in the project environment. Likewise, the competitions generate similar motivation ripples on students. These motivation ripples improve the total quality of the course. Furthermore, these motivation ripples affects the learning in the other courses. These affects can be investigated in future researches. Another contribution of the paper is that the competition atmosphere strengthens the communication among the students. In agile software engineering, the strong communication is a sought thing, and agile software engineering also increase the communication among stakeholders implicitly. In the paper, applying competitions in learning of agile software engineering is presented for a graduate-level course. Real world is simulated using competitions. Students were motivated by competition-based setting to find the missing prime numbers. In agile software development, self-motivation should be increased. Competitions assist students to gain self-motivation. The word “agile” has the meaning “quick” in addition to other meanings. Therefore, in agile methodologies, being quick is inevitable. Fast changes in the environment are again inevitable in today’s software development. Competition-based settings provide agile environments to software development. Consequently, adaptation to the fast-changing environment is achieved. It is observed that teaching of software engineering is increased in efficiency by applying competition-based learning approach. Competition-based projects creates simulations of fast-changing environments of real world. In agile software development courses, development issues related to real world can be encountered by competition-based projects. In agile software development, strengthening the communication among the stakeholders of the projects may be the main cause of the success of the agile software development. Competitions increase the motivations of the students. They want to be winner of the competitions. Therefore, they increase the teamwork by increasing the communication between their team members. In brief, agile software development is a right place to apply competition-based learning. Furthermore, competition-based learning contributes to the base concepts of computer science. The students try to optimize time and space usage. Space and time management in programming are demanded in competition-based settings because of obtaining good performance. For the future work, contagious effect of competition-based learning can be studied.
  • 11. References Altin, H. and Pedaste, M. (2013) Learning Approaches to Applying Robotics in Science Education. Journal of Baltic Science Education. Baker, A., Navarro, E.O. and van der Hoek, A. (2005) An Experimental Card Game for Teaching Software Engineering Processes. Journal of Systems and Software. Beck, K. (2003) Test-driven Development: by Example. Addison-Wesley Professional. Begel, A. and Nagappan, N. (2007) Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study. In Empirical Software Engineering and Measurement. Brazier, P., Villalobos, M.C., Taylor, M., Basu, K. and Sircar, T. (2006) A Cross-Disciplinary Software Engineering Project Implemented as a Web Service. Proc of the 9th International Conference on Engineering Education. Burguillo, J. C. (2010) Using Game Theory and Competition-based Learning to Stimulate Student Motivation and Performance. Computers & Education. Chung, C.J. C. (2008) Learning through Competitions – Competition Based Learning (CBL). LTU CTL Conference, April 2008. Claypool, K.T. and Claypool, M. (2005) Teaching Software Engineering Through Game Design. ITiCSE. Collofello, J. and Woodfield, S. (1982) A Project-unified Software Engineering Course Sequence. ACM SIGCSE Bulletin. Çulha, D. (2016) Applying Competition-based Learning to Agile Software Engineering. Comput. Appl. Eng. Educ. Dingsoyr, T., Nerur, S., Balijepally, V., and Moe, N.B. (2012) A Decade of Agile Methodologies: Towards Explaining Agile Software Development. Journal of Systems and Software. Dyba, T. and Dingsoyr, T. (2008) Empirical Studies of Agile Software Development: a Systematic Review. Information and Software Technology. Fernandez, D.J. and Fernandez, J.D. (2008) Agile Project Management - Agilism versus Traditional Approaches. Journal of Computer Information Systems. Highsmith, J.A. (2002) Agile Software Development Ecosystems. Addison Wesley Professional. Hyyppa, K. (2004) Competition - An Efficient Method to Get Students Committed. ICALT, IEEE Computer Society. Jacobson, I., Booch, G. and Rumbaugh, J. (1999) The Unified Software Development Process. Reading, MA, Addison- Wesley. Jung, S. (2013) Experiences in Developing an Experimental Robotics Course Program for Undergraduate Education. IEEE Trans. Education. Lindstrom, L. and Jeffries, R. (2004) Extreme Programming and Agile Software Development Methodologies. Information Systems Management. Marmorstein, R.M. (2011) Open Source Contribution as an Effective Software Engineering Class Project. ITiCSE.
  • 12. Paulik, M.J. and Krishnan, N.M. (2001) A Competition-motivated Capstone Design Course: the Result of a Fifteen- year Evolution. IEEE Trans. Education. Paulik, M. J. and Krishnan, M. (1999) An Autonomous Ground Vehicle Competition-driven Capstone Design Course. Proc. 1999 Frontiers Educ. Conf. Nov 1999. Pletch, A. and Agajanian, A. (2007) A Software Engineering Project that Looks Like the Real World. Journal of Computing Sciences in Colleges. Prasad, M.K. (2014) Agile Computing – A Case Study. Reichlmayr, T. (2003) The Agile Approach in an Undergraduate Software Engineering Course Project. Proc. 33rd Annual Frontiers in Education. Schwaber, K. (2004) Agile Project Management with Scrum. Washington, Microsoft Press. Shukla, A. and Williams, L.A. (2002) Adapting Extreme Programming for a Core Software Engineering Course. Software Engineering Education and Training. Proceedings. Los Alamitos, CA, IEEE Computer Society Silva, B. and Madeira, R.N. (2010) A Study and a Proposal of a Collaborative and Competitive Learning Methodology. IEEE Education Engineering. Young, P. and Needham, P. (2013) Using a Class-Wide, Semester-Long Project to Teach Software Engineering Principles. GSTF Journal on Computing.