Figure 6). We also use the uploaded files to check for
plagiarism. Advantages of an automatic plagiarism
detection system are that teachers are released from
manually checking the sources and that each student
is treated equally. A disadvantage of such a system is
that it prevents students from sharing or discussing
their solutions. Details about the plagiarism detection
system are found in (Pawelczak, 2018).
3.2 Benefits for Learning
3.2.1 Focus on Learning Programming
In contrast to professional IDEs, which focus on fast
development and teamwork, the programming envi-
ronment provides a pure and intuitive interface for
learning programming. A program skeleton helps stu-
dents to start writing their first programs. The IDE
does not provide autocompletion or automatic error
fixes and checks for errors only, when the user com-
piles or debugs the program in order to give the stu-
dents control on their individual workflow.
On the other hand, students get everything they
need by installing the Virtual-C IDE: there is no need
to install compilers, plugins, or to configure projects
etc. Programs run in a virtual machine; thus, all
programs behave equally independent of the
platform, the IDE runs on. Students therefore can
concentrate on the C programming language and do
not need to take platform specific concepts into
account.
3.2.2 Individual Time Management
Students can work on exercises or tests independent
of the course hours, as the automatic generated test
reports provide feedback to them. We often experi-
ence that students access our exercises on the server
once more before the course examinations.
3.2.3 Competition and Collaboration
Automated assessment systems decide on students’
solutions in a rather binary way, i.e. a certain number
of tests must pass before the assignment is marked as
passed. Unfortunately, even clumsy solutions often
pass, as the tests are primarily based on input-output-
behaviour and less on performance characteristics.
Although the IDE supports performance tests, such
kind of tests are elaborate to develop and teachers can
usually assess a student’s solution much better
(compare Pieterse and Liebenberg, 2017). So ideally,
we should combine the automatic assessment with a
teacher’s review. With this combination, we expe-
rienced that students are often sufficiently content
when they pass the assignment and are not willing to
accept change proposals to their programs by the
teachers. Besides, we also found out, that students
spend more time on their programming assignment,
when they notice, that their fellow students get better
results. In our case, the programming assignments re-
port the results in percent and whereas above 80 % is
sufficient to pass, some students still want to reach
100 %, because they see the automatic assessment
system more as a computer game and want to receive
the best results.
In order to utilize the competitive aspects on the
one hand and on the other hand not to hinder weaker
students, we extended our assessment system with a
code quality analysis module (compare Figure 6),
which is located on the server. This module runs the
compiler and the static code analysis first, and then
executes the students’ program with a given set of test
data. During the run, it monitors the execution steps
for each function and checks the memory allocation
on the heap. From this data collection it generates a
report on the quality of the program with respect to
coding style, security (static code analysis), efficien-
cy (required execution steps for a given input, cyclo-
matic complexity) and memory management. In
addition to the report, the metrics are stored per stu-
dent on a function basis. This allows links to be in-
cluded into the report to solutions of other students
with a better quality (compare Figure 11 in the
appendix). We intend students to use this as an ex-
change platform and to foster the competition among
the students. To avoid a conflict with plagiarism, the
students must pass the plagiarism check once before
they can access the quality report.
4 EVALUATION
4.1 General Data
About 65 students enrol in the introductory course
each year. In addition to the standard course evalu-
ation, we asked our students in 2019 for their opinion
about the programming environment and secure C
coding. We received feedback from 45 students in
total. About 80 % of the students stated that they had
already gathered experience with programming and
programming environments before their studies.
Figure 7 gives an overview of the programming lan-
guages students encountered before enrolment to
university.