Skip to content

Commit f5077b0

Browse files
committed
started to put the finishing touches on other bits of doc
1 parent 8460c9d commit f5077b0

File tree

3 files changed

+37
-195
lines changed

3 files changed

+37
-195
lines changed

INSTRUCTIONS.md

+26-88
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@ been freshly installed and be mostly unmodified. The standard Ubuntu image from
66
etc...) will work perfectly.
77

88
If you are comfortable with the technology involved in building Glance and don't want to
9-
use the "default" configuration for some reason then of course you can just build it yourself. To that end we also
10-
provide a list of software prerequisites and a brief description of the build structure. Most people should try and use
9+
use the "default" configuration for some reason then of course you can just build it yourself. Most people should try and use
1110
Ubuntu 16 however, as this has been well tested and we provide a number of helpful scripts for installations with that OS.
1211

1312
The guide does assume very basic familiarity with the use of a bash shell on Ubuntu, though all commands to be executed
1413
are listed verbatim and explained.
1514

16-
### Installing Glance on Ubuntu 16 (the first path)
15+
### Installing Glance on Ubuntu 16
1716

1817
1. Check that the packages already installed on your server are up to date:
1918
```bash
@@ -193,9 +192,11 @@ Glance's database: This can be done with the following command:
193192
an optional integer to use as a seed when randomly (uniformly) selecting student records to include in a survey.
194193
```
195194
196-
The first 3 options are compulsory, whilst the remaining 4 are optional depending on the surveys you wish to generate.
197-
When run, the above command will create surveys in the Glance database and return links where they may be
198-
accessed and conducted by instructors.
195+
The first 3 options are compulsory, whilst the remaining 4 are optional depending on the
196+
surveys you wish to generate. When run, the above command will create surveys in the Glance
197+
database and return their ids (long strings of number and letters like:
198+
`6d7ca6f2-7970-4f24-881b-4f84c0386c63`). These may be used to access surveys in a web browser,
199+
as detailed in the next step.
199200
200201
**Note**: Such a large number of options are included in the `glance-cli` tools in order to support configurability,
201202
however they also create edge cases where combinations of commands or options may fail to behave as they should.
@@ -205,14 +206,27 @@ Glance's database: This can be done with the following command:
205206
206207
Effort has been made to make the error reporting of the `glance-cli` tools fairly comprehensive. If you encounter such
207208
an error, please adjust your combination of command line options accordingly. If you encounter no error, but Glance
208-
still isn't generating surveys as you believe it should, please submit an [issue]().
209+
still isn't generating surveys as you believe it should, please submit an [issue](https://github.com/NewcastleComputingScience/student-outcome-accelerator/issues/new).
209210

210211
**Note**: The optional `random-seed` option is used if you wish to ensure that `glance-cli` generates the exact same
211212
surveys as on a previous execution (selects the same students etc...). Most of the time it can be safely ignored.
212213

213-
5. Check the surveys are working.
214+
5. Check the surveys are working in your browser of choice. You can access them at
215+
_http://server.address/index.html#survey/{id}_ where _{id}_ is the long string of characters
216+
produced by the _generate_ command. If you would like to check that a collection of surveys is
217+
working the url to use is similar: _http://server.address/index.html#collection/{id}_ where _{id}_
218+
corresponds to one of the long strings listed as a collection in the output of _generate_.
219+
220+
**Note**: _server.address_ corresponds to the ip address or domain name associated with the
221+
server on which you are setting up Glance. If you are trying to test the surveys from the same
222+
machine you should instead use _http://localhost/index..._.
223+
224+
6. Share individual surveys or collections with instructors using the links from the previous step.
225+
Once they have completed some (a simple process which is briefly explained [here](README.md)), you
226+
will wish to download their results. One way of doing this is simply to take a backup of the
227+
Glance database, which we explain later. Another way is to run the following command:
228+
214229

215-
6. Download some results.
216230

217231
### Performing miscellaneous tasks
218232

@@ -230,86 +244,10 @@ Glance's database: This can be done with the following command:
230244

231245
### Support and issues
232246

233-
If you have any issues with any of the steps in this Guide, please submit an issue here according to the following template:
234-
235-
### Other information
236-
237-
If you have followed the above guides successfully you may safely ignore this section.
238-
239-
##### Software prerequisites for Glance
240-
241-
242-
##### Glance build description
243-
244-
245-
1. Create Postgres database with correct details using the following two commands:
246-
```
247-
psql -c 'create user postgres createdb'
248-
psql -c 'create database glance_eval' -U postgres
249-
```
250-
251-
2. Download and extract datafiles from provided NCL Dropoff link.
252-
253-
3. Start the `sbt` console in the `soar` directory by executing the `sbt` command.
254-
255-
4. Once the sbt console has started, generate the database schema using the following command:
256-
```
257-
glance-evalJVM/flywayMigrate
258-
```
259-
260-
5. Unfortunately the prepackaged versions of the cli tools are failing silently at the moment. I'm figuring out why as
261-
we speak, but in the mean time run the `transform` job (which prepares sql12 data for insertion into the glance
262-
database) using the following command in sbt:
263-
```
264-
glance-eval-cli/run transform -c /Location/Of/CSClusterSessions.csv -r /Location/Of/RecapSessions.csv -m /Location/Of/NessMarks.csv -o /Directory/To/Write/Transformed/Csvs -p CSC -y 2015 -s 2
265-
```
266-
267-
6. Run the `generate` job (which creates the surveys in the glance database) using the following command in sbt:
268-
```
269-
glance-eval-cli/run generate -i /Location/Of/marks.csv --modules CSC3621,CSC3222,CSC2026
270-
```
271-
**Note** that `marks.csv` is generated by the previous job.
272-
273-
7. Run `load-support` job (which loads cluster and recap info transformed by step 5, into the glance database) using the
274-
following command in sbt:
275-
```
276-
glance-eval-cli/run load-support -c /Location/Of/clusterSessions.csv -r /Location/Of/recapSessions.csv
277-
```
278-
**Note** that `clusterSessions.csv` and `recapSessions.csv` are generated by the `transform` job.
279-
280-
8. Exit the `sbt` console and manually execute .sql dump in `glance-eval-cli/cs-surveys-bin` against the glance
281-
postgres database. This loads module titles, descriptions, keywords, and start dates/durations (where needed).
282-
283-
9. Restart the sbt console (using `sbt`).
284-
285-
10. Start the survey app with the following command:
286-
```
287-
glance-evalJVM/reStart
288-
```
289-
Once you have done this, the api is available [here](http://localhost:8080), whilst the front-end is available
290-
[here](http://localhost:12345/glance-eval/js/target/scala-2.11/classes/index-dev.html).
291-
292-
11. If you want to load specific surveys (rather than the default) then you need to use the following url structure:
293-
`.../index-dev.html#survey/{id}` where `{id}` corresponds to the uuid string for the the survey in question. E.g:
294-
295-
```
296-
.../index-dev.html#survey/13927f7f-ded8-4862-a61f-66b7dd90b709
297-
```
298-
299-
I suggest we keep a list of the links and the surveys they correspond to so that we can quickly load them at the
300-
start of each in person session.
301-
302-
### Updating (no data changes)
247+
If you have any issues with any of the steps in this Guide, please submit an issue
248+
[here](https://github.com/NewcastleComputingScience/student-outcome-accelerator/issues/new) and we
249+
will try to help.
303250

304-
1. Pull down the soar repo
305-
2. re-run `glance-evalJVM/flyWayMigrate`
306-
3. Perform steps 8-9 above.
307251

308-
### Updating (data changes)
309-
1. Pull down the soar repo
310-
2. Backup database with the `pg_dump` utility or similar
311-
3. Run `glance-evalJVM/flywayClean` then `glance-evalJVM/flywayMigrate`. **Note** that the clean command will wipe the
312-
database.
313-
4. Rerun steps 4-9 above.
314252

315253

README.md

+9-104
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,15 @@
1-
## Student Outcome Accelerator
1+
## Student Outcome Accelerator (SOAR) - Glance
22

3-
**NOTE**: This documentation is woefully out of date - watch this space.
3+
Welcome to the source code repository for Glance, a web application designed to measure the accuracy
4+
of instructors' models of student performance in higher education institutions.
45

5-
This repo contains the Soar framework for performing analytics jobs on data from Higher education. Soar is being
6-
developed as part of a HEFCE funded project, the aims of which include improving the quality of student and teacher
7-
experiences at Universities.
6+
The tool was created as part of a [HEFCE](http://www.hefce.ac.uk/) funded project at
7+
[Newcastle University](http://www.ncl.ac.uk/), focusing on "Human in the Loop" Learning analytics.
8+
It remains under active development.
89

9-
Broadly we will focus on the concept of "Human in the Loop" analytics, in order to allow faculty members to implicitly
10-
train and retrain sophisticated predictive models of student performance without expensive interventions by data
11-
scientists etc... More on that here when we know what "that" is.
10+
### How it works
1211

13-
The rest of this readme describes the modules of the Soar framework, as well as instructions for their installation
14-
and use.
12+
### Use cases
1513

16-
### Core
14+
### Using Glance at your University
1715

18-
This module contains the base datastructures, types and helper methods upon which the rest of the project depends. There
19-
is no need to separately build the Core module; it will be automatically built where needed by the other modules.
20-
21-
### Model
22-
23-
This module contains a minimal and untested spark job for producing models which predict the outcomes
24-
of student/module pairings based upon past performance.
25-
26-
If this model is successful it could be expanded upon to incorporate more sources of data, and to
27-
act as a long running web service.
28-
29-
In order to build and run the model, you will need the following pre-requisites:
30-
31-
* Java jdk 8
32-
* Sbt 13.*
33-
* Spark 2.1.0
34-
35-
Everything else will be fetched by Sbt. You can normally install sbt as a debian package (or
36-
through homebrew on OSX). Otherwise, get it [here](http://www.scala-sbt.org/download.html).
37-
38-
Assuming you have all the pre-requisites, run the following commands:
39-
40-
1. `sbt clean`
41-
2. `sbt assembly`
42-
3. `sudo ./submit.sh input_file.csv output_directory`
43-
44-
I will expand in the immediate future to allow interactive on-demand predictions from a generated
45-
or loaded model.
46-
47-
**Note**: The submit script requires sudo at the moment because the quickest fix for specifying an
48-
output location for spark's log4j logs was to use the system /var/log/ dir. Will modify to user home
49-
soon but that requires a little bit of platform specific runtime hackery so its on the todo list...
50-
51-
### Evaluation
52-
53-
This module contains code used in the empirical evaluation of various parts of Soar. Over time as we describe and
54-
perform experiments for the purposes of publication, they will be added to this module.
55-
56-
In order to make our evaluation of Soar as reproducible as possible, this module may be assembled into a single
57-
executable jar, much like the **model** module.
58-
59-
The first round of experiments evaluating Soar simply uses surveys containing samples of student marks to compare the
60-
predictive accuracy of the `ALS` algorithm employed in **model** to domain experts (teachers of modules). As such,
61-
the evaluation jar only has two functions at the moment: to generate these surveys and to read completed surveys and
62-
calculate measures of accuracy for the predictions they contain.
63-
64-
Assuming you have all the pre-requisites (which are the same as for **model**), you may build the evaluation jar
65-
using the following commands:
66-
67-
1. `sbt clean`
68-
2. `sbt install`
69-
3. `sbt evaluation/assembly`
70-
71-
Once this has finished running, you can then generate the surveys using the following command:
72-
73-
4. `sudo ./submit.sh input.csv output_directory`
74-
75-
As with executing the **model** jar, `input.csv` contains a list of Student/Module scores in the form _Student Number,
76-
Module Code, Score_. The submit.sh file contains some default command line options which you may well want to change,
77-
such as what modules you would like to generate surveys for.
78-
79-
If you would like to examine the other command line options, you can execute the evaluation jar directly with the
80-
following command (from within the project root directory):
81-
82-
`java -jar evaluation/target/scala-2.11/soar-eval.jar --help`
83-
84-
This will produce a traditional unix style help dialogue:
85-
86-
> Soar Evaluation Survey generator 0.1.x
87-
>
88-
>Usage: SoarEvalGen [options]
89-
>
90-
> -i, --input <file> input is a required .csv file containing student/module scores. Format "StudentNumber, Module Code, Percentage"
91-
>
92-
> -o, --output <directory> output is a required parameter specifying the directory to write the surveys to.
93-
>
94-
> -e, --elided e.g. 20 elided is an optional parameter specifying how many student records to partially elide in the generated surveys.
95-
>
96-
> -m, --modules e.g. CSC1021, CSC2024... modules is the list of modules for which to elide a students records. Only one module record will be elided per student. One survey is generated per elided module code.
97-
>
98-
> -c, --common e.g. CSC2024 common is an optional parameter specifying an additional module to elide student records for in *all* generated surveys.
99-
>
100-
> -s, --seed <int> seed is an optional parameter specifying a number to use as a seed when randomly selecting student records to elide.
101-
102-
Once you have executed the job, you will see that within the specified output directory, a folder has been created for
103-
each of the modules specified (except the module specified as common to all surveys, if any). Inside each of these
104-
folders is a file called `survey.csv` which may be directly opened with a spreadsheet program.
105-
106-
Those student/module scores which we would like module leaders to predict have been been given the place holder
107-
value _-1.0_ for clarity. All scores following such a negative placeholder score have been elided.
108-
109-
Please keep track of which survey file belongs to which module code, as it may be harder to tell once they have been
110-
filled in by members of staff.

SCHEMA.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ them. You can see which visualisations require which files [here](VISUALISATIONS
2222
are unlikely to be an exhaustive description of all the useful student data available to each institution. Instead they
2323
are simply the data which is needed to power Glance's various visualisations.
2424

25-
If you have any questions about the files specified in this document, please create an issue with the following format:
26-
27-
TODO: Write an issue template for reporting schema issues.
25+
If you have any questions about the files specified in this document, please create an issue
26+
[here](https://github.com/NewcastleComputingScience/student-outcome-accelerator/issues/new)
2827

2928
## Files
3029

0 commit comments

Comments
 (0)