FbP = feedback provision FbU = feedback use AcP = Academic performance
Indexes
ProjectID = read.csv("ProjectIDs.csv")
ProjectID
## X ProjectID Course Year Semester AssName LxRx LxSxRx
## 1 1 45 BIOL1040 2013 2 Report 3 L1R3 L1S2R3
## 2 2 44 BIOL1040 2013 2 Report 2 L1R2 L1S2R2
## 3 3 43 BIOL1040 2013 2 Report 1 L1R1 L1S2R1
## 4 4 40 BIOL1040 2013 1 Report 4 L1R4 L1S1R4
## 5 5 39 BIOL1040 2013 1 Report 3 L1R3 L1S1R3
## 6 6 32 BIOL1040 2013 1 Report 2 L1R2 L1S1R2
## 7 7 31 BIOL1040 2013 1 Report 1 L1R1 L1S1R1
## 8 8 34 BIOM2011 2013 1 Report 1 L2R1 L2S1R1
## 9 9 41 BIOM2011 2013 1 Report 2 L2R2 L2S1R2
## 10 10 48 BIOM2011 2013 2 Report 1 L2R1 L2S2R1
## 11 11 50 BIOM2011 2013 2 Report 2 L2R2 L2S2R2
## 12 12 28 BIOM2013 2013 1 Oral L2R1 L2S1R1
## 13 13 42 BIOM2013 2013 1 Report L2R2 L2S1R2
## 14 14 63 BIOM2013 2014 1 Oral L2R1 L2S1R1
LxRx = Level and Report eg Level 1 (BIOL1040 = first year) Report 1 (1st Report) Sx = semester
Setting up sequences
biom.projects = subset(ProjectID, Course == "BIOM2011" | Course == "BIOM2013")
biom = biom.projects[,2]
biom.names = paste0(biom.projects[,3], "Sem", biom.projects[,5], biom.projects[,6])
biol.projects = subset(ProjectID, Course == "BIOL1040")
biol = biol.projects[,2]
biol.names = paste0(biol.projects[,3], "Sem", biol.projects[,5], biol.projects[,6])
Feedback Provision
file.names <- lapply(biol, function(x){paste0("FbP", x, "DeID.csv")})
FbP.biol <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(FbP.biol) <- biol.names
sapply(FbP.biol, nrow)
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 10285 13414 13294
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 6985 8934 9845
## BIOL1040Sem1Report 1
## 10881
sapply(FbP.biol, function(x) max(x$Duration.sec, na.rm=T))
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 148 168 238
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 261 206 252
## BIOL1040Sem1Report 1
## 185
file.names <- lapply(biom, function(x){paste0("FbP", x, "DeID.csv")})
FbP.biom <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(FbP.biom) <- biom.names
sapply(FbP.biom, nrow)
## BIOM2011Sem1Report 1 BIOM2011Sem1Report 2 BIOM2011Sem2Report 1
## 7881 4831 2173
## BIOM2011Sem2Report 2 BIOM2013Sem1Oral BIOM2013Sem1Report
## 1023 1923 2466
## BIOM2013Sem1Oral
## 1759
sapply(FbP.biom, function(x) max(x$Duration.sec, na.rm=T))
## Warning: no non-missing arguments to max; returning -Inf
## BIOM2011Sem1Report 1 BIOM2011Sem1Report 2 BIOM2011Sem2Report 1
## 417 393 475
## BIOM2011Sem2Report 2 BIOM2013Sem1Oral BIOM2013Sem1Report
## 302 295 337
## BIOM2013Sem1Oral
## -Inf
NB no audio in FbP63
Feedback Use
file.names <- lapply(biol, function(x){paste0("FbU", x, "DeID.csv")})
FbU.biol <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(FbU.biol) <- biol.names
sapply(FbU.biol, nrow)
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 25213 64722 92683
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 23233 59420 62659
## BIOL1040Sem1Report 1
## 62381
sapply(FbU.biol, function(x) max(x$msec.B4.scroll, na.rm=T))
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 6.961e+07 1.128e+08 4.588e+10
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 7.816e+07 1.650e+08 8.579e+07
## BIOL1040Sem1Report 1
## 8.498e+07
#in minutes
sapply(FbU.biol, function(x) round(max(x$msec.B4.scroll, na.rm=T)/60000))
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 1160 1881 764641
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 1303 2749 1430
## BIOL1040Sem1Report 1
## 1416
file.names <- lapply(biom, function(x){paste0("FbU", x, "DeID.csv")})
FbU.biom <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(FbU.biom) <- biom.names
sapply(FbU.biom, nrow)
## BIOM2011Sem1Report 1 BIOM2011Sem1Report 2 BIOM2011Sem2Report 1
## 35414 13192 7110
## BIOM2011Sem2Report 2 BIOM2013Sem1Oral BIOM2013Sem1Report
## 3014 4734 4980
## BIOM2013Sem1Oral
## 3655
sapply(FbU.biom, function(x) max(x$msec.B4.scroll, na.rm=T))
## BIOM2011Sem1Report 1 BIOM2011Sem1Report 2 BIOM2011Sem2Report 1
## 80846966 62519202 61998728
## BIOM2011Sem2Report 2 BIOM2013Sem1Oral BIOM2013Sem1Report
## 34956600 69407785 57766049
## BIOM2013Sem1Oral
## 72369730
#in minutes
sapply(FbU.biol, function(x) round(max(x$msec.B4.scroll, na.rm=T)/60000))
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 1160 1881 764641
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 1303 2749 1430
## BIOL1040Sem1Report 1
## 1416
of interest are the patterns of use - when, level of interaction (rate of activity), and pauses (timing and duration)
Academic Performance
file.names <- lapply(biol, function(x){paste0("AcP", x, "DeID.csv")})
AcP.biol <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(AcP.biol) <- biol.names
sapply(AcP.biol, nrow)
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 869 934 931
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 696 696 722
## BIOL1040Sem1Report 1
## 704
sapply(AcP.biol, function(x) range(x$Final.Grade, na.rm=T))
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## [1,] 40 20 40
## [2,] 100 100 100
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## [1,] 40 40 20
## [2,] 100 100 100
## BIOL1040Sem1Report 1
## [1,] 20
## [2,] 100
sapply(AcP.biol, function(x) mean(x$Final.Grade, na.rm=T))
## BIOL1040Sem2Report 3 BIOL1040Sem2Report 2 BIOL1040Sem2Report 1
## 89.88 86.53 80.82
## BIOL1040Sem1Report 4 BIOL1040Sem1Report 3 BIOL1040Sem1Report 2
## 88.59 85.55 79.52
## BIOL1040Sem1Report 1
## 76.30
file.names <- lapply(biom, function(x){paste0("AcP", x, "DeID.csv")})
AcP.biom <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(AcP.biom) <- biom.names
sapply(AcP.biom, nrow)
## BIOM2011Sem1Report 1 BIOM2011Sem1Report 2 BIOM2011Sem2Report 1
## 257 256 89
## BIOM2011Sem2Report 2 BIOM2013Sem1Oral BIOM2013Sem1Report
## 82 61 65
## BIOM2013Sem1Oral
## 58
AcP.biom[[5]][,18] = as.numeric(AcP.biom[[5]][,18])
## Warning: NAs introduced by coercion
AcP.biom[[7]][,16] = as.numeric(AcP.biom[[7]][,16])
## Warning: NAs introduced by coercion
sapply(AcP.biom, function(x) range(x$Final.Grade, na.rm=T))
## Warning: no non-missing arguments to min; returning Inf
## Warning: no non-missing arguments to max; returning -Inf
## BIOM2011Sem1Report 1 BIOM2011Sem1Report 2 BIOM2011Sem2Report 1
## [1,] 23 7 12.25
## [2,] 99 97 90.25
## BIOM2011Sem2Report 2 BIOM2013Sem1Oral BIOM2013Sem1Report
## [1,] 15.00 Inf 26.75
## [2,] 92.25 -Inf 95.25
## BIOM2013Sem1Oral
## [1,] 40
## [2,] 96
sapply(AcP.biom, function(x) round(mean(x$Final.Grade, na.rm=T)))
## BIOM2011Sem1Report 1 BIOM2011Sem1Report 2 BIOM2011Sem2Report 1
## 60 69 59
## BIOM2011Sem2Report 2 BIOM2013Sem1Oral BIOM2013Sem1Report
## 68 NaN 66
## BIOM2013Sem1Oral
## 65
Demographic information
file.names <- lapply(1:2, function(x){paste0("BIOL", x, "demogDeID.csv")})
demog.biol <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(demog.biol) <- c("Sem1","Sem2")
sapply(demog.biol, nrow)
## Sem1 Sem2
## 735 974
sapply(demog.biol, function(x) range(x$Cumulative.Semester.GPA, na.rm=T))
## Sem1 Sem2
## [1,] 0 0
## [2,] 7 7
sapply(demog.biol, function(x) round(mean(x$Cumulative.Semester.GPA, na.rm=T), digits = 2))
## Sem1 Sem2
## 4.68 4.91
file.names <- lapply(1:2, function(x){paste0("BIOM", x, "demogDeID.csv")})
demog.biom <- lapply(file.names, read.csv, header=TRUE, stringsAsFactors=FALSE)
names(demog.biom) <- c("Sem1","Sem2")
sapply(demog.biom, nrow)
## Sem1 Sem2
## 252 93
sapply(demog.biom, function(x) range(x$Cumulative.Semester.GPA, na.rm=T))
## Sem1 Sem2
## [1,] 0 2
## [2,] 7 7
sapply(demog.biom, function(x) round(mean(x$Cumulative.Semester.GPA, na.rm=T), digits = 2))
## Sem1 Sem2
## 4.87 4.58