Learning to program is difficult for novice programmers. Human tutoring often helps, but is time consuming and not always available. An Intelligent Tutoring System (ITS) may be of help here. An ITS involves selecting a problem‐solving interface, designing a cognitive model for solving problems in that environment and building instruction around the productions in that model. The current research gives recommendations for the cognitive model and the instruction of an ITS for the programming language PHP. For that purpose, we need to find out how novice programmers solve programming problems in PHP. Novice programmers are studied by letting them think aloud and
logging their voice and screen output while they are constructing PHP programs. We look at the lines of code they develop, and the problems they encounter. In particular, we determine which problems are specific for PHP. Then, we look at their questions and the examples they use. From this we derive production rules, ‘Frequently Asked Questions” which can be answered by the tutor, and examples which can support the students when solving specific programming problems. The recommendations for an ITS for the programming language PHP consist of these production rules to inform the cognitive model, the ‘Frequently Asked Questions” together with examples to support the instruction. Finally we show an interactive session with a hypothetical ITS for PHP in which our recommendations are implemented.