Existing attempts towards including formal methods in introductory programming courses focus on introducing program verification tools. When using the verification tools, there is no structured help available to the students in the actual task of implementing the program, except for the hints provided by the failed proof obligations. In contrast, in the correct-by-construction programming methodology, programs are incrementally derived from their specifications.By restricting our attention to program derivation, we have identifed a small core of the formal method concepts that can easily be taught in the first two years of a computing curricula. Based on our learning from multiple years of paper and pencil based teaching, we have developed a programming assistant tool that addresses several of the issues faced by the students in the manual program derivation. The tool ensures that the most common students' error of performing incorrect proofs does not happen.