Version 2.5
S D Benford, E K Burke, E Foxley
ltr @ cs.nott.ac.uk
Ceilidh is an on-line coursework administration and auto-marking facility designed to help both students and staff with programming courses. It helps students by informing them of the coursework required of them, and by permitting them to submit their work on the computer, instead of having to print things out and hand them in. It also marks programs directly, and informs the student and teacher of the mark awarded. The marking uses a comprehensive variety of static and dynamic metrics to assess the quality of submitted programs, of which details are in the paper by Zin and Foxley [ref 1] [content] (a copy of which may be stored on-line in Ceilidh, see below). Ceilidh also provides students with on-line access to notes, examples and solutions, and provides tutors with extensive course monitoring and tracking facilities.
This document is a guide for student users of the Ceilidh system.
There are different facilities for students (reading notes and coursework definitions, looking at examples, developing programs, submitting and marking work), and tutors (observing submitted work and marks) and teachers (amending course material, setting up exercises, performing plagiarism tests). The appropriate facilities are offered to appropriate users by the Ceilidh system itself, which takes note of the login identification of the user and compares it with lists of authorised users.
There are two ways of calling the Ceilidh system. Ceilidh may be used to support several courses in your department. You can either enter the system at a general level, and then choose the particular course you are studying, or you can enter directly into the particular course you are interested in.
To enter the system at the general level, the appropriate command (which should have been set up by your computer systems administrator) is
ceilidh
To enter directly into the course pr1, type
ceilidh -c pr1
Upon issuing the command ceilidh you will be greeted with the menu shown in figure 1.
CEILIDH system level menu
lc | list course titles | | sc | move to named course |
vcn | view course notes | | | |
vp | view papers | | pp | print papers |
clp | change printer | | h | for more help |
co | make a comment to teacher | | q | quit this session |
fs | find student | | ft | find tutees |
=========================================== System level command:
This is the "system" level of Ceilidh and represents a department-wide view of the system.
The commands which are available at this point are as follows.
aip : Artificial Intelligence Programming c : Introduction to Programming in C cua : Computer Use and Applications db : Introduction to Ingres using SQL mus : Music harmonisation obj : Object Oriented Methods pr1 : Introduction to C++ programming: the nuts and bolts pr2 : C++ programming part 2: Programming in the large swt : Software Tools
The code before the colon is the name you will use to select the course.
The stored papers are: ASQA : Automated Software Quality Assessment CAL : The Ceilidh Courseware System CLI : The command line interface ceilidh Courseware : Courseware to support the teaching of programming Install : Installer's Guide Oracle : The "oracle" output recogniser Plag : Departmental plagiarism and late work policy Qu-ans : The question/answer marking program Student : Student Guide to Ceilidh Teacher : Teacher Guide to Ceilidh Choose a paper :
which lists a selection of the available papers. If you reply with the short name of the paper (the first word on the line), the paper will be shown on the screen a page at a time through a paging command such as more (defined by your $PAGER environment variable). Diagrams may not appear correctly if you are viewing the papers on a terminal wich does not support graphics in PostScript.
For courses with student registers, the following commands are also available
axs : Anjlee Shah : course cua mxs : Mitesh Kirit Shah : course pr1 nxs : Nandini Shah : course cua nxs : Nandini Shah : course pr1 sns : Sukeshi Narendra Shah : course pr1
See below for discussion of the clp and co commands, both of which occur at many places in Ceilidh.
In general you will wish to move fairly soon to work on a specific course which you are studying. A particular course is entered using the sc (select course) command by typing for example
sc pr1
followed by return to enter the course "pr1". You must use lower case/upper case (small and capital) letters exactly as requested. If the given name is not a valid course, all available course names will be listed and a valid one should be selected.
The system level can be bypassed by calling Ceilidh to enter a particular course directly with a flag argument -c as in the example
ceilidh -c pr1
which will start up Ceilidh in the course pr1 directly. You will find this quicker, and it is more efficient for the computer. Since you will be making extensive use of the Ceilidh system, you will generally find it simplest if you abbreviate this command using the alias facility of the C-shell as in
alias pr1 "ceilidh -c pr1"
This will enable you to type
pr1
to enter the course directly. This alias command should be added to your .cshrc file (you will be given more details in lectures) if it is not already there.
The first time you call up a particular course you will be asked if you wish to register for the course. This assists the administration of the course.
When you have selected a particular course, the menu shown in figure 2 should now be displayed on the screen.
Course and unit menu for course pr1 unit 1
lu | list unit titles | | su | set unit code |
lx | list unit exercise titles | | sx | move to named exercise (1) |
lux | list units and exercises | | state | current exercise state |
vn | view notes on the screen | | pn | print notes on letter13 |
csum | read course summary | | usum | read unit summary |
vm | view all marks | | co | make a comment to teacher |
clp | change printer | | | |
h | for more help | | H | more help |
kh | keyword help | | | |
q | quit and save | | q! | quit Ceilidh, no saving |
=========================================== Course level command:
This menu is identical whether it is obtained from the system level of
ceilidh -c pr1
We are now in a chosen course. The various possible commands have the following significance.
Units in course pr1 Unit 1 : Background Unit 2 : Elementary programming Unit 3 : Conditionals Unit 4 : Loops Unit 5 : Functions Unit 6 : Miscellany 1 Unit 7 : Arrays and structures Unit 8 : File input and output Unit 9 : Miscellany 2
The current state of course "pr1" is unit 2 ex vc weight 2 closed 96.11.05-08.28.29 unit 5 ex rd1 weight 10 closed 96.11.18-12.03.33 unit 6 ex max weight 1 closed 96.11.25-12.13.28 unit 6 ex int weight 10 closed 96.11.25-12.14.05 unit 7 ex rev weight 8 closed 96.12.02-12.18.46 unit 7 ex bg1 weight 12 closed 96.12.02-12.19.30 unit 8 ex for weight 40 open unit 8 ex tot weight 15 open
For each exercise set by the teacher, the command gives the unit and exercise codes, the weighting attached to the exercise (showing how important the marks are in the overall course total) and whether the exercise is closed (and the date it was closed, you can no longer submit solutions) or open (you can submit solutions).
http://www.cs.nott.ac.uk/~ceilidh
ceilidh -c pr1
the quit will return you to your shell. If you entered the course level from the system level using first
ceilidh
and then
sc pr1
for example, the quit returns you to the system level of Ceilidh, and you will need another quit to return to your shell.
Your current unit and exercise will be noted, so that when you re-enter Ceilidh, you will default to the same unit and exercise as when you left. If you wish to quit without saving your current state, use
q!
instead.
The following two commands occur at several points in Ceilidh.
The h (help) command offers you a brief summary of each command on the menu. The H command will show you the student guide (this document!) on-line. The kh (keyword help) asks you for a keyword, and searches all the Ceilidh documentation for that keyword. For each file in which it finds the keyword, it shows the name of the file, the line number (to give you a feel for where to look) and the actual line (so that you can see whether the context is relevant).
To work on your coursework, you will need to move from the "unit" level of Ceilidh into the "exercise" level.
If, for a given coursework, you are asked to solve a nominated coursework exercise in this week's unit of the course, you will perhaps first select the appropriate unit using the su command, then list the names of all the exercises in this unit using the command
lx
at the course/unit level, and then enter the required exercise using
sx 2
for example, to select exercise 2 of the current unit.
It is worth noting that at the course level, while the sx (select a particular exercise) command moves you to another level, the "exercise level" with another menu, the su (select a unit) command leaves you at the course level with the same menu. You can move around the different units in a course at will without changing your level in the system. To attempt exercises you must enter the exercise level, which has different menus depending on the type of exercise you are asked to complete. These exercises include compiled language exercises, interpreted language exercises, question/answer exercises and text submission (essay) exercises. For the moment we will consider the compiled language exercise menu.
If you type
sx 1
to select exercise 1 in the current unit of the course you will see the menu given in figure 3.
Compiled language menu for course "pr1" unit "1" exercise "1"
vq | view question on the screen | | pq | print question on draft13 |
cq | copy question to file | | | |
co | make a comment to teacher | | set | set up coursework |
h | for context help | | H | for general help |
q | to return to calling menu | | q! | quit Ceilidh |
ed | edit your program | | cm | compile your program |
cv | compile verbose | | cks | check whether submitted OK |
run | run program interactively | | rut | run yours against test data |
sub | submit/mark your program | | std | look at the test data |
rtn | run solution executable | | rtt | run sol'n against test data |
state | check details of exercise | | |
=========================================== Type compiled language command:
This is the level at which most of your work will be undertaken. Each exercise will have been set up by the teacher, and will include a question, a skeleton solution, and all the necessary testing information.
Your normal sequence of activity at this level might be as follows. First use
vq
(view question) to look at the question, or pq to print it out. You may need to study the question for a while before attempting its solution on the computer. It may be sensible to view or print it at least a day before the laboratory session during which you solve the problem.
There is also a command cq which copies the question to a file in your directory. This can be useful for extracting test data, or for transferring the question to a floppy disc.
You will then use
set
to set up a skeleton solution. This command typically puts an outline of the required program into your directory, to give you a flying start in solving the problem. In more complex exercises later in the course, it may set up other data files as well.
At this stage you can start to develop your program, using the commands
Note: Not all of the options in the menu will appear on the screen at all times; if there is no executable, for example, the running options will not appear. If you have not executed set to obtain an outline program, the ed command for editing your program will not be shown.
Once you have successfully compiled your program and tested it to your satisfaction, the system is ready to mark and submit it. It does this by looking at your program source code (checking that it is indented correctly, for example), and running your compiled program against various sets of test data and seeing that it produces the correct results. At this stage you may wish to use the following commands.
When you have performed enough tests to convince you that your program is correct (and only then) you should ask the system to mark and submit it using the
sub
command.
The exact form in which the computer responds with your marks depends on how the teacher has set up the system. A typical reply might be something like that shown in figure 4.
Analysis of Dynamic Correctness
item | mark | out of |
Simple test | 50 | 50 |
Negative distance | 0 | 10 |
Check "feet" "ins" | 40 | 45 |
Inches > 12 | 10 | 10 |
Negative inches | 0 | 10 |
Score for Dynamic Correctness is | 80.0% | |
Mark summary | ||
category | mark | out of |
Dynamic correctness | 55 | 69 |
C++ typographic style | 12 | 17 |
C++ complexity measure | 7 | 7 |
C++ program features | 3 | 7 |
Overall mark awarded | 77 | 100 |
The significance of this output is as follows.
Firstly your compiled program is run against several sets of test data. The system looks in the output generated by your program for evidence that you have produced the correct answer; this can be a non-trivial operation if your program does not print its results clearly! Each test produces one line of output, giving you a brief summary of the test, and the score you have been awarded. Different tests will be marked out of different totals, depending on the importance of the test.
The marks from these runs against test data are then combined into a single "dynamic test" result for your program.
This result is then scaled out of a particular value, and the next few lines give marks for various "static tests" (tests performed by looking at your program source, rather than by executing it) such as "typographic style" (your program layout, choice of identifiers, use of comments, etc, see the ASQA paper [ref 2] [content] for details of the theory, and Cleve Gibbon's document [ref 3] [content] for Ceilidh's implementation, copies are stored on Ceilidh), "complexity" (the complexity of your program is compared with the complexity of the course developer's model solution; the two should not differ by too large a factor) and lastly "features" (the computer looks for specific good or bad programming features associated with this particular coursework).
All these marks are then combined with their weightings into a single mark which you are awarded. The Ceilidh system retains a copy of your program and of the mark awarded for future reference.
If you are happy with the mark awarded, you can quit at this stage. Alternatively, you may try to improve your mark and try again. It is your last mark which is recorded as your actual mark for this coursework.
To check that the mark has been correctly stored by the computer, use the command
cks
(check submission) which will show you what the computer has recorded. You should always use this checking facility after every exercise.
Analysis of Dynamic Correctness
item | grade | weight |
Simple test | A | 50 |
Negative distance | E | 10 |
Check "feet" "ins" | D | 45 |
Inches > 12 | A | 10 |
Negative inches | E | 10 |
Grade for Dynamic Correctness is | C | |
Mark summary | ||
category | grade | weight |
Dynamic correctness | C | 69 |
C++ typographic style | D | 17 |
C++ complexity measure | A | 7 |
C++ program features | D | 7 |
Overall grade awarded | B |
The teacher can alter the above marking output in various ways.
There is also a command at the course/unit level "vm" which lets you view ALL your marks submitted so far. You can either view all the marks you have ever submitted, or just the last mark for each exercise (which is the one that matters). Typical output viewing just the final mark for each exercise might be as shown in figure 5.
Student | Pat R Gross | |||
Unit 1 | exercise 1 | mark 100/100 | avge 98/100 | weight 1 |
Unit 2 | exercise 1 | mark 24/100 | avge 96/100 | weight 2 |
Unit 2 | exercise 7 | mark 26/100* | avge 93/100 | weight 3 |
Unit 2 | exercise 8 | mark 18/100 | avge 93/100 | weight 4 |
Unit 3 | exercise 8 | mark 100/100 | avge 92/100 | weight 5 |
Unit 3 | exercise 9 | mark 100/100 | avge 94/100 | weight 5 |
Unit 4 | exercise 3 | mark 34/100 | avge 93/100 | weight 4 |
Unit 4 | exercise 4 | mark 31/100 | avge 96/100 | weight 3 |
Unit 4 | exercise 7 | absent | avge 87/100 | weight 5 |
Unit 4 | exercise 8 | mark 98/100 | avge 87/100 | weight 8 |
Unit 4 | exercise 9 | absent | avge 84/100 | weight 5 |
Unit 5 | exercise 1 | mark 100/100 | avge 98/100 | weight 4 |
Unit 5 | exercise 4 | mark 93/100 | avge 92/100 | weight 7 |
Unit 5 | exercise 7 | absent | avge 81/100 | weight 8 |
Unit 6 | exercise 2 | absent | avge 92/100 | weight 4 |
Unit 6 | exercise 4 | absent | avge 98/100 | weight 4 |
Unit 6 | exercise 6 | mark 38/100 | avge 93/100 | weight 4 |
Unit 7 | exercise 8 | mark 100/100 | avge 98/100 | weight 8 |
Unit 7 | exercise 9 | absent | avge 88/100 | weight 8 |
Unit 7 | exercise bg2 | absent | avge 93/100 | weight 15 |
Unit 7 | exercise n1 | absent | avge 95/100 | weight 15 |
Unit 8 | exercise 2 | mark 100/100 | avge 90/100 | weight 15 |
Unit 7 | exercise n2 | mark 100/100 | avge 83/100 | weight 30 |
prg Pat R Gross ( 126-th in class) Mark 52/100, Scaled 24/100 Submitted 15 (1 late) out of 23 Attempts 54
This output shows, for each exercise forming part of the assessment so far, the mark you were awarded (or a grade, or "absent" if not submitted, the mark followed by a start if the work was late), the class average for that exercise (some exercises are hard, some are easy, compare yourself with the class average to see how you are doing), and the weighting to be attached to that exercise in the overall total.
The penultimate line of the "vm" output gives your position in the class, and your overall mark or grade (formed by adding the weighted marks of all the exercises together). If a mark is given, a scaled mark will also appear; Ceilidh marks are normally scaled down to comply with standard educational borderlines. A pass mark in Ceilidh is generally about 70%, in examinations about 40%.
The last line gives the number of the exercises you have submitted, the number submitted late in brackets, and the total number of exercises, and you total number of submissions.
Notes:
Other commands at this level are:
Max no of submissions (0 for no limit): value is "5" Minimum seconds gap between submissions: value is "300" View test data (yes or no): value is "yes" You have a source Compiled Language Exercise You have no executable (use "cm"?) You have made 6 submissions so far Marking weights: 95 Dynamic 5 Typographic Number of students submitted so far: 25
If you have completed at least one submission of your program, you will see a further command
ret
on the menu. This retrieves your submitted source code back into your own directory.
When you quit ( q ) from the exercise level of Ceilidh, you return to the course level of Ceilidh, where you may perform other activities, or execute another quit to leave Ceilidh completely.
The menu and process for interpreted language exercises is similar to the compiled language menu described in the previous section. The compilation commands are, of course, excluded.
The exercise level menu for these exercises is completely different from that of the Compiled Language menu shown above.
For Question/Answer exercises you are given the following menu.
Question/answer exercise menu for course "tst" unit "1" exercise "qu":
vq | view questions | | pq | print questions |
ans | answer questions and submit | | cks | check submitted |
h | help | | q | return to calling menu |
Type question/answer command:
The options have significance as follows.
Some question/answer exercises are purely for collecting answers, such as those to the end-of-course questionnaire. Other will involve answers which are marked. The questions should make clear which of these cases holds.
For text submission (essay) type exercises, the system gives the following menu.
Text submission menu for course "tst" unit "2" exercise "1": Type
vq | view question | | pq | print question |
set | setup a skeleton document | | h | help |
q | return to calling menu | | q! | quit Ceilidh |
ed | edit your document | ||
sub | submit your document | | cks | check submission |
Type text submission command:
At most points in Ceilidh, there are three additional commands available.
As you become a more experienced programmer, you may find the system becomes restrictive. Courses that teach modular programming and hence require more complicated compilation techniques often require the student to leave the system to compile their solutions. To overcome these problems an alternative interface to the system has been developed.
This is a completely new interface in which, instead of using menus, each Ceilidh facility is represented by a UNIX command. It can be used on any terminal. Because there are no menus in this system, it is recommended that you use it only after some experience of the menu system. See also the CLI [ref 4] [content] document.
To use this facility, there are two things you must do. First execute
~ceilidh/bin.cli/set.env
to set up an appropriate environment. You will need to check with your teacher just where the ~ceilidh directory is on the machine. This needs to be done once only (unless at a later stage you wish to reset your environment).
In order to use these commands, the directory containing them must be included in your PATH variable. To do this, type
source ~ceilidh/bin.cli/source.csh
at the start of each logged-on session during which you wish to use Ceilidh.
From here on, type
commands
to get a list of Ceilidh commands currently available, or
status
to show the currently set course, unit and exercise.
The commands follow generally the pattern of the menu commands, but a few have had to be renamed to avoid clashes with existing commands.
A typical starting sequence might be
Command | Purpose |
commands | See commands available |
set.cse pr1 | Select course "pr1" |
commands | See extra course commands |
lu | List unit titles |
set.unit 4 | Set a particular unit |
lx | List exercise titles |
set.ex 4 | Select exercise to solve |
vq | View question |
setup | Set up program skeleton |
ep | Edit program |
cm | Compile program |
run | Run program |
sub | Submit |
cks | Check submitted |
With this interface, you can execute other non-Ceilidh commands or even log out at any point. When you resume, the course, unit and exercise will remain set just as when you last issued a Ceilidh command (although you may choose to execute "status" to check the settings). This interface will be particularly useful for the "pr2" course, in which you need to perform all compilations yourself.
With this interface there is never any need to use "q" to quit the various levels of Ceilidh.
At any time, type
commands
to remind yourself of the commands currently available. The command
status
shows the currently set course, unit and exercise.
Typing
~ceilidh/bin.cli/set.env
will clear out the currently set values for course, unit and exercise. You will then need to use "set.cse", "set.unit" etc to reset them to the values you require.
At certain times, the teacher may close a complete course, or a unit, or an exercise. These perhaps represent parts of the course which are under development, or which must be kept unmodified for administrative reasons.
If a prompt appears as, for example
All submissions or a summary [sa]:
the letters in between the square brackets give the alternative replies, the first one is the default if you just hit "return".
The Ceilidh system is an essential part of your learning process; learn to make good use of it.
Copyright Eric Foxley, Nottingham 1996
Notes converted from troff to HTML by an Eric Foxley shell script, email errors to me!