Programming is problem solving! The essence of solving a problem on the computer is the production of a viable solution algorithm. This is then followed by a routine and often tedious translation of the algorithm into machine recognizable instructions. The project goal is to teach students to program in some popular languages, without becoming entangled in a web of syntactic complications. The project will develop a programming environment called "Miracle," in which high-level goal-oriented tools circumvent the unnecessary tedium of translation. Students can then focus on developing problem-solving skills and programming logic, while Miracle will generate the desired code for them once they have produced the algorithm. Although syntax is a useful skill for professional programmers, it is not the most important skill for most students who only need some idea about programming as part of their general "computer fluency." A prototype of the programming environment Miracle has been built, which translates the student's pseudocode into a JavaScript code and allows the student to get his/her results. This prototype is not nearly powerful enough nor general enough. In this project, the prototype will be enhanced (1) to handle more sophisticated programming logic and (2) to offer, in addition to JavaScript, a variety of target languages, such as Visual Basic and Java. The advantages of this approach to teaching programming to students not majoring in computer science are (1) the problem-solving and analytic reasoning skills of students are sharpened because more time can be spent on these aspects of the course than on syntactic structure, and (2) students have the satisfaction of knowing that they can solve their problems and produce code in many popular programming languages using Miracle.