Bb9上でテストプールを作り,そこから出題したい

タイトル通り,「Bb9上でテストプールを作り,そこから出題したい」

ネックなのは,例えば,単語問題が1000問あり,100問ずつに区切って使いたい(1週間で100語ずつ覚えさせて,20問だけランダムに出題したい)のような場合,100語に区切ったcsvを10回アップロードするのは面倒だし,ミスの基。Bb9のテストにはカテゴリーが付与できるので,それを利用したい。以下,手順。

事前準備

  1. テストフォーマットに沿ってテストを作成し,Unicodeでtxtとして保存(フォーマットについては,過去記事参照)
  2. Bb9のコースツールから「テスト/アンケート/プール」を選び,「プール」から「プールの作成」
  3. プール情報を入力し,「送信」
  4. 「質問のアップロード」で作成したテストをアップロード
  5. 完了したら,プールができるので,できたプールの名前を選択し,下矢印がでたら編集を選ぶ
  6. 1つ目の質問文(項目)を選び,下矢印がでたら編集を選ぶ
  7. 画面下部に「カテゴリー」があるので,追加を押し,カテゴリー名を適当に入れ(1週目とかW1とか),送信
  8. 続けて,カテゴリーの区切れにある項目を編集していき,カテゴリー名を入れる
  9. 終わったら,画面右下のOKを押す

ファイルのエクスポートと編集(ファイルを編集して,カテゴリー名をすべての項目につける)

  1. プールからカテゴリー名を入れたプールを選び,下矢印がでたら,エクスポートを選び,ファイルを保存する
  2. zipファイルを解凍し,展開しておく。
  3. res00001.datの編集(このファイルは,カテゴリー名をコントロールしている)
    1. 形式:<CATEGORY id=”_4桁の数字_1″><TITLE>カテゴリー名</TITLE><TYPE>category</TYPE><COURSEID value=”_4桁の数字_1″/></CATEGORY>
    2. ここで,category idを確認しておく
  4. res00003.datの編集(このファイルでカテゴリーと項目を紐づけている)
    1. このファイルには,事前に作成したカテゴリー分(例えば,今回だと10カテゴリー)の情報が入っている
    2. 形式:<ITEMCATEGORY id=”_5桁の数字_1″><CATEGORYID value=”_4桁の数字_1″/><QUESTIONID value=”_6桁の数字_1″/></ITEMCATEGORY>
    3. 以下,エクセルなどで処理する。上記のイタリック部分の数値を変更して,全項目とカテゴリーを紐づけていく
    4. 説明を簡潔にするために,後ろのQUESTIONID valueから入力する
    5. QUESTIONID valueは,項目に対応した数字が入っている。例えば,1つ目の項目(1つ目のカテゴリーの最初の項目)は,15000が入っているとすると,2つ目の項目(2つ目のカテゴリーの最初の項目)は15100となる(各カテゴリーの項目は100であると想定)。つまり,このQUESTIONID valueが項目番号となる。したががって,15000~15099はカテゴリー1,15100~15199はカテゴリー2となる。必要な分(今回は15000~16000の1000項目)の数値を作成しておく。
    6. CATEGORYID valueには,res00001.datで確認したcategory idを対応する項目分入力(今回の例なら100項目)する。15000~15099はカテゴリー1なので,同じCATEGORYID valueを入れる。
    7. ITEMCATEGORY idには,このファイル内で使われている最大値+1を入力し,全項目分の下方コピーをしていく
    8. 上記のBで示した形式でセットが完成したら,それをres0003.datの<ITEMCATEGORIES>~</ITEMCATEGORIES>の間に,上書きし,保存する。
  5. res00002.datの編集(オプションの設定)
    1. Bb9でアップロードしたテストのオプションを一括で変える」で行った設定をするのであれば,このファイルで行う。
  6. すべて保存し,これらすべての含まれるzipを作成
  7. Bb9のコースツールから「テスト/アンケート/プール」を選び,「プール」から「プールのインポート」から作成したzipをアップロードすると,プールが完成する。

テストの作成

  1. 「教材」から「テスト/アンケート/課題」をクリックし,「テスト」を選択
  2. テストの追加画面で新しいテストの作成をクリック
  3. テストの情報を入力し,「送信」
  4. 「質問の再利用」から「質問セットの作成」を選ぶと新しいウィンドウが開く
  5. 左の「プール」から作成したプールを選ぶ
  6. 左の「カテゴリー」から出題範囲を選ぶ
  7. 質問が全部表示されていないといけないので,右の一番下にある「すべての表示」を押すか,「ページングの編集」で200項目を表示させるようにする
  8. 右の「質問文の横にある」□にチェックを入れ,「送信」
  9. 「質問ごとの点数」や「表示する質問の数:」を変更して,送信
  10. 質問セットを作り終えたら,右下の「OK」を押す。
  11. テストの追加から,「既存のテストの追加」にある,今作成したテストを選択し,「送信」
  12. テスト情報を入力し,「送信」で完了

 

Li, J., Taft, M., & Xu, J. (2017). The Processing of English Derived Words by Chinese-English Bilinguals

Li, J., Taft, M., & Xu, J. (2017). The Processing of English Derived Words by Chinese-English Bilinguals. Language Learning, 67(4), 858–884.

Abstract

本研究では,中国語を第一言語とする英語バイリンガルの英語派生語構造に対する敏感さを調査した。一つ目の実験では,英語を第一言語とする実験参加者は先行刺激と目標語の関係が明白であるペア(hunter-HUNT)と曖昧であるペア(corner-CORN)でマスク・プライム効果を見せたが,形式だけが関連するペア(freezer-FREEZE)では効果は見られなかった。一方で,バイリンガルの参加者は3条件全てでプライム効果が見られた。さらに,英語の習熟度が低い参加者ではより強い形式プライムこうが見られた。2つ目の実験では,バイリンガルの参加者は,語に派生接辞ではないものを付与して作った非語(animalfil)と比べて,派生接辞に語を付与して作成した非語(animalful)を非語として認識するのがより難しく,正確性(エラー率)の点からも,英語と接する機会の少ない参加者であっても,同様だった。全体をまとめると,これらから分かるのは,中国語を第一言語とする英語バイリンガルは,習熟度に関わりなく,形態論的構造への敏感さを持ち,習熟度が高まることで,英語を第一言語とする人々と類似したパターンになってくることが分かった。

This study examined the sensitivity of Chinese-English bilinguals to derivational word structure in English. In the first experiment, English monolinguals showed masked priming effects for prime-target pairs related both transparently (e.g., hunter-HUNT) and opaquely (e.g., corner-CORN) but not for those related purely in terms of form (e.g., freeze-FREE), whereas bilinguals showed priming in all three conditions. Furthermore, stronger form priming was found for bilinguals who were less experienced in English. A second experiment showed that bilingual participants found it harder to identify items as nonwords when the words possessed a suffix (e.g., animalful) than when they did not (e.g., animalfil), and this was true in terms of accuracy even for bilinguals with less exposure to English. Overall, these findings suggest that Chinese-English bilinguals, regardless of proficiency, have some sensitivity to morphological structure and that greater proficiency leads to priming effects that tend to pattern more like those of monolinguals.

2017年のまとめ

新年も7日も過ぎて書くのはどうかと思うけれど,授業再開を前に1年を振り返るくらいはしておこう。

まずは,教育関係から。前期はスピーキングの授業でALC NetAcademyを教材にした授業をして,これは次年度以降も定番化しそう。基本的には,オンラインで学習した内容を授業内で確認することを前半にやり,授業の後半は歌を歌ったり,グループ発表の準備をしたりと言う内容。受講生の反応もなかなか良かったのだけれど,反省としては,やはり乗り切れない学生がいて,そのフォローがうまくできていないところ。あとは,事前学習の内容を応用する活動が少なかったかなと。この辺りは,タスクをもう少し入れて自由に話さざる得ない状況をどう作るかかなと。次年度以降の課題。

後期はライティングで現在進行中なので,まだ反省は早いのだけれど,採用した教材がイマイチだったかな。もちろん,こちらで工夫しなかったことも原因だけれど,ケアレスな誤りが多い教材はテンションが下がる。あと前期ほど課題に工夫がなくて,結局,教えるこちらがワクワクしない感じになっている。あと3回で盛り返しましょう。

前後期に行った新規開講科目はTOEIC受験対策の授業。当たり前だけど,カリキュラムとは授業の内容だけでなく,外部的な要因がでかいことを思い知らされた授業でした。実践の結果だけ見れば大成功。ただし,それで教員と学生がどれだけ満足感を得られたかは別の話。なにせ対策ものの授業なので,ある程度,冷徹にやらなければならないのがシンドイですね。ま,少しずつ成果発表をして行きましょう。

今年度から非常勤でやっている「英語教育リサーチメソッド」は大学院生が対象。初めてにありがちな,盛り沢山になっているけれど,後から見返せるようにはしておきたい。とはいえ,受講生がそれぞれリサーチ自体を始めないとメソッドを使うところまではいかないので,そのための準備なので総花的になるのは仕方ないかな。こちらも次年度以降は改善の余地ありまくり。

運営関係は,組織が色々と変わったので,まぁ大変。おかげさまで,教養教育の英語科目では副責任者的立ち位置に置かれて大忙しの一年でした。委員会やらWGやらが多くて,授業に影響が出るほど。それもこれも次年度から始まるターム制の準備なのだけれど,マニュアルと書類をつって,長いメールを書いたりしても,準備は進まず,終わらず。最低限の形を整えて,あとは始まってからの試行錯誤かな。ここら辺は,次年度以降,他大学からお座敷がかかりそう。ターム制準備の悲哀を語らせてくれるなら,何処へでも。

そんなこんなで研究は例年通りパッとせず。代表発表者としては2件。英語での発表が1件と日本語での発表が1件で,それぞれ研究発表と実践報告。それ以外はお得意のグループ発表。この流れはしばらく続きそうだけれど,発表件数だけもまずふやし,そして論文を書きましょう。ちなみに,今年は紀要論文が1本だけ。

お座敷は夏にLETで「英語語彙指導で考えたいこと:語彙は増やして整理する」で講師をさせていただいた。このネタも少し擦りすぎな感があるので,しばらくは語彙関連のお座敷はおやすみかな。

そんなこんなで,運営 > 授業 > 研究 の序列で進んでいるここ数年をどうにかしないといけませんね。どうしましょうかね。

リッカートスケールで得たアンケート・データの視覚化:likert package (その1)

Google formでアンケートデータを取ることが増えているので,その視覚化のための備忘録。使うパッケージはlikert
データとしては,以下のイメージ。質問項目は,Q1からQ5まであって,例えば,1が「全く良くない」で,5が「とても良い」のような5件法だとする。

Q1 Q2 Q5
1 4 5
5 3 3
….
library(likert)
library(plyr)

dat=read.csv("likert_test.csv",na.strings=c("", "NULL")) #データの読み込み。実際のデータでは,空白,つまり無回答ということもあるので,空白をNAと判定させる。
dat2 <- data.frame(lapply(dat, factor, levels=1:5)) #datの中身をfactor(文字列)に変換。その際に,五件法なので範囲を1から5までとする。つまり,ある設問への反応として1が含まれていない場合などでも,1が0回とするための処置。その上で,データ・フレームにする。
dat2 <- na.omit(dat2) #念のため,NAデータを削除

dat3 <- likert(dat2) #各設問への反応をまとめる
likert.bar.plot(dat3, #対象データファイル
        ordered=FALSE, #反応の順番。1から5の順。
        group.order=c("Q1","Q2","Q3","Q4","Q5"), #今回の場合,指定しないと反応1が少ない順に並べられる。ここでの指定では,Q1からQ5への並べる 
        plot.percent.high=FALSE,#指定しないと,高い反応(4と5)の割合(%)を表示
        plot.percent.low=FALSE, #指定しないと,低い反応(1と2)の割合(%)を表示
        plot.percent.neutral=FALSE, #指定しないと,中間の反応(3)の割合(%)を表示
        plot.percent=TRUE #指定すると,各反応の割合を表示
)
+theme_bw() #プロットの背景色などのスタイルを指定。今回は白黒。
+theme(legend.position = "bottom", #凡例をプロットの下に表示。
legend.direction = "horizontal" #水平に配置。
)

Radar Chartを描く(plotrix) その3

備忘録その3ですが,その2の落穂拾い。凡例をつけて見やすくする。なので,データ例は,その2と同じ。

library(dplyr)
library(plotrix)

dat=read.csv("test2.csv") #データ読み込み

dat2 = dat %>% #datを対象とした以下の処理をして,それをdat2へ入れる
   gather(Section_Year,Score, -ID) %>% #縦長のデータにする。Section_Yearという新しい変数を作り,SectionX_20xxデータを並べる。Scoreはの横に配置。IDは入れない。
   separate(col="Section_Year", sep="_", into=c("Section", "Year"))%>% #Section_Yearを_を区切りに分けて,SectionとYearを別々の列とする 
   group_by(Section,Year) %>% #SectionとYearでグループ化する
   summarize(mean=mean(Score)) %>%  #Scoreの平均を出す
   spread(Section, mean) #横向きデータに変更

 dat3 = select_if(dat2, is.numeric) #数値しか入れられないので,数値以外は削除。

 radial.plot(dat3, #データ入力
       rp.type = "p",  #表示方法。オプションは、r (中心から直線が出る),p (線で結ぶ),s (点のみ)
       start = pi/2, #グラフを始める位置。Section1を12時にする。
       radial.lim=c(40,60), #軸の範囲。
       labels=colnames(dat3), #項目名
       line.col=1:2, #線の色。ここでは1(黒)と2(赤)。
       lwd=2, #線の太さ。
       lty=1:2 #線の種類。ここでは1(実線)と2(点線)。
              show.grid.labels =FALSE #軸のラベル(数値)が邪魔な場合はFALSEで表示させない。

)
legend("bottomright", #表示させる位置
    legend=c("2016", "2017"), #表示させるもの 
    col=1:2, #線の色(グラフ本体と合わせる)
    lty=1:2  #線のスタイル(グラフ本体と合わせる)
)

Radar Chartを描く(plotrix) その2

備忘録その2。よくもらうデータのタイプとしては,以下のようなものもある。

ID Section1_2016 Section4_2016 Section4_2017
1 49 71 8
2 98 28 5
3 55 51 30
4 91 2 47
5 60 20 56
30 90 17 44
library(dplyr)
library(tidyverse)
library(plotrix)

dat=read.csv("test2.csv") #データ読み込み

dat2 = dat %>% #datを対象とした以下の処理をして,それをdat2へ入れる
      gather(Section_Year,Score, -ID) %>% #縦長のデータにする。Section_Yearという新しい変数を作り,SectionX_20xxデータを並べる。Scoreはの横に配置。IDは入れない。
      separate(col="Section_Year", sep="_", into=c("Section", "Year"))%>% #Section_Yearを_を区切りに分けて,SectionとYearを別々の列とする 
      group_by(Section,Year) %>% #SectionとYearでグループ化する
      summarize(mean=mean(Score)) %>%  #Scoreの平均を出す
      spread(Section, mean) #横向きデータに変更
 
dat3 = select_if(dat2, is.numeric) #数値しか入れられないので,数値以外は削除。

radial.plot(dat3, #データ入力
     rp.type = "p",  #表示方法。オプションは、r (中心から直線が出る),p (線で結ぶ),s (点のみ)
     start = pi/2, #グラフを始める位置。Section1を12時にする。
     radial.lim=c(40,60), #軸の範囲。
     labels=colnames(dat3), #項目名
     line.col=1:2, #線の色。ここでは1(黒)と2(赤)。
     lwd=2, #線の太さ。
     lty=1:2 #線の種類。ここでは1(実線)と2(点線)。
)

うーん、もっとスマートな整形の仕方はないものか。

Radar Chartを描く(plotrix) その1

Radar Chartを描く方法をいくつか試したので、備忘録的に書いておく。
今回は,plotrixを使用した。

データとしては、個人的にエクセルでもらうことの多い、以下のような形式。ファイル名は取り合えず、test.csvとしておく。

ID Section1 Section2 Section3 Section4
1 40 30 50 79
2 72 65 24 77
3 24 15 10 31
30 26 14 97 53

 

library(dplyr)
library(plotrix)

dat=read.csv("test.csv")
dat$ID=as.factor(dat$ID) #IDはfactorに変換

dat2=dat %>% summarize_if(is.numeric, funs(mean)) #dplyrのsummarizeで、numericの列だけ平均を出す。

radial.plot(dat2, #データの入力
     rp.type="p", #表示方法。オプションは、r (中心から直線が出る),p (線で結ぶ),s (点のみ)
     start = pi/2, #グラフを始める位置。Section1を12時にする。
     radial.lim = c(50,56), #軸の範囲。
     labels = colnames(dat2), #項目名
     clockwise = TRUE #時計回りに表示
)

【備忘録】Maharaのレーダーチャートにデータの流し込み

Maharaのレーダーチャート・プラグインでは,学生1人について,以下のようなcsvファイルを1つずつ作る必要がある。

基礎科目,学期,英語,数学,国語,理科,社会
基礎科目,2016年度 1学期,3,4,4,3,4
基礎科目,2016年度 2学期,3,5,3,4,4

面倒なのは,Excelでは,以下のように,学生番号ごとに整理されていること。

学生番号,基礎科目,学期,英語,数学,国語,理科,社会

 

X1000,基礎科目,2016年度 1学期,3,4,4,3,4

X1001,基礎科目,2016年度 1学期,3,4,4,3,4

やることは,次の2つ

  1. 1行1ファイルにする。
  2. ファイルを学生番号でリネームする。

面倒なので,コマンドは書いたりせず,vbaも使わないでフリーソフトを2つ使ってやる。

1行1ファイルにするのは,次のソフトを使う。
CsvDivNet

使い方は,ここらへん。
CSVファイルを分割するツール 行数、文字コード指定も可能

ファイルのリネームは,次のソフト。
お~瑠璃ね~む ver4.9.1

このソフトの「テキストエディタ連携」を使うと楽。

これで,個別の学生番号が振られたcsvができる。

問題は,できたcsvに新しいデータを追加するところ。さてどうしたもんか。

Murakami, A., & Alexopoulou, T. (2016). L1 Influence on the Acquisition Order of English Grammatical Morphemes.

Murakami, A., & Alexopoulou, T. (2016). L1 Influence on the Acquisition Order of English Grammatical Morphemes. Studies in Second Language Acquisition, 38(3), 365–401. http://doi.org/10.1017/S0272263115000352

 

習得の普遍順序があるのだという長い間されてきた主張を評価するために形態素研究を再度検討する。5つの習熟度,7つの第一言語群からなる学習者達が,6つの英語文法形態素を第二言語として習得する順序を調査した。データはケンブリッジ学習者コーパスから約10,000の筆記試験スクリプトを抽出したものである。本研究は,形態素の絶対的な正確さと形態素の習得順序に明らかな第一言語の影響を認め,第二言語形態素には普遍的な習得順序があるという広く持たれている考えに疑義を投げかける。さらに,第一言語の影響は形態素ごとに特有なもので,言語に特有な概念に関わる形態素はもっとも第一言語の影響を受けやすいことが分かった。
 

We revisit morpheme studies to evaluate the long-standing claim for a universal order of acquisition. We investigate the L2 acquisition order of six English grammatical morphemes by learners from seven L1 groups across five proficiency levels. Data are drawn from approximately 10,000 written exam scripts from the Cambridge Learner Corpus. The study establishes clear L1 influence on the absolute accuracy of morphemes and their acquisition order, therefore challenging the widely held view that there is a universal order of acquisition of L2 morphemes. Moreover, we find that L1 influence is morpheme specific, with morphemes encoding language-specific concepts most vulnerable to L1 influence.

 

1 5 6 7 8 9 13