Educational Influences of Choice of First Programming Language

  • Slides: 26
Download presentation
Educational Influences of Choice of First Programming Language Mirjana Ivanović, Zoran Budimac, Đura Paunić

Educational Influences of Choice of First Programming Language Mirjana Ivanović, Zoran Budimac, Đura Paunić Department of Mathematics and Informatics Faculty of Sciences, University of Novi Sad, Serbia

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and Approaches in Education l Usinge one PL for Core Programming Courses l Conclusion 2

Introduction l Is problem of choice of the first programming language a little bit

Introduction l Is problem of choice of the first programming language a little bit out of date? l Especially for teachers who are not from PL community seems clear which language to choose. l It is not easy decision, burden with a lot of dilemmas. l Is the choice of the FPL serious for later development of a programmer? 3

Introduction l Important to distinguish key features of a PL in the context of

Introduction l Important to distinguish key features of a PL in the context of education. l Practical difficulties in separating the educational issues of programming from the training issues of coding. l DILEMMA: are PLs important for students in all disciplines of computer science? l Disaster - introduction of objects before the basic programming constructs. 4

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and Approaches in Education l Usinge one PL for Core Programming Courses l Conclusion 5

Characteristics of (first) Programming Languages l In Companies a lot of factors influence selection/usage

Characteristics of (first) Programming Languages l In Companies a lot of factors influence selection/usage of appropriate PLs and tools: Computer capabilities, ¢ Domains of applications, ¢ Programming and Implementation methods, ¢ Standardization. ¢ l ICT industry influences educational processes: 1) Rapidly changing decisions which PLs and tools to use. ¢ 2) Decision whether to use already available components and patterns? ¢ 6

Characteristics of (first) Programming Languages l Students have to be prepared for the real

Characteristics of (first) Programming Languages l Students have to be prepared for the real world of very complex software, stay around for a long time. l Programmers must be prepared to write (reusable) programs of hundreds of thousands of lines. l 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. ¢ 7

Characteristics of (first) Programming Languages l List of criteria and attributes for choosing a

Characteristics of (first) Programming Languages l List of criteria and attributes for choosing a first good PL: ¢ ¢ ¢ ¢ ¢ Clarity, simplicity, and unity; Orthogonality; Naturalness for the application; Support for abstraction; Ease of program verification; Characteristics of programming environment; Portability of programs; Cost of use; Reliability; Maintainability; Efficiency. 8

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and Approaches in Education l Usinge one PL for Core Programming Courses l Conclusion 9

Different Language Paradigms and Approaches in Education l Numerous PL, several programming paradigms emerged:

Different Language Paradigms and Approaches in Education l Numerous PL, several programming paradigms emerged: imperative, object-oriented, functional, and logic. l At majority of universities first two are predominant. l A new trend of teaching first programming course: Component- oriented approach. l Some teachers like to teach the most popular PLs, criteria? : Most widely used? Most lines of codes? Most jobs? Most courses/projects? l Is popularity of a language a guarantee of its quality and suitability? l Expectedly there is no best language for all situations. 10

Different Language Paradigms and Approaches in Education l Possible Solution? : Teaching Programming Using

Different Language Paradigms and Approaches in Education l Possible Solution? : Teaching Programming Using Pseudo-Language l Essential directions in teaching programming, teach students how to solve problems without focusing on coding in particular PL. l Idea is to develop their algorithmic and critical thinking and concentrate on different techniques for problem solving. l Is it meaningful to go back to the roots and concentrate in introductory programming courses on: essence of problem solving, ¢ algorithmic thinking ¢ core principles. ¢ 11

Different Language Paradigms and Approaches in Education l Our Model/Proposition for Teaching First Programming

Different Language Paradigms and Approaches in Education l Our Model/Proposition for Teaching First Programming Language l Proposition and successful model? We gave up!!! l To teach students to think in algorithmic way and to make good programs. l To use a good educational (like Pascal, Delphi, Modula) language. l After that students have course on data structures and algorithms, ready to learn object-oriented style in Java. l 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. ¢ 12

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and Approaches in Education l Usinge one PL for Core Programming Courses l Conclusion 13

Using one PL for Core Programming Courses l Modula-2 has been teaching up to

Using one PL for Core Programming Courses l Modula-2 has been teaching up to now at our Department as it satisfies most of the desirable premises: ¢ Most of the students have pre-knowledge of Pascal so Modula -2 is convenient for them. ¢ It offers clean and well-structured features and elements. ¢ It is satisfactory language for teaching other classical methodologies, techniques and algorithms. ¢ After finishing obligatory studies, students can easily switch to object-oriented methodology. 14

Using one PL for Core Programming Courses l Computer study in Serbia, DMI, began

Using one PL for Core Programming Courses l Computer study in Serbia, DMI, began about 35 years ago l Almost all CS courses ¢ Began with teaching some particular programming language. ¢ Smaller amount of time was devoted to teaching main subject of concrete course. ¢ Waste of time? . 15

Using one PL for Core Programming Courses l Last 20 years the study of

Using one PL for Core Programming Courses l Last 20 years the study of CS at DMI Lasts four years. ¢ Several interconnected core courses in programming: ¢ l 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. 16

Using one PL for Core Programming Courses l Main intention: ¢ Emphasize on ADS.

Using one PL for Core Programming Courses l Main intention: ¢ Emphasize on ADS. ¢ Not to insist on particular realization in specific programming language or to use different languages in different courses. l Avoid teaching many languages or various frameworks/environments: Choose one good educational language, easy to teach , good for development of correct programming style. ¢ Language should be rich enough to support modern concepts of software development. ¢ First programming language serves as a reference for learning additional programming languages. ¢ 17

Using one PL for Core Programming Courses l Modula-2 was ¢ Very good language

Using one PL for Core Programming Courses l Modula-2 was ¢ Very good language for educational purposes (supports many concepts appreciated in software engineering). ¢ Provides an adequate number of facilities and it is suitable to be thought as one "major“ PL throughout the whole computer science education: ¢ Allows to teachers to put attention to data structures, algorithms, and principles rather than to teach new programming language. ¢ It is expected (is proven in practice) that students will easily learn other PL, once they know the essence of programming techniques. l After four-year study the students are well equipped to cope easily with other industrial and business languages as C, C++, COBOL, Java or fourth generation languages 18

Using one PL for Core programming Courses l Need for changes? l Advantages of

Using one PL for Core programming Courses l Need for changes? l Advantages of that concept ¢ Structured programming concepts have strongly affected programming language. ¢ Modularity, encapsulation of data and behavior, information hiding are concepts that influenced language development. ¢ Postulate strict, static typing of every variable and function, significant to teach students to write safe, robust, reusable software. ¢ Strongly typed language - most possible errors in programs are eliminated only following these requirements. ¢ Modula-2 enable to create programs which make testing and debugging easier. Students are well experienced and easily can be capable to use other different programming language tools, environments, frameworks and so on. 19

Using one PL for Core programming Courses l Need for changes ¢ Modula-2 is

Using one PL for Core programming Courses l 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-CSprofessors, … ¢ Opportunity to attract more high-quality students. ¢ Marketing or real need? 20

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and

AGENDA l Introduction l Characteristics of (first) Programming Languages l Different Language Paradigms and Approaches in Education l Usinge one PL for Core Programming Courses l Conclusion 21

Conclusion l At the beginning students are not satisfied with choice of first PL

Conclusion l At the beginning students are not satisfied with choice of first PL – ¢ prefer Java or C-like languages (request of local industry). ¢ l After the second year (OO programming with Java) they appreciate presented model: With educational language they adopted good style of programming ¢ Knowledgeable and skilled to cope with Java complexity and instability. ¢ l A lot of our ex-students working in software companies all over the world agree that proposed model was very productive. 22

Conclusion l Debates about choice of FPL are never-ending stories. l Pressures of our

Conclusion l Debates about choice of FPL are never-ending stories. l Pressures of our local CS policy makers were enormous. l Java has emerged as the language of the choice (C like languages were candidates). l Nevertheless there is no universal satisfaction with Java as a teaching language. 23

Conclusion l The rate at which computer technology and programming languages changes with time

Conclusion l The rate at which computer technology and programming languages changes with time now is alarmingly higher than was seen in the past. l Rapid changes in computer technology and PLs have to be kept in mind, by continuously re-evaluating language choice issues. l Computer industry re-tools more frequently and programmers will cover many more languages in their lifetime than ever before. l This implies that while learning practical programming skills in a particular PL, it is even more important for the novice programmer to develop a sound theoretical understanding of programming in general … to prepare for later learning future languages and environments. l Changing education patterns means that students needs be prepared for lifelong learning, to meet the challenges of the future. 24

Conclusion l Choice of the FPL for CS education is difficult and responsible task

Conclusion l Choice of the FPL for CS education is difficult and responsible task (a lot of programming paradigms, compete for widely used language in industry and real world applications). l Education has to follow these trends, but also has to satisfy other (methodological, didactical, . . . ) parameters. l Once students learn good programming style and master programming techniques they can much easier learn and use industry-forced languages: C, C++, COBOL, Java, … l We are heavily exposed to constant pressure of industrial and labor requirements to have employees tailored to their current needs and business (oriented to contemporary technologies and programming environments, employees could immediately fit in their business and produce software/money). l Unfortunately it seems that nobody takes care about fundamental and essential knowledge and people capable of quickly switch to new technologies and trends. 25

Thank You 26

Thank You 26