Novice and Expert Programmers Gild Project University of Victoria Jeff Michaud.

Slides:



Advertisements
Similar presentations
PE in the MYP.
Advertisements

Problem Solving and Algorithm Design
Dreyfus Model of Skill Acquisition
Julie Fredericks Teachers Development Group.  Definition and Purpose  What is a mathematical justification and what purposes does mathematical justification.
Mathematics in the MYP.
Lecture Roger Sutton 21: Revision 1.
Chapter 6 Problem Solving and Algorithm Design. 6-2 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer.
Q uest for the elusive transfer Danièle Bracke Michel Aubé PhD, Sciences cognitives.
Task Analysis EDU 553 – Principles of Instructional Design Dr. Steve Broskoske.
Design Activities in Usability Engineering laura leventhal and julie barnes.
Supporting Design Managing complexity of designing Expressing ideas Testing ideas Quality assurance.
1 Studying Development and Debugging To Help Create a Better Programming Environment Brad A. Myers and Andrew Ko Human-Computer Interaction Institute School.
Chapter 6 Problem Solving and Algorithm Design Nell Dale John Lewis.
Cognitive Processes PSY 334 Chapter 8 – Problem Solving May 21, 2003.
Ways to solve problems Top down approach – Break problem up into smaller problems Bottom up approach – Solve smaller problem and then add features – Examples:
Models of Human Performance Dr. Chris Baber. 2 Objectives Introduce theory-based models for predicting human performance Introduce competence-based models.
Overview of Long-Term Memory laura leventhal. Reference Chapter 14 Chapter 14.
Building Knowledge-Driven DSS and Mining Data
Problem Solving & Creativity Dr. Claudia J. Stanny EXP 4507 Memory & Cognition Spring 2009.
Preparing for the Verbal Reasoning Measure. Overview Introduction to the Verbal Reasoning Measure Question Types and Strategies for Answering General.
FLCC knows a lot about assessment – J will send examples
31 st October, 2012 CSE-435 Tashwin Kaur Khurana.
Educational Psychology Name and define the stages of mastery an individual is likely to pass through on the way to becoming an expert professional educator.
Complex Cognitive Processes
PROGRAMMING LANGUAGES The Study of Programming Languages.
By Saparila Worokinasih
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
Business research methods: using questions and active listening
Complex Cognitive Processes Woolfolk, Cluster 8
Artificial Intelligence: Its Roots and Scope
 Knowledge Acquisition  Machine Learning. The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Copyright R. Weber INFO 629 Concepts in Artificial Intelligence Expert Systems Fall 2004 Professor: Dr. Rosina Weber.
The Program Development Cycle
Problem Solving and Algorithm Design. 2 Problem Solving Problem solving The act of finding a solution to a perplexing, distressing, vexing, or unsettled.
Challenges of unusually many under-prepared electrical engineering students Error Minding Gaps within the Bubble Presenter: Simon Winberg.
Introduction to Expert Systems. Other Resources Handout at ECE Office.
Leading Teacher Learning Communities. A model for teacher learning 42  Content, then process  Content (what we want teachers to change):  Evidence.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Making a Claim Grounds for Claim Evaluation Beyond Brainstorm.
1 Knowledge & Knowledge Management “Knowledge is power” to “Sharing K is power” Yaseen Hayajneh, PhD.
Expertise Novices and experts Expertise and perception Expertise and memory Expertise and judgment Expertise and domain-specificity.
What IS a Journeyman Programmer? Why this program?
Procedural Knowledge.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
PowerPoint Presentation by Charlie Cook The University of West Alabama Copyright © 2005 Prentice Hall, Inc. All rights reserved. Chapter 4 Foundations.
Teacher Learning Communities. A model for teacher learning 20  Content, then process  Content (what we want teachers to change):  Evidence  Ideas.
Overview Of Expert System Tools Expert System Tools : are all designed to support prototyping. Prototype : is a working model that is functionally equivalent.
Cognitive Processes PSY 334
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
Generic Tasks by Ihab M. Amer Graduate Student Computer Science Dept. AUC, Cairo, Egypt.
Expert Systems F451 AS Computing.
Development of Expertise. Expertise We are very good (perhaps even expert) at many things: - driving - reading - writing - talking What are some other.
Copyright  2001 by Dr. Ling Rothrock, Wright State University Dr. Ling Rothrock Department of Biomedical, Human Factors, & Industrial Engineering 1 Expertise.
Novice to Expert: What the Evidence Says
CSC141 Introduction to Computer Programming Programming Language.
Feedforward Eye-Tracking for Training Histological Visual Searches Andrew T. Duchowski COMPUTER SCIENCE, CLEMSON UNIVERSITY Abstract.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
EXPERT SYSTEMS BY MEHWISH MANZER (63) MEER SADAF NAEEM (58) DUR-E-MALIKA (55)
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Kate Perkins for the Ithaca Group. Setting the scene  Where has the CSfW come from?  What is it for? Who is it for? The framework  Skill Areas  Developmental.
Chapter 13 Instructing Students.
Using Cognitive Science To Inform Instructional Design
Program comprehension during Software maintenance and evolution Armeliese von Mayrhauser , A. Marie Vans Colorado State University Summary By- Fardina.
Introduction Artificial Intelligent.
Problem Solving and Algorithm Design
Problem Solving Strategies & Techniques
Cognitive Processes PSY 334
Cognitive models linguistic physical and device architectural
Some Important Skills Every Software Testers Should Have
Presentation transcript:

Novice and Expert Programmers Gild Project University of Victoria Jeff Michaud

Overview of Presentation General Definitions Psychological Studies – Novices – Expert – Common Novice-Expert Continuum Discussion

General Definitions Expert: someone who is more than just proficient in an area Novice: someone who is just entering an area

In the beginning ‘Psychological’ studies of programmers started in the 1970s Results are unfortunately not reliable – Weak methodologies – Complex programming practices – No psychologists …

Enter the Psychologists Proper research methodologies used Studies start to show consistent results: – novices could understand the syntax and semantics of individual statements – but could not combine the statements into programs to solve the problem

Results of the Studies: Novices lack an adequate mental model of the area [Kessler and Anderson, 1989] are limited to a surface knowledge of subject, have fragile knowledge (something the student knows but fails to use when necessary) and neglect strategies [Perkins and Martin, 1986] use general problem solving strategies (i.e., copy a similar solution or work backwards from the goal to determine the solution) rather than strategies dependent on the particular problem tend to approach programming through control structures use a line-by-line, bottom up approach to problem solution [Anderson, 1985]

Results of the studies: Experts have many mental models and choose and mix them in an opportunistic way [Visser and Hoc, 1990] have a deep knowledge of their subject which is hierarchical and many layered with explicit maps between layers apply everything they know when given a task in a familiar area, work forward from the givens and develop sub-goals in a hierarchical manner, but given an unfamiliar problem, fall back on general problem solving techniques have a better way of recognizing problems that require a similar solution [Chi, et al, 1981; Davies, 1990] tend to approach a program through its data structures or objects [Petre and Winder, 1988] use algorithms rather than a specific syntax (they abstract from a particular language to the general concept) are faster and more accurate [Wieden-beck, 1986; Allwood, 1986] have better syntactical and semantical knowledge and better tactical and strategic skills [Bateson, Alexander & Murphy, 1987]

Regardless of expertise Given a new, unfamiliar language, the syntax is not the problem, learning how to use and combine the statements to achieve the desired effect is difficult. Learning the concepts and techniques of a new language requires writing programs in that language. Studying the syntax and semantics is not sufficient to understand and properly apply the new language. Problem solution by analogy is common at all levels; choosing the proper analogy may be difficult. At all levels, people progress to the next level by solving problems. The old saying that practice makes perfect has solid psychological basis.

The Continuum Dreyfus and Dreyfus [Dreyfus, 1985] described the continuum from novice to expert with five stages – Novice Learns objective facts and features and rules for determining actions based upon these facts and features. (Everything they do is context free.) – Advanced Beginner Starts to recognize and handle situations not covered by given facts, features and rules (context sensitive) without quite understanding what he/she is doing. – Competence After considering the whole situation, consciously chooses an organized plan for achieving the goal. – Proficiency No longer has to consciously reason through all the steps to determine a plan. – Expert "An expert generally knows what to do based upon mature and practiced understanding."

Discussion Many tools for intro programmers are marketed as a ‘scaled down’ version of experts’ tools. Should tools for novices: – Have less or more functionality than those for experts? – Have different functionality than those for experts.

Problem Solving and Pedagogy Problem Solving – Understand the problem – Determine how to solve the problem – Translate the solution into a computer program – Test and Debug Pedagogy – Learn the syntax and semantics of one feature at a time – Learn to combine this language feature with known design skills to develop programs to solve the problem – Develop general problem solving skills