Authors Smitha G.R, Navya R, Amreen Kausar Gorvankolla,
License CC-BY-4.0
Published by : International Journal of Engineering Research & Technology (IJERT)
http://www.ijert.org ISSN: 2278-0181
Vol. 5 Issue 09, September-2016
Adopting Agile Technology in Learning C
Programming
Amreen Kausar Gorvankolla Navya R Smitha G.R
Department of Information Department of Information Assistant Professor,
Technology, Technology, Department of Information Science,
RV College of Engineering and RV College of Engineering and RV College of Engineering and
Technology, Technology, Technology,
Bengaluru, India Bengaluru, India Bengaluru, India
Abstract— The Major Concern For The First Year Students Agile methodology being dynamic, self-adapting and widely
As Soon As They Step Into Pre-University Education Or accepted can solve these issues to a major extent by following
Graduation Is Learning C Programming. It Is Not An Easy Task the four agile manifestos. The different manifesto defined by
To The Professors To Teach Computer Programming For The agile is as follows:
Beginners. Since The Students Have Absolutely No Idea About
i. Interactions and individuals over tools and process
Programming, It Will Take Huge Amount Of Time To Pick Up If
We Keep Following The Traditional Lecture Based Approach Of ii. Working software over exhaustive documentation
Using Pen And Paper Rather Than Practical Knowledge. Agile iii. Customer collaboration over contract negotiation
Methodologies Can Be Incorporated In Educational Field To iv. Responding to change over following a plan
Enhance The Students Programming Skills And Provide More
Opportunities For The Students To Take Initiative And Engage II. CHALLENGES IN LEARNING C PROGRAMMING
Themselves In Collaborative Learning. It Also Helps The There are several challenges in learning CP, few of them are
Professors To Efficiently Manage The Classes That Contain The under-preparedness, lack of resources like fully-furnished
Students With Different IQ Level.
laboratory, lack of experienced CP professors etc [1].
Keywords—Students, Teaching, Pair programming, Manifesto, According to the survey, the challenges faced by first year
Informative workspace, Code qaulity, Assessment, C computer science students are as follows:
Programming(CP) A. Computer Scholar
I. INTRODUCTION Students are not offered computer science subjects in secondary
education so they feel difficult when they enter the
Research shows that usually first year students of the programming class for the first time. It also makes them
university take up the programming course that is very essential difficult to use the computer system, understand the notion of
to gain skills and cope up with the industry.Many of the program, participate in the class actively and attain the
universities are facing challenges in teaching CP(C knowledge of programming environment.
Programming) for the students of the first year. Even students
are been pressurized for the same. Traditional lecture based B. Understanding the Language
approach cannot improve students programming skills as the It is very hard for the students to actively participate and involve
students are just made to sit in the classroom and listen to themselves in the classroom activities due to their lack of
lectures. It might fetch marks but students will lack technical proficiency in English language. This might lead to
growth and improvement. These problems may arise due to lack communication problems and lack of understanding
programming concepts.
of basic knowledge of the programmers. Even though many
new approaches like Information and Communication C. Lack of Experienced Programming Teachers
Technology (ICT) has come up which uses visual based Programming may not be always difficult, but due to inadequate
interactive learning, it is not considered helpful in learning CP and lack of skilled teachers students learning process might get
[1]. As programming is considered difficult to acquire, it needs affected. This minimizes the interest in learning the concepts.
practical knowledge rather than just sitting and observing the
lectures. Students who have just completed their secondary III. PROPOSED METHODOLOGY
education and have chosen computer science Traditional lecture based approach is good but it does not
as their career will not be having enough knowledge about the involve the student interaction and engagement. Hence we need
programming concepts due to some reasons like there is no an approach where students interact and learn more concepts.
proper utilization of resources, less attentive to lectures . It can The following section provides steps for the proposed teaching
be inferred that when students do not understand the methodology and the setup of the classrooms. Hence the
functionality of the code, they tend to feel left over and de- following steps help the students to involve in the computer
motivated. This becomes a challenge to teach as well as learn. programming classes.
IJERTV5IS090356 www.ijert.org 416
(This work is licensed under a Creative Commons Attribution 4.0 International License.)
Published by : International Journal of Engineering Research & Technology (IJERT)
http://www.ijert.org ISSN: 2278-0181
Vol. 5 Issue 09, September-2016
A. Requirements
1. The programming classes should be conducted in the
laboratories instead of the classrooms.
2. The study material for the programming languages
should be provided a week prior to the lab.
3. There should be well furnished laboratories that can
accommodate minimum of 50 students.
4. The teacher should maintain a friendly relationship
with the student so that it makes teaching and learning
Figure 2: Pair programming infrastructure in computer lab
process easy.
2 Coding over submissive listening: “Working software
B. Manifesto
over comprehensive documentation” being the second
The aim of applying agile methodology in learning manifesto will be achieved in this step. We all know that
computer programming will boost the students confidence, it is better to learn and make mistakes in classrooms rather
engage them and helps them to take part actively. It can be than making mistakes in exam. There is no effective
discussed in detail as follows: learning if the students just copy down the programs from
the board without understanding them. Hence the students
should get hands on experience and practice the programs
taught by the teachers during the lecture and gain
confidence in understanding the syntax, running the
program and debugging it. This will eventually help
students to write their own programs with greater
confidence and fewer errors.
3 Active teacher involvement: By having a close contact
with the professor “Customer collaboration over contract
negotiation” can be achieved. The instructor or the teacher
after explaining the programming concepts provides the
students with certain tasks to assess them. By maintaining
frequent contact with the students, the teachers can help
the students when they are stuck. In addition, the teachers
can assess the students when they are performing their
Figure 1: Manifesto proposed by Agile
tasks rather than assessing them after submitting their final
1. Pair Programming: It achieves the first manifesto results.
“individuals and interactions over processes and tools”. 4 Resilient and quick correction: This step helps in
One student among a pair will be actively implementing achieving the fourth manifesto “Responding to change
the code while the other will be observing it to find the over following a plan”. As the programming concepts are
errors and suggest other possible solutions to the newly introduced to the first year students, course content
implementer. Through this, the students continuously given in the curriculum should not be followed strictly,
interact and build up a trust with each other. It is instead teach them as per their level of understanding. As
recommended to use the same development platform by stated in the previous step, having a close contact with the
all the students to overcome the difficulty of students the teachers can correct the errors when they are
understanding the program whenever the pair changes [1]. performing the tasks instead of waiting for them to submit
Formation of the pair can be either based on students the results. At the right time when the changes are
selection or based on their academic level the teachers suggested it helps the students to save the time and rework
assign the partner. on particular concepts. Adopting pair programming in
agile process has been very productive. But there may
arise a challenge in pair programming where the time
might be wasted by explaining the idea of one student to
other [2]. This problem can be overcome by creating an
informative workspace in the lab where the students sit in
pair. The student who is coding can write down the ideas
on sticky notes, charts and place it on the table where the
other peer can read those and continue with the work This
will reduce the time wasted in explaining each other what
they are doing instead of actually concentrating on coding
and learning concepts.
IJERTV5IS090356 www.ijert.org 417
(This work is licensed under a Creative Commons Attribution 4.0 International License.)
Published by : International Journal of Engineering Research & Technology (IJERT)
http://www.ijert.org ISSN: 2278-0181
Vol. 5 Issue 09, September-2016
IV. RESULTS AND DISCUSSION V. CONCLUSION
The results of the pair programming on the code quality and Based on the level of difficulty of learning C programming
the students course assessment are discussed in this section. in the first year, teachers should design the courses according
1. Code quality: By adopting pair programming there will be to the agile manifesto that will help students to gain knowledge
reduction in the number if lines of code, calls and also and become more productive. Pair programming should be
reduction in the errors [3]. It is because in pair programming encouraged as students enjoy learning concepts with their
where one student codes and the other observes, it can be friends, become more productive, they often come prepared to
observed that the observer keep observing and provide the lab to take up the tasks. It also allows students to interact
inputs to the coder as to what has to be done and what can with each other and socialize [3]. Finally, pair programming has
be improved upon. Also due to close contact with the the potential to increase the students' completion rate and
teachers during learning process will help them to improvise reduced the absence rate. Students who are enjoying the course,
their code if at all any improvisation has to be done. and have more confidence in their programming abilities tend
2. Assessment: Peer evaluation among students is an essential to avoid dropping the course, and try to complete all the
facet of pair programming. Satisfaction and effective requirements needed to pass the course.
learning among students is achieved by assessing each
other's work. Pair programming helps the beginners to
REFERENCES
improve their understanding. Secondly, Outcome Based
Learning can be adopted by professors to assign tasks and [1] Bassey Isong. (2014,September 15-21). “A methodology for teaching
computer programming :first year students perspective”.Paper presented
assess the students. Based on analyzing the drop and at Modern education of computer science, Thohoyandou,South Africa.
completion rates of the assigned tasks, the professor can [2] Slaten,K.M.,Droujkova,M., et al.(2005,July).”Undergraduate student
evaluate the level of understanding of the students. If the prceptions of pair programming and agile software methodologies”. Paper
students have underperformed, the professor can repeat the presented at the IEEE Proceedings of the agile development conference.
concepts and assign simpler tasks. Once the student has [3] Mamoun Nawahdah., Dima Taji., &Tomoo Inoue.(2015, December 10-
gained enough confidence on the concept the complexity of 12). “Collaboration leads to success”. Paper presented at the IEEE
International conference on teaching ,assessment and learning for
the task can be increased. Also the professor can assess the engineering (TALE), Zhuhai,China.
students by collecting day to day work where the students [4] Bassey Isong., Ohaeri Ifeoma., &Naison Gasela. (2015). On the
create a small informative workspace to convey the work “Integration of Agile Practices into Teaching: an approach to
done using a sticky note. During the later stages the student overcoming teaching and learning challenges of Programming”. Paper
presented at the International Conference on Computational Science and
can submit a written report on what they have done. Computational Intelligence.
[5] Faria, E S J., Yamanaka, K., &Tavares, J A.(2012,March).” eXtreme
Learning of Programming – A Methodology Based in eXtreme
Programming to Programming Learning”. Paper presented at IEEE Latin
America Transactions.
IJERTV5IS090356 www.ijert.org 418
(This work is licensed under a Creative Commons Attribution 4.0 International License.)