tl; dr

사람들에게 다른 사람들을 가르치도록 가르치십시오. 그것은 영향을 극대화하는 효율적인 방법 인 것 같습니다.

  • {swirl} 은 사람들이 R에서 R을 배울 수있게합니다.
  • {swirlify} 는 Swirl 과정을 작성하는 데 도움이되는 패키지입니다.
  • 이 게시물은 Swirlify로 Swirl 과정을 시작하는 방법을 설명합니다.
  • 예를 들어, Tidyswirl 이 깔끔한 패키지 를 가르치기 시작했습니다.

Swirl

Swirl 은 다음과 같은 플랫폼입니다.

R 프로그래밍 및 데이터 과학을 사용자의 페이스대로 대화식으로 R 콘솔에서 가르칩니다.

소용돌이와 함께 배우는 것은 활동적이며 이해는 전반적으로 점검됩니다. 자신 만의 속도로 이동하고 추가 과정을 다운로드하여 새로운 것에 대해 배울 수 있습니다. 그리고 그것은 무료입니다.

시작하려면 Swirl을 설치하고로드 한 다음 콘솔에 인쇄 된 지침을 따르십시오.

Swirl이로드되고 콘솔에서 실행됩니다.

Swirl이로드되고 콘솔에서 실행됩니다.

설치할 코스 목록이 제공되지만 다른 곳에서도 다운로드 할 수 있습니다. 이 게시물은 그러한 코스를 신속하게 만들고 배포하는 방법에 관한 것입니다.

Swirlify

 

Sean Kross와 Nick Carchedi는 코스 생성을 쉽게하기 위해 {swirlify} 패키지 를 만들었습니다. 이 게시물에는 간단한 워크 플로가 포함되어 있지만 시작할 때 전체 Swirlify 지침 을 사용할 수 있습니다.

시작 및 실행

수업 용 템플릿 파일이 자동으로 채워지는 새 강의 폴더 ( ‘수업 1’)를 만드십시오. 또한 새로운 부모 코스 폴더 ( ‘New Course’)가 아직없는 경우 새로 만듭니다.

 

다음과 같은 폴더 구조가 생성됩니다.

 

lesson.yaml파일이 가장 중요한 것입니다. 기본적으로 각 질문이 텍스트로 저장되는 텍스트 파일입니다. 사용자는 수업을 진행할 때 다음 각 질문을 진행합니다.

수업 파일은 직접 편집 할 수 있지만 간단하게 내장 된 Swirlify Shiny 앱에 초점을 맞춥니다.

 

응용 프로그램은 새 브라우저 창에서 명명 된 강좌의 명명 된 강좌를 엽니 다. 왼쪽에는 새로운 질문을 만드는 곳이 있습니다. 오른쪽에서 lesson.yaml파일 자체를 볼 수 있습니다 .

Swirlify Shiny 앱은 수업을 작성하기위한 GUI를 제공합니다.

Swirlify Shiny 앱은 수업을 작성하기위한 GUI를 제공합니다.

질문의 유형이나 Swirlify 안내를 볼 수있는 ‘도움말’탭을 참고하십시오 . 기본적으로 질문 유형은 다음과 같습니다.

  • 정보 텍스트 용 ‘메시지'(질문 자체가 아님)
  • 간단한 R 표현식을 답으로 요구하는 답에 ‘명령’
  • 숫자 또는 단어 인 답변의 경우 ‘숫자’및 ‘텍스트’
  • 객관식을위한 ‘다중 선택'(위 그림에서와 같이)
  • 미디어에 대한 ‘그림’과 ‘비디오'( ‘동영상’은 사용자를 모든 URL로 안내 할 수 있음)
  • 맞춤 응답 테스트를 작성해야하는 더 긴 R 식의 ‘스크립트'(더 고급 버전입니다)

질문을 만들려면 다음 단계를 따르십시오.

  1. 왼쪽의 드롭 다운 메뉴에서 질문 유형을 선택하십시오.
  2. 텍스트 상자를 채우십시오 (올바른 답을 입력하고 ‘답안 테스트에서 답안 만들기’버튼을 누르면 답변 테스트 상자가 완성됩니다)
  3. ‘Add Question (질문 추가)’버튼을 클릭하면 파일에 추가 된 질문을 볼 수 있습니다 (오른쪽)
  4. ‘수업 저장’을 클릭하십시오.
  5. test_lesson()오류를 찾기 위해 실행
  6. ‘데모 레슨’을 클릭 해보십시오.

질문을 만들고 답안 테스트를 생성하여 수업에 추가하십시오.

질문을 만들고 답안 테스트를 생성하여 수업에 추가하십시오.

공과가 끝날 때까지 계속 질문을 추가하십시오. 그때:

  1. 실행 add_to_manifest()을 클릭하여 MANIFEST파일에 수업을 추가 합니다 (아직없는 경우 코스 디렉토리에 만들어집니다). 여기에있는 수업은 선언 된 교과 과정의 일부로 인식됩니다.
  2. 인수 new_lesson()를 변경 lesson_name하고 MANIFEST에도이 수업을 추가하는 것을 잊지 않고 새로운 것을 작성하는 데 사용하십시오 .

다음과 같은 폴더 구조로 끝나야합니다.

수업이 끝나면 과정을 공유 할 준비가 된 것입니다. 귀하의 코스 섹션을 공유하거나 지금 아래의 레슨 파일 구조 , 정답 또는 레슨 시작에 대한 추가 지식을 배우 십시오.

추가 지식

분명히 코스 구축 과정은 위에서 설명한 것보다 더 미묘한 차이가 있지만 Swirlify 사이트 및 참조 설명서의 설명서 에서 자세한 내용을 확인할 수 있습니다 . 특히, Swirlify 지침 의 과정 구조및 작문 레슨 페이지를 참조하십시오 . 여기서 세 가지를 다룰 것입니다 : 수업 파일 구조, 정답 및 수업 시작.

학습 파일 구조

레슨 파일은 기본적으로 특수 텍스트 형식 인 YAML 로 작성 됩니다. 질문은 하이픈과 질문 유형 (클래스) 선언으로 시작하는 별도의 텍스트 블록으로 표시되고, 들여 쓰기 된 새로운 행에 대한 추가 인수가옵니다.

첫 번째 블록은 항상 Class: meta파일 이름과 수업 이름과 같은 기본 정보를 제공합니다. 또 다른 간단한 방법 은 사용자에게 표시 할 텍스트 인 Class: text인수를 하나만 더 제공하는 것 Output입니다.

 

실제로 질문을 추가하는 세 가지 방법이 있습니다.

  1. 이 게시물의 앞부분에서 설명한 Shiny 앱
  2. 사용하여 wq_*()활성 수업에 질문을 추가 기능의 가족을 – wq_message(output = "Text here")예를 들어 정보 텍스트를 추가합니다.
  3. YAML 파일에 직접 작성합니다.

질문 수업 및 Swirlify 지침에 쓰는 방법에 대한 자세한 내용이 있습니다 .

 

올바른 답

답변은 어떻게 인코딩되고 체크인 lesson.yaml됩니까? 이 질문에 대해 YAML을 고려하십시오.

 

그래서 CorrectAnswer당신은 정답을 제공하는 곳이다 (!). 사용자가 skip()질문을 선택하면이 행이 실행됩니다 . AnswerTests그러나 사용자의 입력이 실제로 평가 될 것입니다. 그것은 사용 omnitest올바른 표현 (비교 기능을 correctExpr사용자의 대답을).그러나 종종 한 가지 이상의 대답 방법이 있습니다. 이 any_of_exprs()경우이 함수를 사용해야합니다.

 

사용자 정의 답변 테스트를 작성하는 방법을 비롯하여 Swirlify 지침의 답변 테스트에 대한 자세한 정보가 있습니다 .

수업 시작

initLesson.R파일 에있는 모든 내용 은 수업이로드 될 때 실행됩니다. 질문을 통해 객체를 만들고 참조 할 수 있습니다. 예를 들어 데이터 프레임을 추가 할 수 있습니다.

다음 lesson.yaml과 같이 질문 할 수 있습니다 .

데이터 프레임은 시작시로드되었으므로 사용자는 질문에 대답하기 위해 데이터 프레임과 상호 작용할 수 있습니다.

또한 레슨 폴더에 데이터 세트를 추가하고 initLesson.R파일을 통해 사용자 환경으로 데이터 세트를 읽을 수 있습니다. 자세한 내용은 데이터 포함에 대한 Swirlify 지침 을 참조하십시오.

코스 공유

축하해. 과정을 공유 할 준비가되었습니다.

이를 수행하는 데는 여러 가지 방법이 있습니다. 학습자가 Swirl의 swirl::install_course_*()기능을 사용하여 다음과 같은 과정을 설치 하는 것이 가장 쉽습니다 .

  • GitHub 레포
  • DropBox, Google 드라이브 또는 일부 URL에 저장된 zip 파일
  • 과정 폴더 – 지퍼가 달린 지 아닌지 – 컴퓨터에서 로컬로 다운로드

또한 단일 .swc파일로 코스를 압축 compress_course()하고 Swirl Course Network 에서 호스팅하도록 요청을 제기 할 수 있습니다 . 거기에서 다운로드 할 수 있습니다 install_course().

소용돌이 치는 더 많은 수와 범위의 코스를 가짐으로써 강화됩니다.

Tidyswirl을위한 실물 크기의 육각형 스티커는 의심스러운 모양으로 tidyverse 스티커와 유사합니다.

Tidyswirl을위한 실물 크기의 육각형 스티커는 의심스러운 모양으로 tidyverse 스티커와 유사합니다.

위선을 최소화하기 위해 Tidyswirl이라는 소용돌이 코스를 시작 했습니다 . 목표는 tidyverse의 각 핵심 패키지를 소개 하는 것 입니다. 현재 {tidyr} 와 {tibble}의 초안 수업이 있습니다 .

Tidyswirl은 현재 GitHub에서 개발 중입니다. Swirl에서 설치하고 사용해보기 :

 

자유롭게 새로운 수업에 참여하거나 문제를 제기하십시오 .

방법: Teach a person to Swirl – rostrum.blog