One of the challenges in teaching computer science in general and computer programming
in particular is to maintain the interest of students, who often perceive the subject as
difficult and tedious. To this end, we introduce C-Sheep, a mini-language-like
system for computer science education, using a state of the art rendering engine, usually found
in entertainment systems. The intention is to motivate students to spend more time
programming, which can be achieved by providing an enjoyable experience. Computer
programming is an essential skill for software developers and as such is always an integral
part of every computer science curriculum. However, even if students are pursuing a
computer science related degree, it can be very difficult to interest them in the act of computer
programming, the writing of software, itself. In the C-Sheep system this is addressed by
using the visual gimmickry of modern computer games, which allows programs to
provide instant visualisation of algorithms. This visual feedback is invaluable to the
understanding of how the algorithm works, and - if there are unintended results - how errors in
the program can be debugged.
The C-Sheep programming language is a (100% compatible) subset of the ANSI C
programming language. Apart from just being a tool for learning the basics of the C
programming language, C-Sheep implements the C control structures that are required for
teaching the basic computer science principles encountered in structured programming.
Unlike other teaching languages which have minimal syntax and which are variable free to
provide an environment with minimal complexity, C-Sheep allows the declaration
and use of variables. C-Sheep also supports the definition of sub-routines (functions) which
can be called recursively.
"The Meadow" virtual environment is the virtual world in which entities (in our case
sheep) controlled by C-Sheep programs exist. This micro world provides a graphical
representation of the algorithms used in the programs controlling the virtual entities. Their
position and orientation within the virtual world visualise the current state of the
program. "The Meadow" is based on our proprietary "Crossbow" game engine which
incorporates a virtual machine for executing CSheep programs.
The Crossbow Engine is a compact game engine which is flexible in design and offers a
number of features common to more complex engines. The Crossbow Virtual Machine used
with C-Sheep in "The Meadow" - an improvement on the ZBL/0 virtual machine - is a module
of the Crossbow Engine.
The C-Sheep system also provides a counterpart library for C, mirroring the CSheep
library functions of the virtual machine. This allows C-Sheep programs to be compiled
into an executable using a normal off-the-shelf C/C++ compiler. This executable can then be
run from within the native working environment of the operating system. The
purpose of this library is to simplify the migration from the educational mini-language
to real-world systems by allowing novice programmers to make an easy transition from
using the C-Sheep system to using the C programming language.