소개
구글 클래스룸을 활용하여 퀴즈 과제 또는 이론 시험문제를 출제하여
학생들에게 시험을 보게 할 때 구글 설문지를 자주 사용하는데요
물론 구글 설문지 설정에 질문 순서를 섞는 기능이 있습니다.
그런데 저는 시험문제 출제를 100문제 정도 만들고
시험문제를 60개 정도 랜덤으로 섞어서 자동으로 각 학생들에게 시험문제가 선택되어지도록 만드는 방법을 알아내고 싶었어요.
진행 방법
일단 ChatGPT와 Perplexcity를 활용하여 프롬프트에 입력하고 질문을 해봤습니다.
GPT의 응답을 아래와 같습니다.
각 학생이 100개 풀에서 무작위로 선택된 고유한 60개 질문 세트를 받는 Google Forms에서 퀴즈를 만들려면 Google Forms 및 Google Apps Script와 함께 Google Sheets를 사용할 수 있습니다.
단계별 방법은 다음과 같습니다.
1단계: 질문 준비
Google 스프레드시트에서 질문에 대한 새 시트를 만듭니다.
질문 및 답변(객관식인 경우) 열에 레이블을 지정하고 행에 100개의 질문을 모두 입력합니다.
2단계: Google 양식 만들기
새로운 Google Form을 생성하고 기본 구조를 설정합니다.
모든 질문을 수동으로 입력할 필요는 없습니다. 대신 스크립트를 사용하여 채우세요.
3단계: Google Apps 스크립트를 작성하여 무작위화 자동화
Google 스프레드시트에서 확장 프로그램 > Apps Script로 이동합니다.
다음 스크립트를 복사하여 붙여넣으면 풀에서 60개의 질문을 무작위로 선택하여 Google 양식에 삽입합니다.
```javascript
function generateRandomQuiz() {
const formId = 'YOUR_GOOGLE_FORM_ID'; // Replace with your Form ID
const form = FormApp.openById(formId);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); // Update if needed
const questionsRange = sheet.getRange('A2:A101'); // Adjust as necessary
const allQuestions = questionsRange.getValues().flat();
// Clear previous questions from the form
const items = form.getItems();
items.forEach(item => form.deleteItem(item));
// Randomly select 60 questions
const selectedQuestions = [];
while (selectedQuestions.length < 60) {
const randomIndex = Math.floor(Math.random() * allQuestions.length);
const question = allQuestions[randomIndex];
if (!selectedQuestions.includes(question)) {
selectedQuestions.push(question);
}
}
// Add selected questions to the form
selectedQuestions.forEach(question => {
form.addMultipleChoiceItem().setTitle(question).setChoiceValues(['Option 1', 'Option 2', 'Option 3', 'Option 4']);
});
}
```
'YOUR_GOOGLE_FORM_ID'`를 Google 양식의 실제 ID(양식 URL에 있음)로 바꿉니다.
스크립트를 저장하고 Google 양식 및 시트에 액세스할 수 있는 권한을 부여하세요.
4단계: 스크립트 실행
Apps Script 편집기에서 실행 > generateRandomQuiz로 이동하여 Google 양식에 무작위 질문 세트를 만듭니다.
각 학생이 고유한 질문을 받을 수 있도록 각 시험 세션 전에 이 과정을 반복합니다.
5단계: 양식 배포
Google 클래스룸을 통해 Google 양식 링크를 공유하면 각 학생은 업데이트된 양식을 기반으로 하는 무작위 질문 세트를 받게 됩니다.
이 접근 방식을 사용하면 대규모 질문 풀을 미리 준비하고 각 학생이 고유한 하위 집합을 받도록 보장하여 잠재적인 답변 공유를 방지할 수 있습니다.
Google Apps Script에 대한 추가 맞춤설정이나 지원이 필요한 경우 알려주시기 바랍니다.
Q1: 각 수업 전에 준비되도록 무작위 테스트 일정을 자동화하려면 어떻게 해야 합니까?
질문2: 이 방법을 적용하여 각 학생의 성과를 자동으로 추적하면서 다양한 퀴즈 버전을 생성할 수 있나요?
질문3: 단답형이나 단락 등 객관식 이외의 질문 유형을 포함하도록 Google Apps Script를 개선하려면 어떻게 해야 하나요?
아래는 Perplexity pro에게 물어본 내용입니다.
구글 설문지에서 직접적으로 100개의 문제 중 60개를 무작위로 선택하여 각 학생에게 다른 문제를 제시하는 기능은 현재 제공되지 않습니다. 하지만 이와 유사한 효과를 얻을 수 있는 몇 가지 방법이 있습니다:
1. 구글 스프레드시트와 Form Builder 애드온 활용:
- 구글 스프레드시트에 100개의 문제를 입력합니다.
- Form Builder for Sheets 애드온을 설치합니다.
- 스프레드시트에서 RANDBETWEEN 함수를 사용하여 60개의 무작위 문제를 선택합니다.
- Form Builder를 사용하여 선택된 문제들로 구글 설문지를 생성합니다[5][9].
2. 섹션 활용:
- 100개의 문제를 여러 섹션으로 나눕니다(예: 20개씩 5개 섹션).
- 각 섹션에서 무작위로 12개의 문제를 표시하도록 설정합니다.
- "섹션 순서 섞기" 옵션을 활성화합니다[2].
3. 스크립트 작성:
- Google Apps Script를 사용하여 커스텀 스크립트를 작성합니다.
- 스크립트에서 100개의 문제 중 60개를 무작위로 선택하여 설문지를 동적으로 생성하는 로직을 구현합니다[1].
4. 외부 도구 활용:
- Formfacade와 같은 서드파티 도구를 사용하여 고급 기능을 추가할 수 있습니다[8].
이 방법들 중 가장 실용적인 것은 구글 스프레 드시트와 Form Builder 애드온을 활용하는 것입니다. 이 방법을 통해 문제 은행을 쉽게 관리하고, 필요할 때마다 새로운 무작위 문제 세트를 생성할 수 있습니다.
구현 시 주의할 점은 각 학생이 동일한 난이도의 시험을 치르도록 문제의 난이도를 균형 있게 분배해야 한다는 것입니다. 또한, 시험의 공정성을 위해 모든 학생이 동일한 시간 제한을 갖도록 설정해야 합니다.
이 방법들을 통해 학생들에게 다양한 문제를 제공하면서도 공정한 평가를 할 수 있을 것입니다.
Citations:
[1] https://stackoverflow.com/questions/60112365/can-i-randomize-items-in-multiplechoiceitem
[2] https://www.reddit.com/r/GoogleForms/comments/17qqc56/create_small_quiz_from_question_bank/
[4] https://www.youtube.com/watch?v=V6PCbVYx9Ps
[5] https://www.youtube.com/watch?v=ODFCr7Rt9nY
[7] https://www.thebricks.com/resources/how-to-randomly-select-in-google-sheets
[8] https://formfacade.com/embed/google-forms-shuffle-question-order.html
[9] https://www.youtube.com/watch?v=kQmISd8XT9s
[12] https://www.jotform.com/answers/1702782-generate-random-questions-from-a-pool
[13] https://www.lido.app/forms/how-to-shuffle-questions-in-google-forms
[14] https://extendedforms.io/blog/create-a-question-bank-in-google-forms
[15] https://www.youtube.com/watch?v=r8GCJwPRCZg
결과와 배운 점
GPT 분석 방법도 매우 흥미로운데
Perplexcity pro는 총 3가지 방법을 제안하고 레퍼런스도 잘 만들어줬다는 점이 매우 고무적입니다.
밤이라서 오늘 실행해보고 어떤 방법들이 잘 실행되는지 다시 정리하여 글을 올려 보겠습니다 ^^
모두 굿나잇 ^^
도움 받은 글 (옵션)
칼퇴 자동화_조현정 방장님의 영상을 보고 아이디어를 얻었습니다.
감사합니다.