kainliu

7/17/2017 - 8:50 AM

idea on new system

Here I would like to propose the desgin of a web-based e-learning system.

For test givers, the workflow will be:

- Create a document of questions in
`RStudio`

with`R Markdown`

- use all R and R markdown legacy
- use a new defined function to replace variables(see Example below)

- Export it as a collection of
- markdown files (
`.md`

,`.rmd`

) - plot images (
`.png`

,`jpg`

,etc.)

- markdown files (
- Preview as a student
- in a web browser
- check questions and parameters

- Upload exported collection to the server
- Done!

For students, they will:

- Login the system
- See a list of individually selected questions with randomly selected parameters
- Answer and click save.

As the administrator, she/he will:

- Install
`Node.js`

to render self-customized`R markdown`

documents into web`html`

pages. - Install a CMS system
- for students to log in, save, edit, log out

- Implement a uploading service
- usually a
`ftp`

service

- usually a

This is a `R markdown`

example that a test giver will assemble questions.

```
### Problem 1
Two numbers N and {{M}} have LCM = {{LCM}} and GCF = {{GCF}}. Find N.
'''{r echo=FALSE}
df <- data.frame(M = c(16, 8, 4),
LCM = c(48, 24, 12),
GCF = c(8, 4, 2)
)
df
'''
```

M | LCM | GCF |
---|---|---|

16 | 48 | 8 |

8 | 24 | 4 |

4 | 12 | 2 |

And one student will see:

```
### Problem 1
Two numbers N and 16 have LCM = 48 and GCF = 8. Find N.
```

The idea is to using a data frame to output all possible value range/combinations.

Another example is as follows,

```
### Problem 2
If the area of a circle is {{N}}pi square feet, find its circumference.
'''{r echo=FALSE}
df <- data.frame(N=(3:6) ^ 2)
df
'''
```

N |
---|

9 |

16 |

25 |

36 |

The student will see,

```
### Problem 2
If the area of a circle is 25pi square feet, find its circumference.
```

Compared to

`Latex`

,`R Markdown`

is much easier to implement, customize and more efficient in compilation.With

`R Markdown`

, we could fully use the R package, functions, markdown syntax, equations, plots, tables to generate high-quality documents.With self-customized functions in

`Node.js`

, it is convenient to extend the syntax for furthur individual needs.