傳統的程式設計授課，著重在概念講授與程式解題(Problem Solving)，但是學生程式設計的學習效果卻有限，原因是因為程式設計從理論到應用以及學習活動深淺落差很大，學生容易感受到挫折感。本研究設計一個網頁程式設計輔助學習環境(WPLE)，並以Bloom認知領域教育目標(Bloom’s taxonomy)認知層次的理論為基礎，設計由淺入深的五種程式設計學習活動：程式觀念簡答、程式填空練習、程式除錯練習、程式問題解決與同儕互評活動，來幫助學生學習程式設計，並實際於課堂上進行實驗。本論文將探討「深淺不同認知層次」的程式設計學習活動之相關性與其對學習成效的影響，以及檢視學習成效較高與學習成效較低的同學在五個程式設計學習活動的表現情形。接著透過問卷瞭解學生對WPLE學習環境及五種深淺不同認知層次的程式設計學習活動對學習影響之看法，並訪談學習成效較高與較低或是在學習活動中有特殊表現的學生。最後我們提出結論與建議，以幫助老師與學生在程式設計上的教學與學習。 There were much emphasis on concepts teaching and complex problem solving in language programming learning. But it does not have good effectiveness on learning performance because of the gaps are very large between the two programming activities, conceptual teaching and complex problem programming. It will easily make students feel frustrated in the learning process. Thus, this research tried to propose a Web-based programming learning environment (WPLE) and five programming learning activities were designed based on the cognitive levels of Bloom’s taxonomy. The five programming learning activities were programming concepts testing, program block filling , program debugging, coding to solve problem and peer assessment, which were derived from Bloom’s cognitive taxonomy and went from simple to complicated. After some experiments were conducted, we studied the relationship between the programming learning activities and their effect on students’ learning achievement. Moreover, this research also investigated performances of high achievement group and low achievement group in the five programming learning activities. We found that the two programming activities, program block filling and program debugging were very important and played a critical role to get high achievement so that they might fill the gap between concepts learning and complex problem programming. Besides, we also investigated students’ perceived viewpoints about WPLE and five programming learning activities by questionnaires. At the end of the course, the researchers held in-depth interview to some students who performed extremely contrarily in the class or had special behavior in the programming learning activities. Finally, we gave some conclusions and suggestions in order to help teaching and learning in programming courses.