The assessment of course learning outcomes is an essential component in the continuous efforts of course improvement. The assessment is a tedious process and often incurs for many educators an overhead to the teaching and learning operation. Thus the need to investigate efficient methods to improve the process of course assessment by minimizing unnecessary efforts for the planning, preparation and execution of the assessment process. Automating the assessment process is instrumental in taking away its tediousness allowing teachers to focus their efforts on the improvement of the teaching and learning quality. For the case of information technology (IT) curriculum, one main concern is the difficulties encountered by students in learning programming skills; thus the need for an assessment-driven course improvement for programming courses. In this paper, we propose an automated proactive assessment method for assessing the learning outcomes of a course by embedding the assessment instruments in the tests and student homeworks. We selected a network programming course for its suitability to embed assessment instruments as part of the programming library used by students during their test and homeworks. The embedded instruments consist of a set of use-case routines to test the validity of each design and implementation component of the developed protocol. This approach streamlines the process of learning outcomes assessment as well as the continuous improvement of the course.