Teaching object oriented programming computer

4 downloads 0 Views 149KB Size Report
undergraduate program, this work intends to describe the. Laboratory part of the Programming Languages course of the UFABC, the experience of the ...
Teaching object oriented programming computer languages: learning based on projects G. M. Ferreira1, M. Z. Nascimento2, K. D. R. Assis1, R. P. Ramos1 1 Centro de Engenharia, Modelagem e Ciências Sociais Aplicadas 2 Centro de Matemática, Computação e Cognição, Universidade Federal do ABC (UFABC), Santo André,SP, Brazil {gelio.ferreira, marcelo.nascimento, karcius.assis, rodrigo.ramos}@ufabc.edu.br Abstract This work proposes to describe a teaching approach for introductory laboratory course in object-oriented programming and its respective teacher’s experience. The profile of the first classes of freshmen, with different career goals, enrolled in Interdisciplinary Bachelor of Science and Technology at Federal University of ABC is presented. Educational methodology adopted in the lab using tutorials and a project-based learning approach is also discussed. Furthermore, some statistics about assessment of a student class in response to the learning activities, and its respective analysis are shown. And finally their evaluation about this educational approach is presented.

1. Introduction In November 2001, a survey on the list of subscribers of the SBC (Brazilian Computing Society) was carried through. The main objective of this study was to identify the programming language used in Computing Science undergraduate freshmen classes in Brazilian universities. From 62 Universities interviewed on this survey, only 7 have adopted Object-Oriented Programming (OOP) languages as first programming language [1]. The explosive growth of the Internet and the need to develop computer applications, express the necessity of migration from a structured programming language (for example, Pascal) to an OOP language (for example, JAVA) in order to provide the ability to develop consumer applications (for example cellular telephones, pagers PDA´s) [2]. The use of OOP in a new course on the basic cycle of the Science and Technology careers is not restricted to only a necessary tool support for the freshmen students in technological areas. More than this, it must be understood by the students of distinct areas as a basic standard of measure which bounds both the economic growth in technological areas (i.e., information, simulation and automation) and a essential systemic and logistical approach to the support of social areas (i.e., environment, health and education) [3]. In the Federal University of ABC (UFABC), the Bachelor of Sciences and Technology degree (BS&T) intends to provide general science college background, as a common graduation study which precedes a specific

professional graduation or a scientific technological study after graduation. Therefore, Programming Languages course of the BS&T in UFABC necessarily aims to qualify the students by stimulating them: i) in the use of a programming language tools for the multi and interdisciplinary differentiated concerns; ii) in the team work; iii) and in the search for the applications innovation and originality. Hence, the educational strategy of this course was designed to reach a learning based on practical projects. The projectbased learning has been extensively addressed in the literature [4-8], but it has not been directly related to teaching of object oriented programming languages. Facing the requirements of this recently founded undergraduate program, this work intends to describe the Laboratory part of the Programming Languages course of the UFABC, the experience of the professors in teaching this course in the BS&T and the student’s answer to this educational approach. In order to do so, the work is organized as follows: Section 2 describes the history of UFABC and the motivation for a multidisciplinary Science and Technology degree; in Section 3 the profile of the University’s freshmen is given; in Section 4, OOP and the methodology adopted in the laboratory classes is explained; Section 5 discusses the learning based on multidisciplinary projects; in Section 6, some statistics about overall students performance is presented. As well, student evaluation about this course is provided; and finally, in Section 7, the conclusion with reflexions upon the practical approach study in this course is presented.

2. Description of UFABC In March of 2005, the Brazilian Ministry of Education set up a group of academic professionals to implement this public Brazilian University. This group, known as UFABC commission, was formed for professionals of outstanding performance in the area of the high education [9]. The motivation for the works of the UFABC commission was the university academic project. Through it, this commission aimed to overcome some of the weaknesses of the last century Higher Education, such as fragmentation of knowledge (mainly technological knowledge) in rigid disciplinary areas, the intense rhythm of obsolescence of the specializations, and the necessity to establish a lifelong professional self-learning. The option

made to overcome those issues was to organize the University educational offerings around one BS&T. Its course purpose was to supply students with a scientific background of higher educational level, which qualifies them also to be a contemporary citizen, ready to become professional in any scientific or technological career, either to the academic or to labor market. Thus the BS&T works as the 3-year first cycle of all careers (Engineering, Physics, Chemistry, Biology, Computer Science, and Math). In order to fully reach this perspective in high education arrangement, any student in the university should attend one or two years after the conclusion of the BS&T. The conventional careers plurality and the dynamism of the technological areas suggest that the education of those professionals should rest on a common broad scientific basis, which is acquired mainly in the BS&T. And the specific knowledge demanded by each career will be provided in the next couple of years afterwards. In compliance with this new curricular model built by the UFABC commission, an appropriate undergraduate course must explore interdisciplinary connections of all offered classes in this program. Therefore, the goal is not to attenuate the harshness of the conventional classes, which should be kept and be strengthened, but to combine it with the dynamism of the interdisciplinary approach in the capture of thematic issues in of our time (such as energy, environment, information, among others). It is understood by UFABC professors that to implement this approach, it is necessary to encourage the involvement of the students, in these multifaceted issues of XXI century displaying its relations and effects on the regional problems.

3. Student Profile The first freshmen group of UFABC has begun its academic activities in September 2006. Those students have attended classes described in this article. Table 1 shows the vocation of these entering students made by a survey carried out by the Principal’s Undergraduate Office of the UFABC. This research aimed to evaluate the student’s interest in continuing the studies after the BS&T and the respective intended careers. Table 1 shows percentage of students’ career intention in the four following areas: Computer Science, Mathematics, Engineering and Sciences (Physics, Chemistry, and Biology). TABLE 1: Student Career Intention (UFABC)

Career

%

Computer Science

5

Mathematics

5

Engineering

67

Sciences

23

Total

100

Table 1 also shows majority (67%) of the students intends to follow some careers in Engineering, followed by large part (23 %) that aim to follow one of the Sciences. Just a small part of those students (10%), intends to follow Computer Science or Math. TABLE 2: Student Engineering Intention (UFABC)

Career

%

Instrumentation and Robotics

14

Aerospace

15

Bioengineering

8

Energy

22

Environmental and Urban

8

Information

10

Management

7

Materials

16

Table 2, shows the percentage of the UFABC students that intend different offered Engineering careers as professional first degree choice. From this data, it can be noticed that a significant part, 23% of student career option (Management engineering, Environmental & Urban engineering, or Bioengineering) do not present a strong need to work with computer programming languages The percentage of students whose engineering career choices need strong Computer skills is about 39% (Instrumentation and Robotics engineering, Aerospace engineering, and Information engineering). Finally, 38 % of students have as engineering option areas that can use their computer language skills (Energy engineering, and Materials engineering) of the students goes to follow Management engineering, Environmental engineering, or Bioengineering. However, it is understood by authors that all students from any engineering choice need strong computer programming skills.

4. Laboratory Learning Methodology for OPP Based on Tutorials In the learning process of the programming language class, the entering students present huge difficulties due to the fact that half of them are from public high schools, and just at UFABC they have experience and contact with programming languages. In the UFABC, this class is offered in the first quarter period of study (consisting of 14 weeks) in the BS&T. One of the first concerns and/or discussions among the teachers was to determine which paradigm of programming would be adopted in this class (Programming Language). As computer science is in constant technological advance and software has become bigger and more complex each day, the

OOP paradigm was adopted. This choice was based on OOP being an evolution of the structured paradigm and also due to the decreasing of the distance between the computational modeling and the real world, which aims to focus on the abstractions of data as basic elements of programming [10]. Moreover, the Java language was chosen due to its reliability, because it provides tools for treating innumerable exceptions, without being concerned about the fact that the application can be unexpectedly [11]. This course class was built in 6 hour-lessons weekly, being composed of 4 hour-lessons of theoretical content for communication of concepts on the main subjects related to OOP, and 2 hour-lessons dedicated to the experimental/practical content in the laboratory. Lab classes traditionally are used for testing and evaluating theoretical concepts, either by producing programming mistakes or only validating the application of the concepts explained in theoretical lessons. In the case of Programming Languages Lab class of the UFABC, the learning approach was the division of the pedagogical strategy in two parts. The first one was carried through using tutorials and the second part of the course was focused on practical projects. If on one hand the lab tutorials had given support to the students for the knowledge of the Java language and its programming environment, on the other hand the project’s purpose was to stimulate them to use their creativity in the application of the concepts presented in the theoretical class as well in the tutorial laboratory class. To build the practical lessons, a team composed by 14 teachers of different areas of the knowledge was created. This group was formed by computer scientists, physicists and engineers, in order to put up this lab class with applications of concepts that could explore the interdisciplinary topics from different areas of science and technology. The teachers assigned for the practical lessons met weekly with teachers responsible for theoretical classes for the purpose of developing tutorials of practical activities to synchronize with the development of theoretical concepts. A sequence of nine practical tutorials was proposed throughout the quarter. To implement those activities, the students used one of most usual interactive environments of software development: NetBeans developed by Sun (http://java.sun.com). These tutorials had different learning goals from those of the programming language: i) study of the concepts presented in the theoretical lessons; ii) student adjustment to the programming environment; and iii) the solution of the problem through its modeling. Such activities were composed by activities that led students to use some cognitive points related to the modeling of the problem and the building of the algorithm. Those practices generally involved the creation of two or three object classes that demonstrated a simplified form of data modeling and their implementation. Models employed were simple and based

on information systems, such as manipulation of banking accounts, gym schedule, voting election software, basic math functions plotting, etc. In this way, the students have also acquired basic knowledge in Unified Modeling Language (UML) notation. This approach had as objective to help and to motivate students in OOP learning.

5. Laboratory Learning Methodology for OPP Based on Software Projects A current trend in the technological and scientific education consists of the strong integration between learning with theoretical courses and with direct practical experience (hands-on learning) [12]. In order to reach this goal, the second part of the lab class involved a final software project, with which the students could use the theoretical concepts in practice in a direct and challenging way. This strategy allowed work and development of the modeling problems and software building for different applications chosen by their own or suggested by the teachers. In this stage, the students were divided in work teams, with three or four members. The teams presented a proposal of a simple information system, to be developed in project form, in which they applied great part of the theoretical concepts of the Programming Language class. The pupils were stimulated to present a proposal of project related to subjects of the interdisciplinary areas of the BS&T. On proposed software, the student group should model the subject using OOP paradigm and implement its modeling using Java. Furthermore, they would have to present a report of the developed activities and results of the project in the end of the quarter in an oral presentation. An important point was that the project in practical lessons motivated them for application of the theoretical concepts to the practical problems, but also to developed basic soft skills such as teamwork, synthesis, writing and (oral) presentation of the obtained system. The specifications of the project were: • To perform modeling using OOP; • To implement a software based on the proposed modeling; • To develop software with a minimum of 5 object classes. • To present orally (seminar) its software for the teachers and other groups.

6. Classroom Assessment The assessment of the students was composed of a midterm exam (carried through in the programming environment) and of the practical project. In the midterm exam, the proposed problems demanded knowledge and understanding of the theoretical concepts. The applied exam proposes to solve three programming problems on computer individually and with closed book. On the other side, the

7. Results of Lab Assessment In this section, the obtained score results of the assessment in laboratory are described. The grades of a total of 380 students have been analyzed. Table 3 shows the final concept of the evaluation in laboratory class for Programming Languages. Notice that a significant part of students 31.6 % obtained excellent and good evaluation (A the B) in the lab lessons. Considering just students that obtained grade C and D, who are those who had an average and minimum performance respectively, a total of 52 % of the students obtained a satisfactory performance in the laboratory. From Tables 1 and 3, it can be noticed that the choice of the career is irrelevant for the good performance of the student, considering the pedagogical proposal presented in this article. Another statistics of much interest in the evaluation of this approach is the educational efficiency regarding to the requirement of a final practical project. Figure 1 shows the percentage differences between the grades of the test and the project. Through these data, it is clear that there was increase in the percentage of the students who improved the concept in the assessment of the project in relation to the grades obtained in the midterm exam. These data are corroborated as shown in the Table 4, which exhibits a percentage of 74% of students who had improved or, at least, had kept the grades in comparison to the exam. These data demonstrate the importance of the practical project in the evolution of the students’ learning during this class, since the project not only demanded knowledge acquired using the tutorials and the theoretical lessons, but also shows topics that were not approached during the class

TABLE 3: Student Final Grade.

Grade

%

# of students

A

12,1

46

B

19,5

74

C

26,5

101

D

25,5

97

F

16,4

62

Total

100

380

Percentage (%)

project, had two criteria of the teachers in relation to its assessment: i) system of information developed for the solution of the problem; and ii) and the knowledge that each student individually obtain through the development of his project. The topics evaluated about the practical project were: • Modeling; • Functionalities; • Complexity; • Documentation of the code-source. To evaluate the knowledge acquired by the students, seminars for the presentation of the projects were carried out. During these seminars, the professors evaluated the contribution of the team with the project and each student involvement in the presented source code. The final grade in the lab class was given by the contributions of both midterm exam and final project. Following the criteria of the UFABC, grades are presented in form of grade A, B, C, D and F – according to which for approval students have to obtain A to D and fail is indicated by F.

32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0

Exam Project

A

B

C

D

F

Grades FIG. 1: Comparison (in %) between midterm exam (gray bar) and project grades (dark gray bar).

TABLE 4: Percentage of students that increase or kept grade in the project compared to midterm exam.

Increase or kept grade

Students %

Yes

73,89

No

26,11

– for instance, the employment graphical interface which was present in several practical projects. A) Feedback from Students In the last week of the classes, just before project presentation, a survey was used to assess the overall coursework and to increase students’ perception of learning. For each student we asked 5 questions about methodology in this lab class. They responded on scale from A to F, using same grades applied on student assessment that was carry out by professors.

those students who did not have a good performance in the midterm exam. At the moment, the teachers are preparing the continuation of this methodology for the second class on programming language for BS&T, therefore are discussing general issues of assessment, specific methods for examination and for grading of freshmen students.

Acknowledgment

FIG. 2: Final grade from students about overall programming class

The questions on this survey are shown below: • This class had new and relevant information; • There were not troubles to catch up this class with prior student know-how. • This class was well-prepared considering its content and interdisciplinary relations. • The material (tutorials and slides) available as educational support was well-prepared. • The computational resources available for activities and the course approach helped the understanding of the concepts discussed in this class. Figure 2 presents a graphic with average grade values of those questions applied to students. They overall grade about lab coursework presents 57% of a good evaluation (A and B). Moreover, the course performance had 39% of a satisfactory grade (C and D) using above statements as evaluation.

8. Discussion and Conclusion Based on this teaching experience, it is worthy to conclude that the learning methodology considered in this article presents a satisfactory performance. Learning based on practical project can enrich the interaction of the BS&T students with interdisciplinary content of the theoretical course and help them to see the relevance of the practical course for real life issues, and its correlation to other courses. If the students are encouraged to try an intellectual integration of their experiences in other disciplines with the practical course of programming language, such tasks also can help them to analyze, to synthesize, and to evaluate the concepts which had been introduced during class work. Also, it is worthy to notice that the practical activities have a great educational value if they are planned to be integrated with the general goals of the classroom. For example, the teamwork, through the elaboration of these projects, gives us a strong indication that knowledge can be caught up by

The authors want to thank the teachers who had participated of the first Programming Language class in the UFABC: Aline Neves, Carlos Kamienski, Celso S. Kurashima, Christiane Schweitzer, Francisco J. F. da Silva, Guiou Kobayashi, Itana Stiubiener, Ivan R. S. Casella, Luís A.M. Riascos, Maria das Graças B. Marietto, Roberto J. Rodrigues, and Rodrigo R. Muñoz.

References [1] Perego, C.A.; Lisboa, M.L.B. (2001), “Programming Languages Adopted on Computing Courses” (in Portuguese), availabe from http://apec.unoeste.br/~cassia/pesquisa.html. [2] Perego, C. A.; Lisboa, M. L. B., Bertagnolli, S. C. (2002), “Pascal to Java Migration: Problems and Solution Proposals” (in Portuguese), Workshop on Computing Education, SBC 2002, Florianópolis, Brazil. [3] Bologna Declaration (1999), European Comission website http://ec.europa.eu/education/policies/educ/bologna/bologna_en.ht ml. [4] Blumenfeld, P. C.; Soloway, E.; Marx, R. W.; Krajcik, J. S.; Guzdial, M.; Palincsar, A. (1991), “Motivating Project-Based Learning – Sustaining the Doing, Supporting the Learning”, Educational Psychologist, 26 (3-4): 369-398. [5] Howatt, J. (1995), “A Project-Based Approach to Programming Language Evaluation”, Sigplan Notices, 30 (7): 3740. [6] Davenport, D. (2000), “Experience using a project-based approach in an introductory programming course”, IEEE Transactions on Education, 43 (4): 443-448. [7] Ho, M.L.; Rad, A. B.; Chan, P. T. (2004), “Project-based learning”, IEEE Control Systems Magazine, 24 (5): 88-91. [8] Macias-Guarasa, J.; Montero, J. M.; San-Segundo, R.; Araujo, A. Nieto-Taladriz, O. (2006), “A Project-Based Learning Approach to Design Electronic Systems Curricula”, IEEE Transactions on Education, 49 (3): 389-397. [9] UFABC, Institutional – Implantation Comission (2006). Available from http://www.ufabc.edu.br [10] Deitel, H. M and Deitel, P. J (2001) , “Java: How to Program”, 4th Ed. Prentice Hall. [11] Junior, M. A. C.; Virtuoso, G. H. F; Martins, P. J. (2005), “Desirable Properties in a Programming Language: A Comparative Analysis Between C, C++ and Java” (in Portuguese), I Congresso Sul Catarinense de Computação, September 2005, Criciúma, Brazil. [12] Almgren, R. C. (2007) “Converging Complexity Challenges Educators to Prepare Tomorrow's Innovators”, Photonics Spectra Magazine, January 2007.