|C-Sheep is an ANSI C-like educational programming language
for learning the principles of computer science and for learning how to programm in the C programming language. C-Sheep allows you to
program the behaviour of a sheep. The behaviour of the sheep can then be observed in its natural habitat,
"The Meadow" virtual world.
There are a number of similar systems for learning programming, such as
Prog&Play or M.U.P.P.E.T.S..
A common element of these systems is their similarity to programming games, such as Marvin's Arena
C-Sheep was developed at he National Centre for Computer Animation,
Bournemouth University (UK) to support teaching on the BA Computer
Visualisation & Animation degree programme.
Programs for C-Sheep are written using a subset of the ANSI C programming language that implements a basic set of control structures
(simple iteration, selection and sequence) as well as the definition of sub-routines (functions).
In terms of C, the control structures available in C-Sheep are the block, if and if-else alternatives, as well
as while and do-while loops. Unlike other teaching languages which are variable free to provide an environment with
minimal complexity, C-Sheep allows the declaration and use of variables and therefore includes a full set of arithmetical operators.
As with C functions, C-Sheep functions can return values of the variable data types (unless declared as void, i.e.
typeless) and receive parameters. Identical to programs in the C programming language, C-Sheep programs always require the top-level
function "main" to be defined. This function provides the entry point of a C-Sheep program from which it will begin program execution.
C-Sheep comes with a companion library for regular C compilers as a companion to "The Meadow". This library exposes C-Sheep functions
to the ANSI C language, allowing C-Sheep programs to be written using off-the-shelf compilers. The idea is to simplify the transition from
C-Sheep to regular ANSI C, as suggested by Untch (Teaching Programming Using the
Karel the Robot Paradigm Realized with a Conventional Language).