Introductory computer science courses often teach students syntax and semantics along simple problems designed to develop logical, structured thinking.
Highlights • Introductory computer science courses often teach students syntax and semantics along simple problems designed to develop logical, structured thinking. • Authentic problem-solving skills are rarely developed at these early stages. • The authors designed and tested with success a three-stage process to teach problem-solving:
Developing Authentic Problem Solving Skills in Introductory Computing Classes Katrina Falkner and Edward Palmer SIGCSE’09, March 3-7, 2009
– Observing applications of programming techniques – Observing problem solving techniques – Applying cooperative problem-solving exercises in classroom
Presented by Xiannong Meng for ENGR 139 Spring 2010 1
Outline Of Presentation • • • • •
2
Introduction
Problem introduction Related work Authentic problem solving Analysis of experimental results Conclusion
• Software development is a creative process, requiring skills in – Design – Innovative thinking – Communication
• Real world software development commonly – Start with partial defined problems – Communicate with clients and colleagues to determine the full problem specifications – Build prototypes to experiment with various solutions – Choose and develop the most feasible solution 3
Classroom Instructions Mismatch with Real World
4
Contribution of the Authors
• Classroom teaching concentrates on syntax and semantics, using problems to demonstrate the features of a language. • Rarely do introductory computer science texts elaborate examples that illustrate that solving problems most commonly starts with failures, with alternatives.
• An approach to teaching introductory computer science that uses authentic problem solving to facilitate experiential learning. – Using cooperative learning techniques to increase student engagement and enhance the authenticity of the learning process. – Using cooperative problem solving approaches throughout every aspect of the curriculum, including course content and delivery, and support services. – Choosing problems that enable both practice and exploration of the problem space. 5
6
1
Outline Of Presentation • • • • •
Polya’s Seminal Work (1945)
Problem introduction Related work Authentic problem solving Analysis of experimental results Conclusion
• • • •
Understand the problem Devise a plan Carry out the plan Look back
7
8
Computer Science Version of It
More Recent Approaches
• Problem Solving Cycle by Barnes, Fincher, and Thompson – – – –
• Students lead the problem-solving process with a partially specified problem (Flowers and Gossett, 2002). • Discuss problem solving strategies first before teaching any programming elements (Allen and Kolesar 1997).
Understanding, Designing, Writing and Writing, Reviewing
• Top-down, step-wise refinement approach by Knuth and Riley
9
10
Other Issues
Cooperative Learning
• First-year students transition: “part of an anonymous mass”, feeling of isolation and loneliness. • First-year students engagement (studies show a strong correlation between attendance and student performance)
• Glasser draws a distinction between “learning by observing” and “learning by doing” and “being involved”. Students retain about – – – –
– Missing classes – Lack of confidence in their own abilities plagues many first-year students
10% of what they read 20% of what they hear 70% of what is discussed with others 95% of what they teach to someone else
• Cooperative learning is a teaching strategy where students work together to improve their understanding of a give topic. 11
12
2
Outline Of Presentation • • • • •
Authentic Problem Solving
Problem introduction Related work Authentic problem solving Analysis of experimental results Conclusion
• Authentic problem solving contains two components – Application of cooperative and active learning – Incorporate support systems into learning
• Cooperative and active learning – Observing application of programming concepts – Observing problem solving – Cooperative problem solving
• Support system – Computer Science Learning Center 13
Cooperative and Active Learning (1)
14
Cooperative and Active Learning (2)
• Observing applications of programming concepts
• Cooperative problem solving • Weekly Worked Examples lectures
– Using code examples – Demonstrating running of the example code – Developing code live in classroom, explaining various choices along the way
– Students are given a small set of problems to solve – The problems are designed to utilize the concepts learned in the week before – Groups G off 33-44 students t d t first fi t discuss di the th problems bl within ithi the th group to make sure everyone understand the problem – Each group then design a solution and start to implement the design – The instructor collects common problems and make a summary at the end of the lecture
• Observing problem solving – Demonstrating live problem solving: start with a high level and incomplete problem specification – Elaborating the problem – Identifying key elements of the solution – Exploring and comparing alternate solutions – Concluding by identifying key classes and necessary algorithms
• The weekly tutorial sessions work in a similar way. 15
Result and Analysis
16
Positive Effect on Attendance
• The new approach has a very positive impact clearly. Some sample course evaluation questions: – This course stimulates my enthusiasm for further learning increased from 57% to 74%. – I am motivated to learn in this course increased from 60% to 71%. – This course helps me develop my thinking skills (e.g., problem solving, analysis) increased from 79% to 88%. – I understand the concepts presented in this course increased from 64% to 80%. Attendance from 2004, 2005, 2006, 2007 Practical, lecture, attrition 17
18
3
Effect on Practical Examination
Conclusions
2004
2005
2006
2007
2008
PE1
80
75
91
93
91
PE2
45
41
51
61
75
• Authentic problem solving – Observing applications of programming concepts – Observing authentic problem solving – Cooperative problem solving
Average Exam Scores Over the Years 1 Data collected reflects the 44-year 1. year experiment period 2005 2005-2008 2008 2. Weekly Worked Examples lectures started 2006 3. Changed weekly Worked Examples format so students led all discussions
• The approach increases students’ st dents’ confidence and improves their performance • Students-led problem solving sessions do better than passive learning, or instructor-led sessions.
19
20
References • Barnes, D. J., Fincher, S. & Thompson, S. (1997). Introductory problem solving in computer science. In Proceedings of the 5th Annual Conference on the Teaching of Computing, pp 36-39, August 1997 Accessed March 19 1997. 19, 2010 from http://kar.kent.ac.uk/21468/2/Introductory_Proble m_Solving_in_Computer_Science.pdf
21
4