260 likes | 278 Vues
Does the Choice of the First Programming Language Influence Students’ Grades?. Miloš Savić, Mirjana Ivanović, Zoran Budimac, Miloš Radovanović Department of Mathematics and Informatics Faculty of Science s , University of Novi Sad , Serbia. AGENDA. I ntroduction
E N D
Does the Choice of the First Programming Language Influence Students’ Grades? Miloš Savić, Mirjana Ivanović, Zoran Budimac, Miloš Radovanović Department of Mathematics and Informatics Faculty of Sciences, University of Novi Sad, Serbia
AGENDA • Introduction • Characteristics of (first) Programming Languages • Different Language Paradigms and Approaches in Education • Changes in Teaching the First Programming Course • Conclusion
Introduction • Is problem of choice of the first programming language a little bit out of date? • It is not easy decision, burden with a lot of dilemmas. • Is the choice of the FPL serious for later development of a programmer? • Important to distinguish key features of a PL in the context of education. • Practical difficulties in separating the educational issues of programming from the training issues of coding.
AGENDA • Introduction • Characteristics of (first) Programming Languages • Different Language Paradigms and Approaches in Education • Changes in teaching the first programming course • Conclusion
Characteristics of (first) Programming Languages • In Companies a lot of factors influence selection/usage of appropriate PLs and tools: • Computer capabilities, • Domains of applications, • Programming and Implementation methods, • Standardization. • ICT industry influences educational processes: • Rapidly changing decisions which PLs and tools to use. • Decision whether to use already available components and patterns?
Characteristics of (first) Programming Languages • Students have to be prepared for the real world of very complex software ((reusable) programs of hundreds of thousands of lines), stay around for a long time. • Additional influences on selection of PL: • Is there/what kind of teaching programming exist on secondary school level; • Students’ pre-knowledge and vision of their future jobs; • Requests of local industry; • Global-world trends in programming and influences of newest technologies.
AGENDA • Introduction • Characteristics of (first) Programming Languages • Different Language Paradigms and Approaches in Education • Changes in teaching the first programming course • Conclusion
Different Language Paradigms and Approaches in Education • Numerous PL, several programming paradigms emerged: imperative, object-oriented, functional, and logic. • At majority of universities first two are predominant. • A new trend of teaching first programming course: Component-oriented approach. • Some teachers like to teach the most popular PLs, criteria?: Most widely used? Most lines of codes? Most jobs? Most courses/projects? • Is popularity of a language a guarantee of its quality and suitability? • Expectedly there is no best language for all situations.
Different Language Paradigms and Approaches in Education • Our Model/Proposition for Teaching First Programming Language • Proposition and successful model? We gave up!!! • To teach students to think in algorithmic way and to make good programs. • To use a good educational (like Pascal, Delphi, Modula) language. • After that students have course on data structures and algorithms, ready to learn object-oriented style in Java. • By our experience there are several advantages of this approach: • In first 3 semesters students are learnt to think in logical, algorithmic way and to reach efficient solutions. • After that, by learning Java they further develop their programming skills and new techniques.
Different Language Paradigms and Approaches in Education • Last 20 years the study of CS at DMI • Lasts four years. • Several interconnected core courses in programming: • KEY/ESSENTIAL programming courses, use the same PL • Introduction to programming(first semester) - basic concepts of imperative programming, recurrence and recursion, and simple abstract data types (ADT). • Data structures and algorithms 1 and 2(second and third semester) - concepts of ADT, different data structures (lists, stacks, queues, trees, graphs), and various algorithms (sorting and searching, combinatorial and graph algorithms). • Operating systems 1(fifth semester) - basic principles of operating systems: processes, low-level programming, and interaction of programs with operating system. • Compiler construction (seventh semester) - principles and techniques of compiler construction (formal grammars, recursive descent, top-down, bottom-up analysis), structuring of big programs, type analysis and code generation are presented.
Different Language Paradigms and Approaches in Education • Need for changes • Modula-2 is out of date? Replacement? • Not used in industry and companies. • Need for modern programming tools and environments that support other PL. Suitable for teaching programming? • Everyone is expert: students, parents, friends, non-CS-professors,… • Opportunity to attract more high-quality students. • Marketing or real need?
AGENDA • Introduction • Characteristics of (first) Programming Languages • Different Language Paradigms and Approaches in Education • Changes in teaching the first programming course • Conclusion
Changes in Teaching the First Programming Course • We changed Modula-2 with Java in the introductory programming course. • We compared students’ performance • G2014 (Java generation), G2013 and G2012 (Modula-2 generations). • Only students that enrolled the course for the first time are taken into account. • The same teaching design/grading and assessment was applied: • 2+2+1 hours per week of lectures, theoretical and practical (lab) exercises. • In the lectures, the teacher explains essential programming concepts. • Within the theoretical exercises students are confronted with solved problems that illustrate concepts taught at the lectures. • During practical exercises students individually solve practical assignments.
Changes in Teaching the First Programming Course • Prerequisites to approach the final oral examination • A student has to achieve at least 30 (out of maximal 60) points at 4 practical (lab) tests • Students can also attend two theoretical tests that are held during the semester to achieve maximally 20 points. • The same teaching staff (one teacher, one assistant for theoretical exercises and two assistants for practical exercises) delivered the course to all three generations. • Only significant difference: G2014 had the course based on Java, while the other two had Modula-2.
Changes in Teaching the First Programming Course • Table 1. Basic facts about generations.
Changes in Teaching the First Programming Course • Table 2. Average scores at practical tests and theoretical tests, and average grade in the first exam period. MAX denotes the maximal score/grade.
Changes in Teaching the First Programming Course • Figure 1. The distribution of scores at practical and theoretical tests.
Changes in Teaching the First Programming Course • Figure 2. The distribution of grades in the first exam period.
Changes in Teaching the First Programming Course • To investigate whether the differences in the average scores and the distributions of scores between G2014 and other two generations are statistically significant we employ two non-parametric statistical tests: • Mann-Whitney U test and the two sample Kolmogorov-Smirnov test. • Both tests do not assume any particular distribution of scores (distribution-free methods).
Changes in Teaching the First Programming Course • The Mann-Whitney U (MWU) test checks the null hypothesis that the scores in one sample (G1) do not tend to be systematically larger or smaller (stohastically superior/inferior) than the scores in another sample (G2). • The two-sample Kolmogorov-Smirnov (KS) test checks the null hypothesis that two cumulative distributions (the probability that a randomly selected student achieved a score less than given) are not significantly different. The test relies on the maximal vertical distance between two distributions (D statistics).
Changes in Teaching the First Programming Course • Table 3. The results of statistical tests
Changes in Teaching the First Programming Course • This means: there are no statistically significant differences between the Java generation and the Modula-2 generations with respect to their performance in practical tests, theoretical tests and grade in the first exam period. • The differences in obtained probabilities of superiorities are in the range [-0.11, 0.11] which means that the students from the Java generation do not tend to have neither systematically higher nor systematically lower scores compared to the students from Modula-2 generations. • We can conclude that the switch to the Java programming language has not caused any dramatic change in relation to students’ performance in the introductory programming course.
AGENDA • Introduction • Characteristics of (first) Programming Languages • Different Language Paradigms and Approaches in Education • Changes in teaching the first programming course • Conclusion
Conclusion • Debates about choice of FPL are never-ending stories. • Pressures of our local CS policy makers were enormous. • Java has emerged as the language of the choice but there is no universal satisfaction with Java as a teaching language. • Results of our investigation suggest that the choice of the introductory programming language does not matter if we only take students’ performance as the criterion of suitability.
Conclusion • However, several important factors also need to be addressed in order to obtain a more comprehensive picture. • we assumed that different generations are of approximately same quality, which maybe not true • It is necessary to compare performance in other first-semester courses for Java and Modula-2 generations • previous mathematical background and programming experience is also an important factor, which means that students’ performance in high school also needs to be taken into account • Future work: compare the performance of the generations in other computer-related courses.