delivering the subject of "Introduction to Programming" during the first year of our Computer Science bachelor's degree. Our proposal intends to structure its ...
A Learning Knowledge Framework for a First Graduate Course in Programming Jose Manuel Burgos Ortíz#1, Javier Galve Francés#1, Julio García Martín#1 #
LSIIS Department - Technical University of Madrid (UPM) Facultad de Informática, Campus de Montegancedo, s/n 28660 Boadilla del Monte, Madrid – Spain 1 {jmburgos,jgalve,juliog}@fi.upm.es
Abstract— This paper describes a proposal for a new perspective on lecturing as it is being currently understood and practiced on delivering the subject of "Introduction to Programming" during the first year of our Computer Science bachelor's degree. Our proposal intends to structure its content into three main trunks: i) the subject matter itself, ii) the learning process and iii) the content delivery channel. For the subject matter we present the relevant programming knowledge organized according to a problem catalogue and to data categories in conjunction with a standard approach to problem solving. With regard to the learning process our proposal introduces a progress through content based on traversing the different cataloged problem types, on the learning objectives and on the different knowledge types according to Bloom's Taxonomy.
I. INTRODUCTION Based on previous experiences, veteran programmers rely on the reuse to solve new problems. Whenever a new problem is faced, experts will rarely plan a solution from the scratch. On the contrary, they will try to match the new problem with their knowledge on programming. This situation greatly contrasts with the attitude expected from novice programmers1, and their rather unfortunate solutions based on intuition. This gap between expert and non-expert programmers reflects the deficit of tailor-made strategies and the lack of a model to refer to. In the last two decades, some proposals have tried to transfer the chunks of knowledge handled by expert programmers into the CS programming curricula. This is the case of schemas [2], templates [3], plans [4] or patterns [2]. Although valuable, none of these contributions have succeeded to offer a concise, complete and non-ambiguous descriptive model to deal with programming knowledge. Despite years of research on programming instruction and specification languages, there has been relatively little work on formal techniques applied to organize the programming knowledge in a comprehensive model. An important objective to be considered by any attempt to adjust a subject to the European Space of Higher Education (ESHE) has to be that of making students become the main protagonists of their own learning process. With this in mind, we are currently developing a learning oriented "Introduction to Programming" subject course based both on practice and feasibility.
1
Similarly, in the case of students in an introductory course.
It is based on practice in the sense of that everything spins around the problem solving processes and that it uses the "Problem Based Learning" (PBL) methodology [14]. It is feasible in the sense of that it is currently being delivered within a university degree environment, as such is the UPM, by means of a "Blended Learning" model [10][11]. In this paper, we do provide a chronological view of the progress made so far. A. Background This proposal comes out as a result of us aiming to achieve a feasible course that while taking into account the stated "European Space for Higher Education" (ESHE) objectives (i.e. a common framework of readable and comparable degrees, undergraduate and postgraduate levels in all countries, ECTS-compatible credit systems also covering lifelong learning activities a European dimension in quality assurance, the elimination of remaining obstacles to the free mobility of students) it also feeds from our own experience as lecturers who have been teaching computer programming subjects for a number of years. It is a well known fact that over the last few years the number of students attending classes keeps going down. Students are clearly demotivated by traditional lecturing methods and that directly translates on them not turning up for class (in our case from +100 students enrolled per class at the beginning of the academic year it has dropped down to around 30 to 40 turning up for class nowadays). In our experience, one of the main causes behind demotivated students is their dislike to the classic scenario where the protagonist is the lecturer delivering a subject in a kind of monologue. B. Scope A first year degree course on the subject of "Programming Methodology" [13] is currently being delivered, as described in our proposal, at the Computer Science University of Madrid (UPM). The course is worth 15 credits and it has being divided in two consecutive modules: functional programming and imperative programming, each module over a period of four months.Only the first module and the programming language "Ada-95" - later used throughout the year- is within the scope of this paper. C. Course Guidelines Now, it is described the main guidelines driving the proposal:
Learning Strategy Layer
o Learning Knowledge Layer
o Interaction Layer
Interaction Layer
Canal C Comm. Channel (Moodle) (Moo
Comm.Channel (WebCT)
Fig. 1 A Conceptual Learning Architecture based on MVC
• This course is about First-Order functional programming where functions only operate over data. If presented out of this context the course could be named "ADA Functional Programming". TABLE I A PROBLEM TAXONOMY
Category
Problem Specification The result is a simple expression or is obtained from a previously solved problem or is a composition of them.
Case Analysis
The result takes different values depending on input data.
Recursive Traversal
Direct Solution
Accumulation
The problem consists on accumulating the result of applying an expression to each item of a collection.
Search
The problem consists on checking if an item of the collection match a condition.
Extremal
Calculate the maximum/minimum value of an expression in a collection of items.
Construction
Construct a new collection as the result of applying an expression to each item of a collection C or a filtered subcollection of C.
• This course is defined upon a Conceptual Learning Architecture (CLA)[1] where contents, activities and delivery channels behave following the MVC Software engineering design pattern [16](see figure 1). o
The Knowledge part (Model) is responsible for the content organization based on a conceptual graph representation of knowledge based on taxonomies [5][6]. Learning is modelled as a step-by-step process in which objectives must be incrementally achieved. At the beginning, a
conceptual graph (initial state) describing the proposed objectives of the course are fixed (initial stage). The learning process evolves from one stage to the next by changing the state of the objectives graph and fixing the new ones. The Interaction layer (View) is responsible for the presentation logic in terms of units of study. Besides it is responsible for the communication interface to/from the actors. Finally, the Strategy layer (Control) connects the Knowledge and Interaction, receives the actors requests and reacts the corresponding behaviors, provoking the evolution of the learning process (objectives graph).
• Course design is the result of keeping language syntax to a minimum in order to focus attention on problem solving processes. The sub-set of ADA syntax that is used on the course is restricted to the following premises of the functional programming paradigm: functions are to be first order having transparent referencing only, no variables, no loops, no assignment, no sentences sequence (only used in testing), no procedures (except Put for testing purposes) and no arrays. • On the other hand only structural recursion is used, meaning that data is defined by induction and recursion is lead by data. That is, only linear recursion is allowed (no use of divide and conquer or backtracking). II. PROGRAMMING KOWLEDGE: A PROGRAM CATALOGUE The principle of shifting focus from language syntax to programming language praxis has been the key used to organize the programming knowledge [1][5][6][7]. To that purpose we gathered the problems that are typically solved on a first programming degree year and from those have built a problem catalogue (see table 1). From the problem catalogue we derived relevant theme blocks (see table 2). TABLE II THEME BLOCKS IN PROGRAMMING METHODOLOGY.
Theme Block Contents Introduction Introduction to computer programming using Ada. Development process in the program construction. Basic elements of Ada programming. I/O operations. Standard Ada packages. An initial generic program format in Ada Programming. Elementary Mathematical domains. The predefined Data datatypes in Ada: numerics, logical y character. Explicitly defined domains. The enumeration datatype sin Ada. Expressions. Direct Problems described as Functions. Functions in Solution Ada. Elementary Problems. Problem Specification. Case Analysis Conditional statements in Ada. Problems Case Analysis Problems.
Heterogeneous Structured Data Homogeneous Structured Data Traversal Domains
Cartesian Product. Tuples. Records in Ada. Sequential data collections. Structural definitions of data collections (interval, digits & lists). Traversal domains on collections. Recursion. A Problem Taxonomy. Linear Recursion Schemes. Design Strategies based on Linear Recursion. Pitfalls using Traversal Domains.
From a structured view of the mentioned theme blocks we established a set of precedence relationships (see table 3). TABLE III PRECEDENCE RELATIONSHIPS AMONG THEME BLOCKS
Scope Data Actions Mixed
Precedence Elementary Data → Heterogeneous Structured Data → Homogeneos Structured Data Direct Solution → Case Analysis → Traversal Domains Elementary Data → Direct Solution Traversal → Homogeneous Structured Data
Together with this driven by praxis approach we also stuck to another principle when designing the course and this was that the same problem solving process is always to be followed by students as a guide to designing a program. The steps in this process are as follows:
different learning habits and levels of learning pace. Additionally it should provide several accesses. A. Learning Unit The course is made up of fundamental blocks named Learning Units (LUs). A LU is a unit of content holding internal coherence and that can be assembled with the other ones. To this end, each LU must hold a complete theme block or a part of it. A LU is a temporal working unit. A LU can be seen as a trunk where a student must hook all other activities within a given unit of time. To ease scheduling of sessions we take one week as our unit of time. Given a LU, the student effort taken to complete it can be directly measured into hours and so the LU gives us the student effort pace measured in hours per week. B. Structure within a Learning Unit A Learning Unit is made up of the following elements: • • •
Name: name given to the LU Objectives: learning goals of the LU Pre-requisites: studying this LU requires prior knowledge of these ones Activity plan: Activities making up this LU
•
Table 4 provides a complete LU example. TABLE IV EXAMPLE OF LEARNING UNIT
1) Problem analysis and data description. 2) Informal specification of the problem. 3) Samples of behavior and application. 4) Problem classification (solution scheme).
Fields Name PreRequisites Objectives
5) Solution template completion (ADA implementation) 6) Testing Throughout the course the different categories found in the problem catalogue are visited and so are data categories where appropriate. Each problem category provides a corresponding solution template in the shape of a program skeleton which becomes a step in the methodology. This way a new program comes out by identifying which category, within the problem catalogue, a new problem belongs to and by adjusting the category template solution as required. This methodology for developing programs is implicit in all course exercises and as the course moves on emphasis is put on each different developing stage. III. THE LEARNING PROCESS: LEARNING UNIT A fundamental principle to be observed was that of achieving a learning oriented course so that each student could become the protagonist of its own learning process. To this end, it must be possible to tailor the course in order to suit
Activity Plan
Learning Unit 2 (LU#2) Elementary Data Management LU#1
Describe the elementary data types and related operations (Knowledge) Identify the names of the Ada packages in which I/O operations for the elementary Ada datatypes are defined. (Knowledge) Describe the attribute operators for the elementary Ada datatypes. (Knowledge) Foresee the possible value of evaluating an expression for any elementary Ada datatypes. (Comprehension) Declare constants in Ada from an informal declaration of data (Aplicación) Activity#1 ... Activity#5.
The activity plan for any given LU is made up of the 5 activities as detailed in table 5. TABLE V ACTIVITY PLAN FOR A LEARNING UNIT
Nº 1
Activity Read the theory. Read complete examples. View videos. Read the first part of the activity with questions,
Dur. 2h
exercises and proposed problems. Fullfil a Moodle questionary with 5 questions and/or exercises. This questionary is automatically evaluated. (activity#1, questionary) The teacher solves and clarifies the most important doubts and mistakes. Proposal of guided problems. Solve these problems and upload them via Moodle. (activity#2, delivered file) Proposal of problems as a homework. Solve the problems and upload them vie Moodle (delivery date until sunday in the currently week). (activity#3, delivered file) The teacher solves and clarifies the most important doubts and mistakes given in activity#3). Proposal of non-guided problems. Solve the problems and upload them via Moodle (activity#4, delivered file). Evaluate the Learning Unit. Evaluate request deliveries (activity#4 and activiy#3) (activity#5) TOTAL
2
3
4
5
LU 1 LU 2
Introduction Introduction to the Ada Language and the AdaGide (Integrated Development Environment). Elementary Data management Direct Solution Problems Solving Case Analysis Problems Solving Enumerated Data Problems Solving Tuple Data Problem Solving Recursive Traversal within intervals of numbers and digits Recursive Traversal within Sequential Collections of Elementary Data. Recursive Traversal within Sequential Collections of Structured Data. Recusive Strategies Group Project
2h
2h
LU 9 LU 10
2h
1h 9h
TABLE VI ASIGNMENT LEVELS OF COMPENTECE TO AN ACTIVITY.
5
Learning Unit (Description)
LU 3 LU 4 LU 5 LU 6 LU 7 LU 8
Each activity in the activity plan gives its own emphasis to one or many levels of competence.
Activity 1 2 3 4
LU
Competence Levels (Bloom) Knowledge Knowledge, Comprehension Comprehension, Aplication Comprehension, Aplication Comprehension, Aplication (Want to do) Traversal Objectives (How to evaluate other partner’s work., etc...)
C. The Design of a Learning Unit For each LU we have taken the following steps:
LU 11 LU 12
IV. THE COMMUNICATION CHANNEL: B-LEARNING AND MOODLE As it is known, Moodle is one of the learning platforms having greater success at the present time [12]. Its theoretical base is that of a pedagogical model of social constructionist. Its flexibility and ease of use at the time of designing different types of courses can suit different requirements from teachers according to previously fixed goals. Although the platform is based on the above mentioned learning paradigm, it does not enforce this approach nor does it limit other possibilities. Therefore, courses can be established according to different approaches by making use of the various resources and tools that are available: 1.
• • • • 2.
• To state the training objectives • To classify the training objectives in levels of competence according to Bloom's Taxonomy. • To design root exercises that cover the objectives • To design the activity planning and sequence the activities into a Knowledge Comprehension Application order. • To design the signature and evaluation form.
Web pages (HTML) Text pages (sin formato) Web links Another kind of files can be referenced by an URL (images, audio, video, etc...)
Interactive assessment approach. It is based on the interaction and assessment of students by means of Moodle activities: • • • • •
3. D. Course Design The design for the whole course is shown in table 7.
Traditional approach. A place “to hang” contents and resources, based on static contents in Moodle:
Task (to deliver a work) Quizzes (preguntas de diversos tipos) Assestments Questionary (encuesta educativa preestablecida) Lesson (interactive content)
Social approach. A “learning in common” place, that puts the emphasis in cooperative tasks by means of the following Moodle activities: •
Chat (on realtime)
• • • •
Forums Glossary (a common vocabulary) Wiki (a common web construction) Workshop (promote student-student evaluation and self-evaluation)
Nevertheless, Moodle’s great contribution to the implementation of learning models does not reside in its variety or the individual merit of each pedagogical resource, but in its synergistic value when combined. In fact, as much from the coarse grain perspective (the learning unit) as from the fine grain one (a concrete activity of the unit), it has been required to combine several Moodle resources that interact following a logic of learning in each stage. V. CONCLUSIONS In this paper we present a proposal on how to organize a first year degree course in programming according to the Bologna guidelines. Main design goals for this course have been: to take student effort into account, to promote active participation and the self-learning abilities of students, to keep the learning process as an open path where individuals can find a learning path suited to their own capabilities and interests. To make those goals a reality, we have searched for a learning architecture where is possible to define programming knowledge in accordance to the learning and training goals typical of a first year degree course in programming. We have also designed the content and how to sequence it within the whole and have implemented all of the above as a flexible working model to be carried out both in the lab and the virtual classroom. In the near future we intend to present the course we describe in here but according to formal model of knowledge [5][6]. In this way we want to develop a formal frame based on conceptual graphs (known as OCA-GRAPH 2 [1]) and capable of formally describe the learning material building process described in LDOM-LD [7][9]. This means, on the one hand to offer a formal model to describe learning objects (Learning Conceptual Objects) and on the other hand to allow for the description of formal learning processes (OCA-P). Additionally we propose a mark-up language based on rules (OCA-L) to ease the definition of conceptual learning objects and processes. This language uses the formalism of conceptual graphs as its basic elements. Finally, as to validate this formal frame in a more practical manner, we describe software architecture that is capable of representing learning conceptual objects and learning processes by means of a predefined execution kernel based on conceptual graphs and basic instructions upon them.
ACKNOWLEDGMENT This work has been partially supported by the UPM projects: • •
Many thanks to our colleagues at Technical University of Madrid: Francisco Gisbert Cantó and Pilar Herrero for reading our work and offering valuable advice. Finally, we would like to thank Nuria Nieves Granados for her many reviews of the paper and valuable comments. REFERENCES [1] [2]
[3] [4] [5] [6]
[7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
2
OCA (in spanish, Learning Conceptual Object)
“ADAPTTA : Adaptación de un Curso de Introducción a la Programación a las nuevas Tecnologías y Teorías de Aprendizaje” (IE071005116-2008), and “Implantación de Grupo Piloto en primer curso de Ingeniería Informática” (IE071005122-2008).
Burgos, J.M. OCA-GRAPH. 2006. A Formal Framework for the Design and Emulation of Learning Models. Unpublished PhD, LSIIS. Facultad de Informática (UPM). Burgos J.M., Galve J. and García J.. 2000, From Problems to Programs: A Pattern Language to Go from Problem Requirements to Solution Schemas in Elementary Programming. Proceedings of the EuroPLoP’2000. Irse, Germany. Clancy M.J. , Linn M.C., 1992, The Case for Case Studies of Programming Problems, Communications of the ACM, March 1992, 3, 3, pp. 121-132. Soloway E., 1985, From Problems to Programs Via Plans: The Content and Structure of Knowledge for Introductory Lisp Programming. Journal of Educational Comp. Research, 1(2), 1985, 157-172. Burgos, J.M., Galve, J., García, J. y Sutil, M. (2001b). Knowledge Organization by Design Patterns. Actas del IV Congreso del Capítulo Español de ISKO, ISKO’2001. Alcalá de Henares (Madrid). Burgos, J.M., Galve, J., García, J. y Sutil, M. (2002a). A Conceptual Model for Learning Organization. Proceedings of the VIII Iberoamerican Conference on Artificial Intelligence IBERAMIA’2002, Sevilla. Sowa, J.F., 2000. Knowledge Representation: Logical, Philosophical, and Computational Foundations. Brooks/Cole Eds, 2000. LOM, 2002. LOM 1.0 specifications [On-line]. Available: http://ltsc.ieee.org/ IEEE-LTSC. 2002.. Learning technology standards committee website [On-line]. Available: http://ltsc.ieee.org/ Osguthorpe, T. R., & Graham, R. C., (2003). Blended learning environments. Quarterly Review of Distance Education,4(3), 227-233. Thorne, K. ,2003. Blended learning: How to integrate online & traditional learning. London: Kogan Page Eds. JOIN, 2005. Evaluation of LMS platforms :http://www.ossite.org/join/sp/lms PM, 2007-2008. Programming Methodolog, Computer Science University of Madrid (UPM) Available: http://web3.fi.um.es/AulaVirtual Savery, J.R. and Duffy, T.M, “Problem Based Learning: An instructional model and its constructivist framework”, Educational Technology 35, 1995, pp. 31-38. Bloom B. S. (1956). Taxonomy of Educational Objectives, Handbook I: The Cognitive Domain. New York: David McKay Co Inc. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns. Elements of reusable object-oriented software. AddisonWesley, Reading, MA, 1995. Thorne, K. ,2003. Blended learning: How to integrate online & traditional learning. London: Kogan Page Eds.