  Assessments help in evaluating the knowledge gained by a learner at any
specific point as well as in continuous improvement of the curriculum design
and the whole learning process. However, with the increase in students'
enrollment at University level in either conventional or distance education
environment, traditional ways of assessing students' work are becoming
insufficient in terms of both time and effort. In distance education
environment, such assessments become additionally more challenging in terms of
hefty remuneration for hiring large number of tutors. The availability of
automated tools to assist the evaluation of students' work and providing
students with appropriate and timely feedback can really help in overcoming
these problems. We believe that building such tools for assessing students'
work for all kinds of courses in not yet possible. However, courses that
involve some formal language of expression can be automated, such as,
programming courses in Computer Science (CS) discipline. Instructors provide
various practical exercises to students as assignments to build these skills.
Usually, instructors manually grade and provide feedbacks on these assignments.
Although in literature, various tools have been reported to automate this
process, but most of these tools have been developed by the host institutions
themselves for their own use. We at COMSATS Institute of Information
Technology, Lahore are conducting a pioneer effort in Pakistan to automate the
marking of assignments of introductory programming courses that involve C or
C++ languages with the capability of associating appropriate feedbacks for
students. In this paper, we basically identify different components that we
believe are necessary in building an effective automated assessment system in
the context of introductory programming courses that involve C/C++ programming.
