45
45
which is always visible in IVLE. Clicking the IVLE logo always returns you to
48
The user ``studenta`` is enrolled in several subjects, and has several files
48
The user "studenta" is enrolled in several subjects, and has several files
49
49
already in her Subversion repository, but they aren't immediately accessible.
51
First, click all of the *Checkout* buttons, to check out the Subversion
51
First, click all of the "Checkout" buttons, to check out the Subversion
52
52
repositories. Now you can explore the sample files, for example, in the
55
Go into the ``stuff`` directory and left-click the file ``hello.py``. This will
55
Go into the "stuff" directory and left-click the file "hello.py". This will
56
56
open the build-in text editor, which lets you modify the file. Along the top,
57
there is a button marked *Serve*. Clicking this will *run* the Python code as
57
there is a button marked "Serve". Clicking this will *run* the Python code as
58
58
a CGI application -- this should open a new window which reads "Hello,
59
world!". You can also click *Run*, which will run the program in the built-in
59
world!". You can also click "Run", which will run the program in the built-in
60
60
Python console (which pops up from the bottom of the screen). This will be
61
61
much uglier, printing the CGI output.
63
* *Serve* runs Python programs as CGI applications, showing their web output.
64
* *Run* runs Python programs as command-line applications.
63
* "Serve" runs Python programs as CGI applications, showing their web output.
64
* "Run" runs Python programs as command-line applications.
66
66
Note that you can also use the console at the bottom of the screen as a
67
67
generic Python console, whenever you wish.
69
You can also serve other files, such as HTML files (try ``Welcome to
70
IVLE.html``). This will just present them as normal web pages.
69
You can also serve other files, such as HTML files (try "Welcome to
70
IVLE.html"). This will just present them as normal web pages.
72
72
Files also have full Subversion histories. If you click on a file in the file
73
view (such as ``hello.py``), and go to *More Actions ‣ Subversion ‣ View Log*,
73
view (such as "hello.py"), and go to More Actions -> Subversion -> View Log,
74
74
you will see the history of a file, and be able to "select" then view a "diff"
75
of the file. If you edit a file, you need to commit it (*More Actions ‣
76
Subversion ‣ Commit*). If you create a new file (*More Actions ‣ Directory
77
actions ‣ New file*), you need to add it (*More Actions ‣ Subversion ‣ Add*),
75
of the file. If you edit a file, you need to commit it (More Actions ->
76
Subversion -> Commit). If you create a new file (More Actions -> Directory
77
actions -> New file), you need to add it (More Actions -> Subversion -> Add),
83
83
This student has already completed a project, and is ready to submit it. Go
84
into the *Intermediate IVLE ‣ mywork* directory. Select ``phase1.html`` and
85
choose *More Actions ‣ Publishing ‣ Submit*. This takes you to the Submit
84
into the Intermediate Ivle -> mywork directory. Select "phase1.html" and
85
choose More Actions -> Publishing -> Submit. This takes you to the Submit
88
Choose to submit to Phase 1, and click *Submit Project*. You should see a page
89
telling you the submission was successful, with a link to *Verify*. Verify
90
shows you exactly which files were submitted, and their contents at the time
91
of submission (if the files have changed since then, you'll still see the
92
submitted version). You should verify after each submission -- you can verify
93
any submitted project from the subject page.
88
Choose to submit to Phase 1, and click Submit Project.
95
If you go into the *Intermediate IVLE ‣ group1* directory, you will be able
96
to make a group submission to Phase 2 (which is a group project). Note that
97
the Phase 3 submission has already closed.
98
Also note that the file here (``phase2.html``) was edited by studenta and
90
If you go into the Intermediate Ivle -> group1 directory, you will be able to
91
make a group submission to Phase 2 (which is a group project). Note that the
92
Phase 3 submission has already closed.
93
Also note that the file here ("phase2.html") was edited by studenta and
99
94
studentb collaboratively, as you can see in the project's revision log.
104
Click on *Intermediate IVLE – Subject Home* from the home screen (or, from
105
the IVLE pulldown menu, choose *Subjects* and select Intermediate IVLE). There
106
is one worksheet, Worksheet Basics. Clicking this takes you to the worksheet,
99
Click on Intermediate Ivle -> Subject Home from the home screen (or, from the
100
IVLE pulldown menu, choose Subjects and select Intermediate Ivle). There is
101
one worksheet, Worksheet Basics. Clicking this takes you to the worksheet,
107
102
where students are challenged by Python questions.
109
After reading the worksheet, attempt the first simple programming question,
110
which is to write the "Hello world" program.
112
First, click *Submit* without writing any code, and note that the system
113
automatically runs a test case, which fails. Now change the code to be "almost
114
right" (for example, write ``Hello world`` instead of ``Hello, world!``), and
115
press *Submit* again. It will tell you that you almost got it right. In this
116
way, the IVLE test framework can show users that they're on the right track.
117
If you get it exactly right and click *Submit* a third time, you will pass the
120
Note that you can also click *Run*, and it will execute your solution in the
121
Python console. This doesn't cost you an "attempt", nor does it run the test
122
cases. It just lets you test it out for yourself before making an official
125
Back on the subject page, you will notice that the exercise appears complete,
126
and you have been awarded a mark.
128
A sample solution to the second exercise follows::
104
After reading the worksheet, attempt the simple programming question, which is
105
to write a factorial program.
107
A sample solution follows::
137
116
f = int(raw_input())
119
First, click Submit, and note that the system automatically runs some test
120
cases, all of which fail. Now paste the solution to :func:`fac` (but not
121
:func:`main`). Clicking Submit again shows some test cases pass, but not all.
122
Finally, paste the solution to :func:`main`, and click Submit again. This
123
time, you will pass the test.
125
Note that you can also click "Run", and it will execute your solution in the
126
Python console. This doesn't cost you an "attempt", nor does it run the test
127
cases. It just lets you test it out for yourself before making an official
130
Back on the subject page, you will notice that the exercise appears complete,
131
and you have been awarded some marks.
140
133
A lecturer's view
141
134
=================
143
Log into IVLE as a lecturer (username: ``lecturer``, password: ``password``).
144
Many of these things are also possible as a tutor (try username: ``tutor``,
145
password: ``password``).
136
Log into IVLE as a lecturer (username: 'lecturer', password: 'password'). Many
137
of these things are also possible as a tutor (try username: 'tutor', password:
147
140
Being a lecturer or tutor is a per-subject privilege, so it only applies to
148
141
certain subjects. All of your special powers are under the subject home for
149
142
the subjects you are a tutor in. Note that everything a lecturer can do, an
150
143
admin can also do, for all subjects in the system.
152
Click *Intermediate IVLE – Subject home* (the one which does not display a
153
semester -- implying the currently active semester). From here, you will see
154
largely the same view as a student, but with more buttons. *Change details*
155
allows you to modify the subject properties. *Administer enrolments* allows
156
you to add existing IVLE users as students or tutors of the subject you are
157
teaching, change the roles of existing members, and revoke enrolments.
145
Click "Intermediate IVLE - Subject home". From here, you will see largely the
146
same view as a student, but with more buttons. "Change details" allows you to
147
modify the subject properties. "Enrol users" allows you to add existing IVLE
148
users as students or tutors of the subject you are teaching (this is currently
149
an irreversible action).
159
151
Managing projects
160
152
-----------------
162
Click *Manage projects* to go to the project management screen. Note that the
154
Click "Manage projects" to go to the project management screen. Note that the
163
155
3 projects are grouped into "Solo projects" (projects submitted by each
164
156
individual student) and "Group projects". Try adding a new Solo project, by
165
clicking on *Add a new project* within that box. The fields should be fairly
157
clicking on "Add a new project" within that box. The fields should be fairly
166
158
self-explanatory.
161
You can't currently edit or delete a project after it has been created.
168
163
Group projects are complicated by what we call "project sets". A "project set"
169
164
is a set of group projects where the student groups are the same throughout.
170
165
For instance, you will see Phase 2 and Phase 3 inside the same project set
171
166
box. This means students will get into groups of 3 to submit Phase 2, and then
172
167
the same group will submit Phase 3.
174
Clicking *Manage groups* lets you put students into groups for a given project
169
Clicking "Manage groups" lets you put students into groups for a given project
177
Click *Add a new project set* and enter a group size of 6. Then, create a
172
Click "Add a new project set" and enter a group size of 6. Then, create a
178
173
project in the new set. Each student must get into a new group for each
179
174
project *set*. Note also that the groups will share a Subversion repository
180
175
for all projects in a set, but if you create a new set, the students will have
181
176
to start using a new repository.
184
You can't delete a project set after it has been created (this could cause
185
problems for groups and their repositories).
187
178
Usually, the hassle of getting into new groups and creating new repositories
188
means that you will want to create just two project sets for a subject: one
189
for solo projects, and another for group projects.
194
Lecturers and tutors can view any student or group's project submission, using
195
an external Subversion client. As submissions are really just Subversion
196
commits, you can examine a student's work by simply checking out the correct
197
revision of the repository.
199
From the offering page, click *View submissions* under the project of interest.
200
This takes you to a page which lists the latest submissions from every student
201
(presumably you will just see the submission made by ``studenta`` earlier in
202
this tour). Next to each submission is a command line, beginning with
203
``svn co``. For instance, you might see the line::
205
svn co --username lecturer -r7 http://svn.ivle.localhost/users/studenta/ivle-102/phase1.html
207
Paste this line into a command-line (or, if you use a GUI Subversion client,
208
use the username, revision and URL given). Subversion will likely prompt for a
209
password. For the sample data, this password is ``password``, but in general, it
210
will **not** be your normal IVLE password. You can learn your Subversion
211
password by opening a Console in IVLE and typing::
214
ivle.config.Config()['user_info']['svn_pass']
216
This will check out the student's work into the current directory, to inspect.
218
You can also try to check out the group submission from Phase 2.
221
It is currently not possible to check out a single file (not a directory)
222
submission using the instructions given. Instead, run ``svn cat``, and
223
redirect the output into a file.
179
means that you will want to create a single project set for a subject, and
180
just partition the projects into solo and group projects.
225
182
Managing worksheets and exercises
226
183
---------------------------------
228
Returning to the subject home page, click *Manage worksheets*. On this page,
229
you will see all of the worksheets for the subject. Here you can edit
230
worksheets, add new ones, and re-order them. You can also edit any worksheet
185
Return to the subject home page. Click "Manage worksheets". On this page, you
186
will see all of the worksheets for the subject. Here you can edit worksheets,
187
add new ones, and re-order them. You can also edit any worksheet from its own
233
190
To get an idea of what a worksheet looks like in edit mode, click the edit
234
191
action (pencil) next to "Worksheet Basics".
236
* The *URL name* is the name of the worksheet as it appears in URLs.
237
* The *Assessable* checkbox will make the exercises in the worksheet count
193
* The "URL name" is the name of the worksheet as it appears in URLs.
194
* The "Assessable" checkbox will make the exercises in the worksheet count
238
195
towards each student's worksheet mark, if checked. Uncheck it for
239
196
informational worksheets.
240
* The *Format* selection controls the format used to write the worksheet in
241
the box below. Leave it on *reStructuredText* unless you have a reason not
197
* The "Format" selection controls the format used to write the worksheet in
198
the box below. Leave it on "reStructuredText" unless you have a reason not
244
201
Now, you can edit the worksheet content in reStructuredText. The existing text
245
202
briefly explains this format. See `A ReStruecturedText Primer
246
203
<http://docutils.sourceforge.net/docs/user/rst/quickstart.html>`_ for a full
247
guide. Note that the exercises themselves are not defined in the worksheet.
248
They are separate resources, which can be shared across subjects. Exercises
249
can be embedded with a line like this::
204
guide. Note that the exercises themselves are not in the worksheet. They are
205
separate resources, which can be shared across subjects. Exercises can be
206
embedded with a line like this::
251
208
.. exercise:: factorial
253
Click *Manage exercises* to see the exercises (in the sample data, just
254
``factorial``). An exercise is a very complex thing, due to the fact that it
210
Click "Manage exercises" to see the exercises (in the sample data, just
211
"factorial"). An exercise is a very complex thing, due to the fact that it
255
212
runs automated testing on the student code. The details are outside the scope
256
213
of this tour. Hopefully, you can figure out how they work by examining the
257
existing ``factorial`` exercise.
214
existing "factorial" exercise.
259
216
If you are game enough, create a new worksheet from scratch. If you are
260
217
*really* game, create a new exercise for your worksheet.
262
Viewing worksheet marks
263
-----------------------
265
You will probably have already noticed that the lecturer's worksheet view is
266
not quite like the student's. It has a table at the top which shows some
267
statistics about how students in this subject are going with each exercise.
268
(Depending on settings, tutors may also be able to access these stats.)
270
Lecturers (not tutors) can also get more specific feedback on individual
271
students by selecting "View worksheet marks" at the bottom of the subject
272
page. This shows the marks in each worksheet, and in the subject overall, for
273
each student, and can be used to calculate each student's final grade.
275
The "Download as CSV file" link provides these same statistics in CSV format,
276
which can be easily parsed.
278
219
An administrator's view
279
220
=======================
281
Log into IVLE as an admin (username: ``admin``, password: ``password``).
283
Administrator users in IVLE have significant privileges. Note, however, that
284
for technical reasons, admins cannot read or write other users' files. This
285
requires root access on the machine IVLE is installed on.
290
Firstly, pull down the IVLE menu (top-left). There is an additional item for
291
admins -- the *Users* page. This lists all users with an account in IVLE.
292
Clicking on a username takes you to the user's profile page. Try it with the
295
The profile page is exactly the same as the user himself would see it, but
296
with a few more buttons on the side. *Change password* is the same as the
297
user's own *Change password* page. However, *Reset password* is a special
298
admin page which lets you change a user's password without knowing the old
299
one. *Administer user* also lets you change administrative settings for the
300
user, such as their full name (more formal than display name, which the user
301
themselves can change) and student ID. You can also add/remove admin status
302
for, or disable/enable (i.e., ban from IVLE) any user (except yourself, of
303
course -- that could be bad).
306
Use this with care. Making a user an admin gives them complete control over
307
the system. They could even revoke *your* admin rights!
309
Administering subjects and offerings
310
------------------------------------
312
Admin users also enjoy the same privileges as lecturers, for all subject
313
offerings on the system. In addition, admins can enrol users in an offering as
314
lecturers (this is the only way to become a lecturer), and change or delete a
315
lecturer's enrolment. Go to the subject page for Advanced IVLE and enrol the
316
user ``lecturer`` as a lecturer in the subject.
318
Admins can also administer subjects. Here it is important to distinguish
319
between a "subject" (a course on a specific topic which is repeated over a
320
number of semesters or years) and an "offering" (a particular instance of a
321
subject, for one semester). Lecturers can administer *offerings* they are
322
enrolled in, but not *subjects*.
324
As an admin, go to the *Subjects* page. You will see a link *Manage subjects
325
and semesters*. The list at the top of the page shows all registered
326
subjects. Click *Create new subject* to create a brand new subject (i.e., a
327
new course). Call it "Introduction to Programming", with the URL name
328
``intro-prog`` and subject code 200101.
330
Now we have created a *subject* but not an *offering*, so nobody will be able
331
to teach or enrol in this subject. From the "Introduction to Programming"
332
page, click *Create new offering*. Select the semester in which the subject
333
will be first taught. If you wish to create the first offering of a semester
334
(e.g., 2011 semester 1), you will have to create a new semester first. Type
335
in a subject description. (Note that each offering has an independent
336
description.) Once you have created an offering, you can enrol lecturers, and
337
they can in turn enrol students.
339
Lecturers can take over administration duties of an offering (such as editing
340
the description and managing projects), however it remains the admin's duty to
341
administer the subjects, including creating new offerings each semester and
344
Administering semesters
345
-----------------------
347
An important duty of the administrator is controlling the *state* of each
348
semester. Return to the *Manage subjects and semesters* page. Note the
349
*Semesters* table contains a list of all known semesters, and whether they are
350
"past", "current" or "future".
353
IVLE could automatically create and manage semesters based on the system
354
clock, but it presently does not. That is because your institution may have
355
a different concept of a "semester" to ours. (For example, what are the
356
semester start and end dates?) IVLE has therefore been designed to require
357
admins to manually activate new semesters and disable old ones.
359
In the sample data, 2009 semester 2 is the "current" semester. Let us assume
360
that we are moving into the start of 2010. Edit 2009 semester 2 and set its
361
state to "Past". Then, edit 2010 semester 1 and set its state to "Current".
362
This affects the system in several ways. Mainly, it just changes the UI for
363
all users, in terms of which offerings are presented as "current".
366
Marking a semester as anything other than "current" will make it impossible
367
for students enrolled in offerings for that semester to submit projects.
368
Only do this after the semester has fully closed.
370
It is possible for multiple semesters to be marked as "current", if this is
371
desired. Therefore, there is no need to disable one semester before enabling
377
Unfortunately, there are still a few tasks which admins need to do which
378
haven't been implemented in the UI for the IVLE web application. These tasks
379
are available as command-line scripts which can be run by someone with root
380
access on the machine IVLE is installed on. They are gradually being migrated
381
over to proper UI features in IVLE itself.
383
Details on these scripts can be found in :ref:`ref-admin-scripts`.
222
Log into IVLE as an admin (username: 'admin', password: 'password').