2009-04-30 6 views
7

저는 수업을위한 어린이 수학 교육 소프트웨어를 작성하고 있습니다.수학 게임에서 표현 파서를 사용해야합니까?

다양한 유형의 수학 문제를 재미있게 무작위로 생성하여 다양한 기술 수준의 학생들에게 문제를 제시하려고합니다.

컴퓨터 기반 수학 소프트웨어 사용의 좌절감 중 하나는 강성입니다. 온라인 수학 수업을 듣는 사람이 있다면 온라인 퀴즈를 풀고 정답을 던지거나 문제가 정확히 형식화되지 않았거나 이상한 간격 문제로 인해 좌절하는 것에 대해 알게됩니다.

그래서 처음에는 "알고 있습니다! 답장 상자에 표현 파서를 사용하여 입력 한 내용을 평가할 수있게 될 것이며 심지어 같은 형식이 아닌 경우에도 그것이 똑같은 대답인지 확인할 수 있어야합니다. " 따라서 IDE를 실행하고 구현을 시작하십시오. Shunting Yard Algorithm.

이렇게하면 가장 작은 형식과 다른 문제로 분수를 사용하지 않는 문제를 해결할 수 있습니다.

그러나 그때 까다로운 학생은 답안 상자에 대부분의 문제를 입력 할 수 있으며 표현 파서는 정교하게 구문 분석하고 정답으로 평가할 것입니다.

이 경우 표현 파서를 사용하지 않아야합니까? 답을 하나의 형식으로 생성하고 문자열 비교를 수행해야합니까?

+2

정말 좋은 질문입니다! 당신이하는 일을 우리에게 알려주지 마 - 나는 매우 호기심이 많다. –

+0

대답 일 수도있는 질문의 예를 들려 줄 수 있습니까? – Greg

+2

@ 그렉 : 그는 500 : 2의 가치는 무엇인가? "올바른"대답은 250이지만 진취적인 학생은 복사 붙여 넣기에 "500/2"를 입력하면 식 평가원이이를 수락합니다. –

답변

5

가능한 한 가지 해결책은 표현식 평가 기가 문제의 원래 표현식을 평가하는 데 걸리는 단계를 파악하고이를 최적의 답변과 비교하는 것입니다. 너무 많은 차이가 있다면, 문제는 충분히 감소되지 않았으므로 학생이 계속 나아갈 것을 제안 할 수 있습니다.

학생들이 자신의 "최적"정의보다 더 나은 답변을 제시한다면 놀라지 마십시오. 저는 여러 과목의 TA/grader 였고, 가장 밝은 학생들은 교수가 제공 한 것보다 우수한 문제 세트에 대한 답을 정기적으로 가졌습니다.

2

정답을 찾고있는 간단한 문제의 경우 공백을 제거하고 문자열 비교를하는 것이 합리적입니다.

고급 문제의 경우 Shunting Yard Algorithm (또는 유사)을 수행하지만 매개 변수화하여 복잡한 문제를 방지하기 위해 감축을 설정/해제 할 수 있습니다. "간단한"대답으로 파서를 사용할 수는 있지만 모든 감축을 비활성화 할 수 있습니다.

예를 들어, 부서 질문에서 "/"감소를 비활성화 할 수 있습니다.

+0

언제/감소를 비활성화할지 결정하기 어려울 수도 있습니다. 예를 들어, 질문이 "1/2 + 1/4 ="이면 사용자는 "3/4"을 입력 할 수 있습니다. – Joe

1

위대한 질문입니다.

표현 시스템과 평가/변환/동등 엔진을 작성하는 경우 (어딘가에 사용할 수 있습니까? 저는 거의 100 % 확신합니다. 오픈 소스가 어딘가에 있습니다.), 교육이 더 필요합니다./대수학 문제 : 학생의 답이 대수적으로 원래 표현이나 예상 표현에 더 가깝습니까?

어떻게 대답할지 모르겠지만 단지 아이디어 만 (실용적인 것은 아닙니다) : 아마도 귀하의 평가 엔진이 변환 단계를 동등한 것으로 간주 할 수 있습니다. 대답이 원래 예상보다 적은 단계로 예상되는 경우 괜찮을 수 있습니다. 원본과 너무 가깝다면 그렇지 않습니다.

0

표현 파서를 사용할 수 있지만 대답에 허용되는 표현의 복잡성에 제한을 적용 할 수 있습니다.

예를 들어 목표가 (4/5) * (1/2)을 줄이고 (2/5) 또는 (4/10)을 허용하려는 경우 허용 가능한 집합을 제한 할 수 있습니다 나무가 (x/y) 형태를 취하고 올바른 숫자로 평가되는 표현식에 대한 답. 아마도 "0.4"즉 올바른 숫자로 평가되는 양식 (x)의 표현을 허용 할 수도 있습니다.

문제를 수동으로 채점 한 경우 정확하게 (암묵적으로) 수행 할 것입니다. 올바른 대답을 찾고 있지만 받아 들일 수있는 클래스에도 해당됩니다.

0

수학 평가 소프트웨어에서이를 수행하는 일반적인 방법은 질문 설정자가 정답에 허용되지 않는 표현식/문자열을 지정할 수있게하는 것입니다.

기존 소프트웨어에 관심이 있으시면 오픈 소스 스택 http://www.stack.bham.ac.uk/ (또는 MapleTA와 같은 다양한 상용 옵션)이 있습니다. 나는 당신이 겪을 수있는 대부분의 문제가 Stack에 의해 마주 치고 있다고 생각합니다. 사용하지 않으려는 경우에도, 그것이 사물에 어떻게 접근 하는지를보기 위해 교육적 일 수 있습니다.

관련 문제