DOKK Library

Adopting Agile Technology in Learning C Programming

Authors Amreen Kausar Gorvankolla Navya R Smitha G.R

License CC-BY-4.0

 Published by :                                                    International Journal of Engineering Research & Technology (IJERT)                                                                                                    ISSN: 2278-0181
                                                                                                         Vol. 5 Issue 09, September-2016

            Adopting Agile Technology in Learning C
   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                                                                                              416
                        (This work is licensed under a Creative Commons Attribution 4.0 International License.)
 Published by :                                                  International Journal of Engineering Research & Technology (IJERT)                                                                                                  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                                                                                                   417
                        (This work is licensed under a Creative Commons Attribution 4.0 International License.)
  Published by :                                                  International Journal of Engineering Research & Technology (IJERT)                                                                                                  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
   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                                                                                                    418
                         (This work is licensed under a Creative Commons Attribution 4.0 International License.)