Programming Problem Solving Handbook
Early working draft
Programming Problem Solving Ability
- Programming Problem = A problem that is solved by writing/modifying a program and executing it
- Write, read and modify a program
- Programs are considered a means to an end. If producing a program is the aim, then other models of software development that might be more appropriate.
- It requires also managing motivation, emotional skills, self-directed and self-regulated learning.
Scaffolding for novices
- Solving programming problems
- Audience - Novices, such as:
- Computer Science major
- End-user programmers (like a computational scientist or journalist)
- Coding bootcamp students
- CS150
- Most common mistakes
- Programming by debugging / Programming by coincidence / Garage programming
- Copy-paste programming
- Possible to perform Freestyle Programming with Timeout before applying the model
-
- Computer competencies
- Proficiency in the programming language
- Notional Machines
The model is an adaption for programming of the four principles of problem solving from Pólya's Book How to Solve It:
- First, you have to understand the problem.
- After understanding, make a plan.
- Carry out the plan.
- Look back on your work. How could it be better?
This is a handbook, and not a textbook. In other words, it is designed to serve as a succinct summary of the ideas behind programming problem solving. It is intended to accompany the learners in a course or a workshop.
Copyright © 2020 Shlomi Hod.
All rights reserved.
All rights reserved.