Developing a Distance Education Programming Skills course … 05... · Introduction The courseware...

39
Introduction The courseware OS community resources Summary Developing a Distance Education Programming Skills course for Geo-information sciences and Earth observation students Ivana Iv´ anov´ a, Otto Huisman, Rolf de By, Martin Rutzinger, Wim Bakker, Wim Feringa Faculty of Geo-Information and Earth Observation of the University of Twente 2010 ISPRS Commision VI Sympozium page 1 of 24

Transcript of Developing a Distance Education Programming Skills course … 05... · Introduction The courseware...

IntroductionThe coursewareOS community resourcesSummary

Developing a Distance Education Programming Skillscourse for Geo-information sciences and Earth observation

students

Ivana Ivanova, Otto Huisman, Rolf de By, Martin Rutzinger, WimBakker, Wim Feringa

Faculty of Geo-Information and Earth Observation of the University of Twente

2010

ISPRS Commision VI Sympozium page 1 of 24

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Typical geo-information problem

An example of a free natural language description of a locality, like thefollowing:

Paciencia: A village or farm in Sao Paulo state, visited by Natterer,24-25 Mar. 1824: Natterer’s itinerary indicates locality inne Sao Paulo, north of Casa Branca [2146/4705(USBGN)].

How to obtain as precise as possible the lat/long of this locality?

A possible strategy:1 natural language parsing,2 use of gazetteer service for ‘Casa Branca’,3 use of web feature service for Brazilian states,4 a) use of gazetteer service for Paciencia, or b) use of a freeform

internet searhc engine for it, and5 application of an advanced spatial predicate to combine the various

obtained inputs to list Paciencia candidate localities.

ISPRS Commision VI Sympozium page 2 of 24 sub 1 of 3

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Typical geo-information problem

An example of a free natural language description of a locality, like thefollowing:

Paciencia: A village or farm in Sao Paulo state, visited by Natterer,24-25 Mar. 1824: Natterer’s itinerary indicates locality inne Sao Paulo, north of Casa Branca [2146/4705(USBGN)].

How to obtain as precise as possible the lat/long of this locality?

A possible strategy:1 natural language parsing,2 use of gazetteer service for ‘Casa Branca’,3 use of web feature service for Brazilian states,4 a) use of gazetteer service for Paciencia, or b) use of a freeform

internet searhc engine for it, and5 application of an advanced spatial predicate to combine the various

obtained inputs to list Paciencia candidate localities.

ISPRS Commision VI Sympozium page 2 of 24 sub 2 of 3

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Typical geo-information problem

An example of a free natural language description of a locality, like thefollowing:

Paciencia: A village or farm in Sao Paulo state, visited by Natterer,24-25 Mar. 1824: Natterer’s itinerary indicates locality inne Sao Paulo, north of Casa Branca [2146/4705(USBGN)].

How to obtain as precise as possible the lat/long of this locality?

A possible strategy:1 natural language parsing,2 use of gazetteer service for ‘Casa Branca’,3 use of web feature service for Brazilian states,4 a) use of gazetteer service for Paciencia, or b) use of a freeform

internet searhc engine for it, and5 application of an advanced spatial predicate to combine the various

obtained inputs to list Paciencia candidate localities.ISPRS Commision VI Sympozium page 2 of 24 sub 3 of 3

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Programming and Geo-Information Science

Solution to many geoscientific problems require high-level analyticalthinking, with the application of algorithmic and computational principles.

The standard application fields where programming skills are used are:(spatial) databasesspatial analysisimage processing(geo)-web services.

ISPRS Commision VI Sympozium page 3 of 24

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Programming and Geo-Information Science

Programming skills at ITC is embedded to modules that contribute toknowledge and skills:

1 in fundamentals of geographical information systems (GIS) and remotesensing (RS) at ITC also nicked as: Core GIS & RS, and

2 in advanced topics of geo-information science and Earth observation.

Programming skills at ITC is a special module spread through variousmodules (few days in each) in two parts.

Programming skills are essential to all study and research programs atITC!

The challenge of teaching programming skills (not only at ITC!) is:to teach students how to approach problem-solving in a structuredlogical way, andto help students to develop computational solutions for givenproblems.

ISPRS Commision VI Sympozium page 4 of 24 sub 1 of 3

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Programming and Geo-Information Science

Programming skills at ITC is embedded to modules that contribute toknowledge and skills:

1 in fundamentals of geographical information systems (GIS) and remotesensing (RS) at ITC also nicked as: Core GIS & RS, and

2 in advanced topics of geo-information science and Earth observation.

Programming skills at ITC is a special module spread through variousmodules (few days in each) in two parts.

Programming skills are essential to all study and research programs atITC!

The challenge of teaching programming skills (not only at ITC!) is:to teach students how to approach problem-solving in a structuredlogical way, andto help students to develop computational solutions for givenproblems.

ISPRS Commision VI Sympozium page 4 of 24 sub 2 of 3

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Programming and Geo-Information Science

Programming skills at ITC is embedded to modules that contribute toknowledge and skills:

1 in fundamentals of geographical information systems (GIS) and remotesensing (RS) at ITC also nicked as: Core GIS & RS, and

2 in advanced topics of geo-information science and Earth observation.

Programming skills at ITC is a special module spread through variousmodules (few days in each) in two parts.

Programming skills are essential to all study and research programs atITC!

The challenge of teaching programming skills (not only at ITC!) is:to teach students how to approach problem-solving in a structuredlogical way, andto help students to develop computational solutions for givenproblems.

ISPRS Commision VI Sympozium page 4 of 24 sub 3 of 3

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

The programming language

Python is a general purpose, open-source computer programminglanguage.

Python is easy-to-learn no-frills syntax and insightful commandstructure.

Python is an extremely powerful language with many extensionsmodules available.

Python is widely used in geo-software projects (e.g.PostgreSQL+PostGIS, ArcGIS & ERDAS, QuantumGIS, GeoDjango).

http://python.org

ISPRS Commision VI Sympozium page 5 of 24

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Teaching programming skills on distance

Distance education:comprises learning episodes, during which educator and the educated(student) are typically not at the same location.

Teaching programming skills requires:in case of a group of students with various background, an approachbased on common knowledge (i.e. simple mathematics and geometry).

Teaching programming skills on distance requires:compensation of the missing face-to-face contact hours withimplementation of:

animated content, and/orinteractive learning tools.

ISPRS Commision VI Sympozium page 6 of 24

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Rationale for DEPS

Distance education on Programming skills (DEPS):covers the same topics as in the Core GIS & RS.

is not a translation, nor a transition, but a re-designed face-to-facePS!

offers a ‘stand-alone’ introduction to Python with the focus on thedomain of GIS & RS.

is self-instructive, i.e. offers to the student the possibility to study ather/his own pace, in her/his own time, and at her/his own location.

ISPRS Commision VI Sympozium page 7 of 24 sub 1 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Rationale for DEPS

Distance education on Programming skills (DEPS):covers the same topics as in the Core GIS & RS.

is not a translation, nor a transition, but a re-designed face-to-facePS!

offers a ‘stand-alone’ introduction to Python with the focus on thedomain of GIS & RS.

is self-instructive, i.e. offers to the student the possibility to study ather/his own pace, in her/his own time, and at her/his own location.

ISPRS Commision VI Sympozium page 7 of 24 sub 2 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Rationale for DEPS

Distance education on Programming skills (DEPS):covers the same topics as in the Core GIS & RS.

is not a translation, nor a transition, but a re-designed face-to-facePS!

offers a ‘stand-alone’ introduction to Python with the focus on thedomain of GIS & RS.

is self-instructive, i.e. offers to the student the possibility to study ather/his own pace, in her/his own time, and at her/his own location.

ISPRS Commision VI Sympozium page 7 of 24 sub 3 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Rationale for DEPS

Distance education on Programming skills (DEPS):covers the same topics as in the Core GIS & RS.

is not a translation, nor a transition, but a re-designed face-to-facePS!

offers a ‘stand-alone’ introduction to Python with the focus on thedomain of GIS & RS.

is self-instructive, i.e. offers to the student the possibility to study ather/his own pace, in her/his own time, and at her/his own location.

ISPRS Commision VI Sympozium page 7 of 24 sub 4 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Why and how to teach problem solving skills?

Many geo-computational problems are common and well-known andhave found solutions built into off-the-shelf systems.

‘Knowing how to program’ is about more than just specific syntax of acomputer language it involves:

computational thinking, andan ability to conceptualize solutions by applying abstractions.

Computers and computer languages are only tools to turn theseabstractions into reality.

With DEPS, we want to equip our students with skills to tackle alsoless common problems that are often more complex and requirehigh-level analytical thinking and problem solving skills.

Our strategy is using real life examples (start with easy end withcomplex) and follow this didactical approach:

1 abstract solution to the problem in the form of the list of steps, and then2 coding and testing.

ISPRS Commision VI Sympozium page 8 of 24 sub 1 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Why and how to teach problem solving skills?

Many geo-computational problems are common and well-known andhave found solutions built into off-the-shelf systems.

‘Knowing how to program’ is about more than just specific syntax of acomputer language it involves:

computational thinking, andan ability to conceptualize solutions by applying abstractions.

Computers and computer languages are only tools to turn theseabstractions into reality.

With DEPS, we want to equip our students with skills to tackle alsoless common problems that are often more complex and requirehigh-level analytical thinking and problem solving skills.

Our strategy is using real life examples (start with easy end withcomplex) and follow this didactical approach:

1 abstract solution to the problem in the form of the list of steps, and then2 coding and testing.

ISPRS Commision VI Sympozium page 8 of 24 sub 2 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Why and how to teach problem solving skills?

Many geo-computational problems are common and well-known andhave found solutions built into off-the-shelf systems.

‘Knowing how to program’ is about more than just specific syntax of acomputer language it involves:

computational thinking, andan ability to conceptualize solutions by applying abstractions.

Computers and computer languages are only tools to turn theseabstractions into reality.

With DEPS, we want to equip our students with skills to tackle alsoless common problems that are often more complex and requirehigh-level analytical thinking and problem solving skills.

Our strategy is using real life examples (start with easy end withcomplex) and follow this didactical approach:

1 abstract solution to the problem in the form of the list of steps, and then2 coding and testing.

ISPRS Commision VI Sympozium page 8 of 24 sub 3 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Why and how to teach problem solving skills?

Many geo-computational problems are common and well-known andhave found solutions built into off-the-shelf systems.

‘Knowing how to program’ is about more than just specific syntax of acomputer language it involves:

computational thinking, andan ability to conceptualize solutions by applying abstractions.

Computers and computer languages are only tools to turn theseabstractions into reality.

With DEPS, we want to equip our students with skills to tackle alsoless common problems that are often more complex and requirehigh-level analytical thinking and problem solving skills.

Our strategy is using real life examples (start with easy end withcomplex) and follow this didactical approach:

1 abstract solution to the problem in the form of the list of steps, and then2 coding and testing.

ISPRS Commision VI Sympozium page 8 of 24 sub 4 of 4

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Didactical principles applied in DEPS

Based on existing DE course Distance education: Principles ofdatabases (developed in 2008)

The ICARE system supported by principles of instructional theory,which uses various taxonomies:

Gagne’s Nine events of instructionsMerill’s Component display theoryBloom’s Taxonomy of higher order learning

Introduce Introduction to (Unit, Lesson, Lecture, Exercises)Connect Lecture, DemonstrationApply Demonstration, ExerciseReflect Self-test, Discussion boardExtend e-Book, Additional links

Table: Application of ICARE system

ISPRS Commision VI Sympozium page 9 of 24 sub 1 of 2

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

Didactical principles applied in DEPS

Based on existing DE course Distance education: Principles ofdatabases (developed in 2008)

The ICARE system supported by principles of instructional theory,which uses various taxonomies:

Gagne’s Nine events of instructionsMerill’s Component display theoryBloom’s Taxonomy of higher order learning

Introduce Introduction to (Unit, Lesson, Lecture, Exercises)Connect Lecture, DemonstrationApply Demonstration, ExerciseReflect Self-test, Discussion boardExtend e-Book, Additional links

Table: Application of ICARE system

ISPRS Commision VI Sympozium page 9 of 24 sub 2 of 2

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

DEPS didactical structure

ISPRS Commision VI Sympozium page 10 of 24

IntroductionThe coursewareOS community resourcesSummary

Programming skills at ITCDistance education: Programming skills

Teaching problem solving skillsDidactical principles applied in DEPSCourse content

DEPS course content

Unit 1:Lesson 1.1 Introduction to programmingLesson 1.2 Variables, expressions andstatementsLesson 1.3 FunctionsLesson 1.4 Conditionals and recursions

Unit 2:Lesson 2.1 Fruitful functionsLesson 2.2 IterationsLesson 2.3 StringsLesson 2.4 Lists and tuples

Unit 3:Lesson 3.1 DictionariesLesson 3.2 Files (I/O)Lesson 3.3 Classes and objectsLesson 3.4 Case study spatial processing

ISPRS Commision VI Sympozium page 11 of 24

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

DEPS course components

ISPRS Commision VI Sympozium page 12 of 24

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Lecture as the ‘knowledge glue’

The content of a lecture (.pdf) acts as ‘knowledge glue’

parts sections sub-sections

glossary,on-rollover

demoexercisebookpagenavigation

bookpage-numberto previous visited slide, search, to next visited slide

ISPRS Commision VI Sympozium page 13 of 24

Glossary
GLUES together ideas presented elsewhere in a course (reader, exercise, demonstration),ADDS connections,SHOWS the application of the discussed theory, and RELATES all the course materials referring to a discussed topic.

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Lecture with Python flavour

ISPRS Commision VI Sympozium page 14 of 24

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Self-instructive learning of practical programming skills

ISPRS Commision VI Sympozium page 15 of 24

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environmentExtending programming skills theory& practiceReflect on the acquired knowledge

e-Book

ISPRS Commision VI Sympozium page 16 of 24

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environmentExtending programming skills theory& practiceReflect on the acquired knowledge

Demonstrations

ISPRS Commision VI Sympozium page 17 of 24

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environmentExtending programming skills theory& practiceReflect on the acquired knowledge

Self-test

ISPRS Commision VI Sympozium page 18 of 24

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Technical solution

Introductions, Lectures:LATEX+ beamer class with ‘home-made’ style files

Exercises:(.html) editor + Python Crunchy

Demonstrations, Self-tests:Adobe Captivate 3

Unit tests, Exam:Blackboard LMS

To see creation of every element, come and see our demonstration!

ISPRS Commision VI Sympozium page 19 of 24 sub 1 of 2

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Technical solution

Introductions, Lectures:LATEX+ beamer class with ‘home-made’ style files

Exercises:(.html) editor + Python Crunchy

Demonstrations, Self-tests:Adobe Captivate 3

Unit tests, Exam:Blackboard LMS

To see creation of every element, come and see our demonstration!

ISPRS Commision VI Sympozium page 19 of 24 sub 2 of 2

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Course delievry & communication

The end-product is a Plug-&-PlayDEPS:

Students plug USB to their PC,

Backpack with pre-downloadedDEPS will be installed, and

through Backpack students canaccess the course content.

Expected size ≈ 300MB.

ISPRS Commision VI Sympozium page 20 of 24 sub 1 of 3

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Course delievry & communication

The end-product is a Plug-&-PlayDEPS:

Students plug USB to their PC,

Backpack with pre-downloadedDEPS will be installed, and

through Backpack students canaccess the course content.

Expected size ≈ 300MB.

ISPRS Commision VI Sympozium page 20 of 24 sub 2 of 3

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Course delievry & communication

The end-product is a Plug-&-PlayDEPS:

Students plug USB to their PC,

Backpack with pre-downloadedDEPS will be installed, and

through Backpack students canaccess the course content.

Expected size ≈ 300MB.

ISPRS Commision VI Sympozium page 20 of 24 sub 3 of 3

IntroductionThe coursewareOS community resourcesSummary

Main ‘knowledge vehicles’Other components

Plug&Play learning environment

Course delievry & communication

ISPRS Commision VI Sympozium page 21 of 24

IntroductionThe coursewareOS community resourcesSummary

UseContribution

Use of open-source content

Python Programming Language is free & open-source available fromhttp://python.org

The content of face-to-face module Programming skills as well asDEPS is based on the book available fromhttp://www.greenteapress.com

Source code of the book on Python Downey, A.: Think Python.How to think like computer scientist? available from the authors’swebpage: http://www.greenteapress.com

ISPRS Commision VI Sympozium page 22 of 24

IntroductionThe coursewareOS community resourcesSummary

UseContribution

Payback to open-source community

New chapter to the book - on ‘Case study Spatial processing’.

Topics discussed in the new chapter:What is spatial data?

Which Python modules allow working with spatial data?

How to input spatial data to Python and what type of output spatial datacan be produced?

What type of spatial processing functions can be used?

How can one develop custom spatial functions?

ISPRS Commision VI Sympozium page 23 of 24

IntroductionThe coursewareOS community resourcesSummary

Summary

Summary

New distance course at ITC Distance education: ProgrammingSkills

DEPS will be reaady & first time offered on 4.10.2010 (registration isstill open).

Plug&Play learning environment to see more, find us during‘Session 07: Demonstrations’ (when: June 3, 2010 - 15:30 - 17:00,location: 0-145 or 0-165)

DEPS uses and contributes to the resources of open-sourcecommunity, which fits well with the emerging view of knowledge as ashared resource.

Thank you very much for attention!

ISPRS Commision VI Sympozium page 24 of 24 sub 1 of 2

IntroductionThe coursewareOS community resourcesSummary

Summary

Summary

New distance course at ITC Distance education: ProgrammingSkills

DEPS will be reaady & first time offered on 4.10.2010 (registration isstill open).

Plug&Play learning environment to see more, find us during‘Session 07: Demonstrations’ (when: June 3, 2010 - 15:30 - 17:00,location: 0-145 or 0-165)

DEPS uses and contributes to the resources of open-sourcecommunity, which fits well with the emerging view of knowledge as ashared resource.

Thank you very much for attention!

ISPRS Commision VI Sympozium page 24 of 24 sub 2 of 2