## 2 Related Work
They again did not research the impact of educational approach or technology on dropout rate or students' success. Measuring prior programming knowledge and its impact on the outcomes is the main aim of the paper written by [PERSON] et al. [11]. They proposed and evaluated a novel self-evaluation instrument for measuring prior programming knowledge in introductory programming course to bridge the gap between ad-hoc surveys and standardised tests. Several groups of researchers developed automated methods for identifying at-risk students early in the semester. Many of these techniques are based on automatically monitoring student activity as the students develop code or advanced data mining and predictive modelling techniques [12]. The research in this area indicates that early success in an introductory programming course is vital for a student's ultimate success. Many researchers have shown that students having difficulty can be identified early in the semester. An automated assessment (AA), which is in the middle of the interest of this study, represents a tool that allows checking source code automatically and brings a new perspective on learning. The automated assessment of programming assignments has been practised since programming hasbeen taught, especially in the introductory programming courses. It has different features, which are automatically assessed by various assessment tools and systems [13]. Considering the survey about the AA for the novice programmers in the introductory courses [14], the following base conditions should be fulfilled for successful implementation of AA:  
* a clear and unambiguous specification should define the requirement for program work and results, with simultaneous checking whether the programs meet the specification or not;
* sufficient testing of the assignment should be ensured, as each bug disturbs and demotivates beginners;
* environmental support for the discovery of syntactic and semantic errors should exist,
* a suitable mechanism for dealing with the programs with syntactic and semantic errors should be created;
* immediate and corrective feedback for the submitted assignments; feedback helps to build students' knowledge, and habits should be available. According to [PERSON] et al. [15] and [PERSON] et al. [16], AA is beneficial for the following reasons:  
* the student gains immediate feedback whether the program is correct, and students can use their own pace,
* the teacher gains extra time, instead of time wasted by checking the assignment and identifying and re-explaining repeated errors in past,
* it is possible to teach large groups of students without increasing the demands on teachers, which apply especially in the case of MOOC courses,
* the learning process is more efficient and, due to the errors tracking, speed and quality of the solutions, the individual parts of the process can be fragmented, quantified and described (problematic topics, problematic examples, number of necessary attempts, etc.). Any of the above-mentioned studies did not provide proof that AA has a significant impact on the students' achievements or significantly reduce a student dropout rate. A large number of studies measure the effectiveness of assessment tools in helping students to write the program and perform the solution [17]. Although AA has been extensively used in programming lessons for several years, research focused on their contribution to programming learning is still limited. [PERSON] [18] performed a systematic literature review to find out what kind of feedback is provided, which techniques are used to generate the feedback, how adaptable the feedback is, and how these tools are evaluated. They found that feedback, including AA, mostly focuses on identifying mistakes and less on fixing problems. According to [PERSON] et al. [19], the practical results of AA implementation in MOOCs are not trivial. The educational goal can only be achieved through the availability of many high-quality assignments, coupled with coaching in the form of guaranteed rapid and accurate feedback.