著者:飯尾淳
コロナ禍の影響を受けて、2020年度は大学の講義の多くがオンライン講義になりました。対面での講義に比べると、情報伝達の面でオンライン講義はかなり不利です。また、受講状況がどうだったかについても気になります。最終回となる今回は、久しぶりに棒グラフが登場します。棒グラフで、講義コンテンツがいつ視聴されたのかを可視化します。
シェルスクリプトマガジン Vol.70は以下のリンク先でご購入できます。![]()
![]()
図4 未読率を計算するRubyスクリプト「midoku.rb」
#!/usr/bin/env ruby
#
# for n in seq -w 1 13;do
# ./midoku.rb Rawdata/rawdata_$n.csv $n;
# done
m1 = m2 = m3 = 0
File.open(ARGV[0], "r") {|f|
f.each_line {|line|
a = line.chomp.split(',')
m1 += a.count('未読')
m2 += a.count('閲覧済')
m3 += a.count('更新後未読')
}
}
printf "%s,%d,%d,%d,%04.1f\n",
ARGV[1],m1,m2,m3,m1.to_f*100/(m1+m2+m3).to_f
図7 視聴率の総計を計算するRubyスクリプト「hours.rb」
#!/usr/bin/env ruby
#
# cat Rawdata/* > all.csv
# ./hours.rb all.csv | sort | uniq -c | \
# sort -n -k 2 | awk '{printf("%d,%d\n", $2,$1)}' > hours.csv
number = "(\\d+)"
m1 = m2 = m3 = 0
File.open(ARGV[0], "r") {|f|
f.each_line {|line|
a = line.chomp.split(',')
a.map!{|x| /#{number}:#{number}:#{number}/.match(x).to_a[1] }
a -= [nil]
a.map{|x| print x, "\n" }
}
}