Intro

Here I will describe how to set up individual assignments for an “assessment, measurement and evaluation in teaching” course. Every individual wil receive a pdf file that includes a unique data set to calculate mean, standard deviation and correlation. Further, the correct answers for each individual assignment will be calculated and saved. All these will take only seconds. The document is in Turkish, feel free to contact me for a translation into English.

Konu:

Ölçme ve değerlendirme dersini daha iyi kavramak için gerekli olan, ortalama, standard sapma ve korelasyon hesaplama becerilerinin öğrenciere ödev yoluyla kazandırılması

Problem:

Öğrencilerin kopya çekme eğilimi.

Çözüm :

Ödev okumak için ayrılan süreyi mümkün olduğunca kısa tutarak, her öğrenciye farklı ödev vermek.

Gerekenler

Her öğrenciye farklı veri seti sağlamak için;

  1. Şablon
  2. Veri setlerinin simülasyonu
  3. Verilerin şablona aktarılıp ödevlerin oluşturulması
  4. Veri setlerinin analizi

1 Şablon

Ödev için gereken ortak yönergeleri içeren bir şablon. bknz: örnek

Şablon formatı olarak pdf i tercih ediyorum. Herhangi bir pdf dosyası oluşturmak için kullanılabiecek bazı yollar vardır, örneğin bir word dosyasının pdf olarak kaydedilmesi, veya latex editörü, veya R-Studio’nun sunduğu R-markdown.

Eğer R-markdown ile daha önce pdf dosyası oluşturmadıysanız bknz

Bu örnek için kullandığım r markdown şablonu şudur;

---
title: "OMES Ödev 1"
date: "Ekim, 2015"
output: pdf_document
---

## Ad     :
## Soyad  :
## Numara : 


   Aşağıda yer alan tabloda öğrencilerin Dikab ve Sosyal Bilgiler sınavı notları verilmiştir. Her iki sınav da 0-50 arasında puanlanmıştır. Size verilen sınıf için;
    
a) Dikab sınavı ortalamasını (1 puan)
b) Sosyal Bilgiler sınavı ortalamasını (1 puan)
c) Dikab sınavında alınan notların standard sapmasını (1.5 puan)
d) Sosyal Bilgiler sınavında alınan notların standard sapmasını (1.5 puan)
e) Dikab ve Sosyal Bilgiler sınavı puanları arasındaki korelasyonu (2.5 puan)

hesaplayınız.

```{r results='asis', echo=FALSE, warning=FALSE, message=FALSE}
require(knitr)
kable(kaf,row.names = F)
```

Masaüstünde bir klasör oluşturun, örneğin “bireyselodev”. Bu klasörün içine yukarıdaki Rmd kodunu ’template.Rmd" olarak kaydedin

Şablonunuz hazır.

2 3 & 4 Veri setlerinin simülasyonu, Verilerin şablona aktarılıp ödevlerin oluşturulması ve Veri setlerinin analizi

Bu raporu yazarken 2,3 ve 4. basamağı tek bir r kodu içinde vermeye karar verdim.

Yazacağımız bir R kodu ile (simple R script) bütün bu basamakları tamamlayabiliriz. Yorumlara dikkat ediniz. Aşağıdaki R kodunu, masaüstünde oluşturduğunuz ‘bireyselodev’ klasörüne kaydedin.

Dosyaları “bireyselodev” klasörüne koyduktan sonra, aşağıdaki R kodunu run edin.

set.seed(1111) 
ogr.say=20  #odev verecegini ogrenci sayisi
satir.say=10 # ogrenci basina dusecek verinin satir sayisi.
odev=data.frame(Dikab=sample(1:25,ogr.say*satir.say,replace = T),SB=sample(1:25,ogr.say*satir.say,replace = T),sinif=gl(ogr.say,10))

# 1 ila 25 arasinda degisen iki degisken olusturur ve sinif id verir
head(odev)
odev$SB=odev$SB+(0.4*odev$Dikab) #iki degisken arasinda korelasyon 
odev$SB=as.integer(odev$SB)

cor(odev[,1:2])
splitodev=split(odev,odev$sinif) 
#data su an bir butun, onu bireysel verilere donusturmek icin boluyoruz
write.csv(splitodev,file="odevdata.csv") #data setlerini kaydediyoruz
#save(splitodev,file="odevdata.RData")


#asagidaki  6 sira kod bireysel odevleri yazacak
library("rmarkdown")
library("knitr")
for (i in 1:ogr.say){
  kaf <- splitodev[[i]]
  render("template.Rmd",output_file = paste0('bodev.', i, '.pdf'),encoding = "UTF-8")    
}

# su an girdiginiz ogrenci sayisi kadar bireysel odeviniz mevcut.


#asagidaki kod, verileri analiz edecek ve sonucunu yazacaktir.

sonuc=matrix(0,nrow=ogr.say,ncol=5)
for (i in 1:ogr.say){
  sonuc[i,1]=mean(splitodev[[i]]$Dikab)
  sonuc[i,2]=mean(splitodev[[i]]$SB)
  sonuc[i,3]=sd(splitodev[[i]]$Dikab)
  sonuc[i,4]=sd(splitodev[[i]]$SB)
  sonuc[i,5]=cor(splitodev[[i]]$SB,splitodev[[i]]$Dikab)
}
sonuc=data.frame(sonuc)
colnames(sonuc)=c("xmean","ymean","xsd","ysd","corxy")


# herseyin yolunda oldugunu kontrol etmek icin;

##test
test=splitodev[[2]]
test2=odev[11:20,]
colMeans(test[,1:2])
cor(test$Dikab,test$SB)

#
write.csv(sonuc,file="odevsonuc.csv")

Ne elde ettik?

Şu an elimizde mevcut olanlar;

Örneğin: 60 öğrenci için hazırladığım bireysel ödevlerden 4 tanesi;

ödevler

data

sonuc

Bu kadar mı?

Oluşturduğunuz bu iki kod ile, yüzlerce öğrenciye bireysel ödevler hazırlamak artık saniyeler sürer. Sadece sonuç odaklı puanlama yaptığınızda puanlama da oldukça kısa sürede bitecektir.

Bu ödev oldukça sıradandı, sadece ortalama, standard sapma ve korelasyon hesabı . Ama bireysel ANOVA, regresyon, faktör analizi gibi ödevlerin hazırlanması da oldukça mümkündür.

Her bireysel pdf dosyasına öğrencilerin isimleri ya da numaraları kolayca eklenebilir.