This paper considers the need to focus initial programming education on problem-solving, prior to the teaching of programming syntax and software design methodology. The main vehicle for this approach is simple Lego based robots programmed in Java, followed by the programming of a graphical representation/simulation to develop programming skills. Problem solving is not trivial (Beaumont & Fox, 2003) and is an important skill, central to computing and engineering. The paper extends the authors earlier research on problems first and problem solving (Hill & Turner, 2011) to further emphasise the importance of problem-solving, problem based learning and the benefits of both physical and visual solutions. An approach will be considered, illustrated with a series of problem-solving tasks that increase in complexity at each stage and give the students practice in attempting problem-solving approaches, as well as assisting them to learn from their mistakes. Some of the problems include ambiguities or are purposely ill-defined, to enable the student to resolve these as part of the process. The benefits to students will be discussed including students' statements that this approach, using robots, provides a method to visually and physically see the outcome of a problem. In addition, students report that the method improves their satisfaction with the course. The importance of linking the problem-solving robot activity and the programming assignment, whilst maintaining the visual nature of the problem, will be discussed, together with the comparison of this work with similar work reported by other authors relating to teaching programming using robots (Williams, 2003). In addition, limitations will be discussed relating to the access to the physical robots and the alternative attempts to simulate the robots using three options of, Microsoft Robotics Studio (MSRS), Lego Mindstorms and Greenfoot simulators.