What Does it Take to Learn 'Programming Thinking'? Anna Eckerdal, Anders Berglund Dept. of Information Technology Uppsala University Sweden.

Slides:



Advertisements
Similar presentations
Project Lead the Way An Orientation American High School.
Advertisements

Unlocking the mind to critical thinking. “Thinking about Thinking”
Project Proposal.
Maths Workshop. Aims of the Workshop To raise standards in maths by working closely with parents. To raise standards in maths by working closely with.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Writing Business Reports: 8 Steps to Success by Lynne Presley Oklahoma Dept. of Corrections Training Administration Unit August 2001 Oracle Course Code.
Proof Points Key ideas when proving mathematical ideas.
Introduction To System Analysis and Design
Why Program? CSE111 – Great ideas in Computer Science Clearly programming fits here Programming is a Great Idea in Computer Science. It has allowed computers.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
Learning computer networks in an international, distributed course Anders Berglund Information Technology Uppsala University Uppsala Sweden.
July 16, Introduction to CS II Data Structures Hongwei Xi Comp. Sci. Dept. Boston University.
Dyscalculia Dyslexia Teaching Assistant Course December 2010.
1 Learning Statistics Your goals and beliefs about learning statistics are directly related to your grade in STT 215.
Effective Questioning in the classroom
UNIT 9. CLIL THINKING SKILLS
RESEARCH DESIGN.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Mixed-level English classrooms What my paper is about: Basically my paper is about confirming with my research that the use of technology in the classroom.
Introduction To System Analysis and design
Empowering Undergraduate Students through Mathematical Thinking and Learning Marja-Liisa Hassi University of Colorado Boulder, CO Marja-Liisa Hassi University.
1 UTeach Professional Development Courses. 2 UTS Step 1 Early exposure to classroom environment (can be as early as a student’s first semester)
Learning to Learn Kristina Edstr ö m, KTH Learning Lab,
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 8: More About OOP and GUIs.
Novice Students' Learning of Object-Oriented Programming Anna Eckerdal Dept. of Information Technology Uppsala University Sweden.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Algorithms and their Applications CS2004 ( ) Dr Stephen Swift 1.2 Introduction to Algorithms.
Introduction To System Analysis and Design
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
“The study of algorithms is the cornerstone of computer science.” Algorithms Fall 2011.
How to read a scientific paper
Algorithms CS139 – Aug 30, Problem Solving Your roommate, who is taking CS139, is in a panic. He is worried that he might lose his financial aid.
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
1 Ideas of Problem-based Learning As a learner-centred process, problem- based learning meets the learners' interests and as such gives room for developing.
Lecture 11 Data Structures, Algorithms & Complexity Introduction Dr Kevin Casey BSc, MSc, PhD GRIFFITH COLLEGE DUBLIN.
Hirophysics.com Steven Jeffrey K irkup. Hirophysics.com What is Object Oriented Programming (OOP)? Essentially, OOP is a protocol that can be followed.
previous next 12/1/2015 There’s only one kind of question on a reading test, right? Book Style Questions Brain Style Questions Definition Types of Questions.
Programming Fundamentals. Thinking about Programming Robots are made to perform useful tasks. Each robot is designed to solve a specific problem, in a.
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
Major Science Project Process A blueprint for experiment success.
Algorithms CS280 – 10/20/05. Announcement  Part 1 of project 2 due.  Read chapters 10, 7 for this unit  Tuesday we will also be in the classroom We.
WHAT IS RESEARCH? According to Redman and Morry,
Learn with your child - computing. Why teach computing? The National Curriculum states: A high-quality computing education equips pupils to use computational.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
HIGH-LEVEL LANGUAGE PROGRAMMING PARADIGMS. Programming languages come in many forms or 'paradigms'. Each form of language offers advantages over other.
Algorithms and Flowcharts
LB160 (Professional Communication Skills For Business Studies)
5 Systems Analysis and Design in a Changing World, Fourth Edition.
AP CSP: Creating Functions & Top-Down Design
Situated supervision Ability to read the situation ….
Algorithms and Problem Solving
Chapter 8: More About OOP and GUIs
COP 3503 FALL 2012 Shayan Javed Lecture 15
Object-Oriented Software Engineering Using UML, Patterns, and Java,
CSC 221: Computer Programming I Fall 2005
Week 10: Object Modeling (1)Use Case Model
Pre-service and in-service teachers experiences of learning to program in an object-oriented language Presenter: Ku-Chou Tai Advisor: Ming-Puu Chen Govender,
OBJECT ORIENTED PROGRAMMING overview
Philosophy of Mathematics 1: Geometry
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer.
Lesson 2 Programming constructs – Algorithms – Scratch – Variables Intro.
Five-Year Undergraduate Enrollments
Helen Jefferis, Soraya Kouadri & Elaine Thomas
Coding Concepts (Basics)
U3L2 The Need For Algorithms
From Use Cases to Implementation
Presentation transcript:

What Does it Take to Learn 'Programming Thinking'? Anna Eckerdal, Anders Berglund Dept. of Information Technology Uppsala University Sweden

Informationsteknologi Institutionen för informationsteknologi | …'Programming Thinking'? Student D: I've taken many math courses but math is kind of logical and you understand it but this is... no I don't know. No but I kind of think it's easier to study math. Then you often have something creative to base it on, or you don't, but you learn more methods and kind of, there is some theory behind. [...] Yes, I think it has been difficult with concepts and stuff, as to understand how to use different, how one should use different things in a program. And I actually think that most of it has been difficult, but this very thought behind, it feels as some people just understand programming [...] But I still think the course, it's difficult for a novice to sort of get a grip of how to study Student D: I've taken many math courses but math is kind of logical and you understand it but this is... no I don't know. No but I kind of think it's easier to study math. Then you often have something creative to base it on, or you don't, but you learn more methods and kind of, there is some theory behind. Here you feel as if you only learn a lot of examples. [...] Yes, I think it has been difficult with concepts and stuff, as to understand how to use different, how one should use different things in a program. And I actually think that most of it has been difficult, but this very thought behind, it feels as some people just understand programming, it's something they... [...] Student C: I don't know... I guess it's actually to solve a certain type of problem, it's rather like the math courses. Then learning different methods to solve them in different ways. Much like that, if you look back at the course it's not much actually but very, very fundamental. So to... get an overview and a basic idea of what it's about and that you can read on your own whenever you need.

Informationsteknologi Institutionen för informationsteknologi | …'Programming Thinking'? Student C: I don't know... I guess it's actually to solve a certain type of problem, it's rather like the math courses. Then learning different methods to solve them in different ways. Much like that, if you look back at the course it's not much actually but very, very fundamental. So to... get an overview and a basic idea of what it's about and that you can read on your own whenever you need.

Informationsteknologi Institutionen för informationsteknologi | What Does it Take to Learn 'Programming Thinking'? ■ Phenomenography ■ The study ■ Results ■ Insights from Mathematics Education Research ✹ Process-object duality ■ Comparison ■ Conclusions and Implications for education

Informationsteknologi Institutionen för informationsteknologi | Phenomenography (Marton & Booth, 1997)  Aims at analysing and describing the variation in students' understanding of phenomena/concepts  Takes the learners' perspective  The researcher formulates a limited number of qualitatively different categories of description  Qualitative empirical research approach  Analysis on a group level

Informationsteknologi Institutionen för informationsteknologi | The study  14 first year undergraduate students in the study program Aquatic and Environmental Engineering.  First programming course, using Java. Giving 4 Swedish credit points.  One hour individual semi-open interview

Informationsteknologi Institutionen för informationsteknologi |  Questions on understanding of what learning to program means What do you think learning means in this course? What do you experience the course to be about? What has been most important to you in this course? What do you think was the aim for you when learning to program? What has been difficult in the course? The interview

Informationsteknologi Institutionen för informationsteknologi | Excerpts from the interviews "What does it mean to learn in this course?" Student N: I think it is all about learning, partly the commands, fundamental commands I use, I have to remember them Student E: Well it's like thinking programming I think. Understanding things, putting together and how you make things work sort of and accomplishing what you want yourself.

Informationsteknologi Institutionen för informationsteknologi | Excerpts from the interviews "What does it mean to learn in this course?" Student D: You just think of things like when you withdraw money from a cash point, kind of, then you start to think, okey, it's these steps, figures and the sum and kind of [...] No but those things that one starts to think a little about how certain things are built Student G: To get to try, like, you learn to think in a special way, you learn problem solving. [...] It's problem solving. Student K: You know, it's good to have this kind of courses because you get to kind of exercise problem solving. [...] You have a problem that you solve in different ways and then you perhaps find the best way. That's one of the central parts I think. Then that you must write in some programming language, that you can perhaps do in any language.

Informationsteknologi Institutionen för informationsteknologi | Excerpts from the interviews "What does it mean to learn in this course?" Student E: Yes but it's that the more you know about computers the less dependent on others you'll be, sort of. I: I see. E: I don't know, if you work somewhere later and have some insight into things, then I think it'll open a window so that you know what it's about at least even if you don't, I mean, it's the pros that will deal with the real things.

Informationsteknologi Institutionen för informationsteknologi | Learning to program is experienced as To understand some programming language, and to use it for writing program texts. 2. As above, and in addition learning a way of thinking, which is experienced to be difficult to capture, and which is understood to be aligned with the programming language. 3. As above, and in addition to gain understanding of computer programs as they appear in everyday life. 4. As above, with the difference: learning a way of thinking which enables problem solving, and which is experienced as a “method” of thinking. 5. As above, and in addition learning a skill that can be used outside the programing course.

Informationsteknologi Institutionen för informationsteknologi | Process-object duality  Discusses the idea of reducing abstraction  Process conception: is regarded “as a potential rather than an actual entity, which comes into existence upon request in a sequence of actions.”  Object conception: this notation is captured as one 'solid' entity. Process conception of a concept precedes, and is less abstract than the object conception

Informationsteknologi Institutionen för informationsteknologi | Process-object duality, cont. Process conception is expressed as “canonical procedures”:  A procedure that is more or less automatically triggered by a given problem.  It enables students to obtain a solution without worrying too much about the mathematical properties of the concepts involved.  It gives students the assurance of following a well-known, step-by-step procedure, where each step has a clear outcome.  Reduces abstraction level

Informationsteknologi Institutionen för informationsteknologi | Process-object duality, cont Category 1-3: 1.To understand and use some programming language. 2.A way of thinking which is experienced to be difficult to capture and which is aligned with the language. 3.To gain understanding of programs in everyday life. =================== Category 4-5: 4. A way of thinking which enables problem solving, and which is experienced as a “method” of thinking. 5. A skill that can be used outside the programming course. Students have not even reached process conception. They do not discern the canonical procedures Students have at least reached process conception Canonical procedures Possibilities for object conception

Informationsteknologi Institutionen för informationsteknologi | Summary Students need “canonical procedures” as a vehicle to reach object conception. There are students who fail to perceive “canonical procedures”. These students do not even reach process conception - there is a level beneath process conception when learning OOP. Minimum requirements in the course is that students reach process conception How can we help beginning programming students to discern “canonical procedure” when learning object- oriented programming?

Informationsteknologi Institutionen för informationsteknologi | Implications for teaching Canonical procedures in OOP, tentative list:  To know standard approaches for simple OOA  Given an UML diagram, transfer to skeleton code  Given an algorithm in pseudo-code, transfer to code  To get a repertoire of (simple) standard algorithms for (simple) standard problems  …