Skip to content

Instantly share code, notes, and snippets.

@lkaihua
Last active July 17, 2017 10:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lkaihua/876b2e8e19b559a305a6b1329620e8a2 to your computer and use it in GitHub Desktop.
Save lkaihua/876b2e8e19b559a305a6b1329620e8a2 to your computer and use it in GitHub Desktop.
idea on new system

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

Workflow

Test Givers

For test givers, the workflow will be:

  1. 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)
  2. Export it as a collection of
    • markdown files (.md,.rmd)
    • plot images (.png,jpg,etc.)
  3. Preview as a student
    • in a web browser
    • check questions and parameters
  4. Upload exported collection to the server
  5. Done!

Students

For students, they will:

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

System admin

As the administrator, she/he will:

  1. Install Node.js to render self-customized R markdown documents into web html pages.
  2. Install a CMS system
    • for students to log in, save, edit, log out
  3. Implement a uploading service
    • usually a ftp service

Example

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. 

Advantange

  1. Compared to Latex, R Markdown is much easier to implement, customize and more efficient in compilation.

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

  3. With self-customized functions in Node.js, it is convenient to extend the syntax for furthur individual needs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment