Authors Amreen Kausar Gorvankolla Navya R Smitha G.R
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.)