Application-oriented assignments are considered as effective after-class practices in programming courses. A good application-oriented assignment will guide students using taught programming concepts as fundamental to accomplish the requirements described in the assignment. However, the instructor has no reference to select requirements which provide linkages to the programming concepts. In this work, COMPASS, the COntext-Monitoring Programming Assignment Suggestion System, is provided. COMPASS preserves knowledge linking from programming concepts to assignment requirements. After transferring programming concepts to correlated assignment requirements, COMPASS further provides application-oriented assignments with these requirements. The instructor can select one of the application-oriented assignments and issue it directly. If more practices are needed, the instructor can also modify the selected application-oriented assignment through the assistance of COMPASS. COMPASS has been applied to programming courses for eight semesters. The results show that the suggested application-oriented assignments do meet the practising targets. Students apply the programming concepts as expected to fulfil the assignment requirements. COMPASS provides verified and formalized guidance to the instructor and acquires effective application-oriented assignments for students.