How to setup the attendance module in Moodle
How to setup the attendance module in Moodle
Options for forums in Moodle
Creating Q&A forums in Moodle
Using the Moodle forum option of each person posts one discussion
How to create a simple discussion forum in Moodle
In this post, we are going to continue are analysis of the logistic regression model from the the post on logistic regression in R. We need to rerun all of the code from the last post to be ready to continue. As such the code form the last post is all below
data(survey) survey$Clap<-NULL survey$W.Hnd<-NULL survey$Fold<-NULL survey$Exer<-NULL survey$Smoke<-NULL survey$M.I<-NULL survey<-na.omit(survey) pm<-melt(survey, id.var="Sex") ggplot(pm,aes(Sex,value))+geom_boxplot()+facet_wrap(~variable,ncol = 3)
set.seed(123) ind<-sample(2,nrow(survey),replace=T,prob = c(0.7,0.3)) train<-survey[ind==1,] test<-survey[ind==2,] fit<-glm(Sex~.,binomial,train) exp(coef(fit))
train$probs<-predict(fit, type = 'response') train$predict<-rep('Female',123) train$predict[train$probs>0.5]<-"Male" table(train$predict,train$Sex)
test$prob<-predict(fit,newdata = test, type = 'response') test$predict<-rep('Female',46) test$predict[test$prob>0.5]<-"Male" table(test$predict,test$Sex)
We will now do a K-fold cross validation in order to further see how our model is doing. We cannot use the factor variable “Sex” with the K-fold code so we need to create a dummy variable. First, we create a variable called “y” that has 123 spaces, which is the same size as the “train” dataset. Second, we fill “y” with 1 in every example that is coded “male” in the “Sex” variable.
In addition, we also need to create a new dataset and remove some variables from our prior analysis otherwise we will confuse the functions that we are going to use. We will remove “predict”, “Sex”, and “probs”
train$y<-rep(0,123) train$y[train$Sex=="Male"]=1 my.cv<-train[,-8] my.cv$Sex<-NULL my.cv$probs<-NULL
We now can do our K-fold analysis. The code is complicated so you can trust it and double check on your own.
bestglm(Xy=my.cv,IC="CV",CVArgs = list(Method="HTF",K=10,REP=1),family = binomial)
## Morgan-Tatar search since family is non-gaussian.
## CV(K = 10, REP = 1) ## BICq equivalent for q in (6.66133814775094e-16, 0.0328567092272112) ## Best Model: ## Estimate Std. Error z value Pr(>|z|) ## (Intercept) -45.2329733 7.80146036 -5.798014 6.710501e-09 ## Height 0.2615027 0.04534919 5.766425 8.097067e-09
The results confirm what we alreaedy knew that only the “Height” variable is valuable in predicting Sex. We will now create our new model using only the recommendation of the kfold validation analysis. Then we check the new model against the train dataset and with the test dataset. The code below is a repeat of prior code but based on the cross-validation
reduce.fit<-glm(Sex~Height, family=binomial,train) train$cv.probs<-predict(reduce.fit,type='response') train$cv.predict<-rep('Female',123) train$cv.predict[train$cv.probs>0.5]='Male' table(train$cv.predict,train$Sex)
## ## Female Male ## Female 61 11 ## Male 7 44
##  0.8536585
test$cv.probs<-predict(reduce.fit,test,type = 'response') test$cv.predict<-rep('Female',46) test$cv.predict[test$cv.probs>0.5]='Male' table(test$cv.predict,test$Sex)
## ## Female Male ## Female 16 7 ## Male 1 22
##  0.826087
The results are consistent for both the train and test dataset. We are now going to create the ROC curve. This will provide a visual and the AUC number to further help us to assess our model. However, a model is only good when it is compared to another model. Therefore, we will create a really bad model in order to compare it to the original model, and the cross validated model. We will first make a bad model and store the probabilities in the “test” dataset. The bad model will use “age” to predict “Sex” which doesn’t make any sense at all. Below is the code followed by the ROC curve of the bad model.
bad.fit<-glm(Sex~Age,family = binomial,test) test$bad.probs<-predict(bad.fit,type='response') pred.bad<-prediction(test$bad.probs,test$Sex) perf.bad<-performance(pred.bad,'tpr','fpr') plot(perf.bad,col=1)
The more of a diagonal the line is the worst it is. As, we can see the bad model is really bad.
What we just did with the bad model we will now repeat for the full model and the cross-validated model. As before, we need to store the prediction in a way that the ROCR package can use them. We will create a variable called “pred.full” to begin the process of graphing the the original full model from the last blog post. Then we will use the “prediction” function. Next, we will create the “perf.full” variable to store the performance of the model. Notice, the arguments ‘tpr’ and ‘fpr’ for true positive rate and false positive rate. Lastly, we plot the results
pred.full<-prediction(test$prob,test$Sex) perf.full<-performance(pred.full,'tpr','fpr') plot(perf.full, col=2)
We repeat this process for the cross-validated model
pred.cv<-prediction(test$cv.probs,test$Sex) perf.cv<-performance(pred.cv,'tpr','fpr') plot(perf.cv,col=3)
Now let’s put all the different models on one plot
plot(perf.bad,col=1) plot(perf.full, col=2, add=T) plot(perf.cv,col=3,add=T) legend(.7,.4,c("BAD","FULL","CV"), 1:3)
Finally, we can calculate the AUC for each model
## [] ##  0.4766734
## [] ##  0.959432
## [] ##  0.9107505
The higher the AUC the better. As such, the full model with all variables is superior to the cross-validated or bad model. This is despite the fact that there are many high correlations in the full model as well. Another point to consider is that the cross-validated model is simpler so this may be a reason to pick it over the full model. As such, the statistics provide support for choosing a model but the do not trump the ability of the research to pick based on factors beyond just numbers.
In this post, we will conduct a logistic regression analysis. Logistic regression is used when you want to predict a categorical dependent variable using continuous or categorical dependent variables. In our example, we want to predict Sex (male or female) when using several continuous variables from the “survey” dataset in the “MASS” package.
data(survey) ?MASS::survey #explains the variables in the study
The first thing we need to do is remove the independent factor variables from our dataset. The reason for this is that the function that we will use for the cross-validation does not accept factors. We will first use the “str” function to identify factor variables and then remove them from the dataset. We also need to remove in examples that are missing data so we use the “na.omit” function for this. Below is the code
survey$Clap<-NULL survey$W.Hnd<-NULL survey$Fold<-NULL survey$Exer<-NULL survey$Smoke<-NULL survey$M.I<-NULL survey<-na.omit(survey)
We now need to check for collinearity using the “corrplot.mixed” function form the “corrplot” package.
pc<-cor(survey[,2:5]) corrplot.mixed(pc) corrplot.mixed(pc)
We have extreme correlation between “We.Hnd” and “NW.Hnd” this makes sense because people’s hands are normally the same size. Since this blog post is a demonstration of logistic regression we will not worry about this too much.
We now need to divide our dataset into a train and a test set. We set the seed for. First we need to make a variable that we call “ind” that is randomly assigns 70% of the number of rows of survey 1 and 30% 2. We then subset the “train” dataset by taking all rows that are 1’s based on the “ind” variable and we create the “test” dataset for all the rows that line up with 2 in the “ind” variable. This means our data split is 70% train and 30% test. Below is the code
set.seed(123) ind<-sample(2,nrow(survey),replace=T,prob = c(0.7,0.3)) train<-survey[ind==1,] test<-survey[ind==2,]
We now make our model. We use the “glm” function for logistic regression. We set the family argument to “binomial”. Next, we look at the results as well as the odds ratios.
## ## Call: ## glm(formula = Sex ~ ., family = binomial, data = train) ## ## Deviance Residuals: ## Min 1Q Median 3Q Max ## -1.9875 -0.5466 -0.1395 0.3834 3.4443 ## ## Coefficients: ## Estimate Std. Error z value Pr(>|z|) ## (Intercept) -46.42175 8.74961 -5.306 1.12e-07 *** ## Wr.Hnd -0.43499 0.66357 -0.656 0.512 ## NW.Hnd 1.05633 0.70034 1.508 0.131 ## Pulse -0.02406 0.02356 -1.021 0.307 ## Height 0.21062 0.05208 4.044 5.26e-05 *** ## Age 0.00894 0.05368 0.167 0.868 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## (Dispersion parameter for binomial family taken to be 1) ## ## Null deviance: 169.14 on 122 degrees of freedom ## Residual deviance: 81.15 on 117 degrees of freedom ## AIC: 93.15 ## ## Number of Fisher Scoring iterations: 6
## (Intercept) Wr.Hnd NW.Hnd Pulse Height ## 6.907034e-21 6.472741e-01 2.875803e+00 9.762315e-01 1.234447e+00 ## Age ## 1.008980e+00
The results indicate that only height is useful in predicting if someone is a male or female. The second piece of code shares the odds ratios. The odds ratio tell how a one unit increase in the independent variable leads to an increase in the odds of being male in our model. For example, for every one unit increase in height there is a 1.23 increase in the odds of a particular example being male.
We now need to see how well our model does on the train and test dataset. We first capture the probabilities and save them to the train dataset as “probs”. Next we create a “predict” variable and place the string “Female” in the same number of rows as are in the “train” dataset. Then we rewrite the “predict” variable by changing any example that has a probability above 0.5 as “Male”. Then we make a table of our results to see the number correct, false positives/negatives. Lastly, we calculate the accuracy rate. Below is the code.
train$probs<-predict(fit, type = 'response') train$predict<-rep('Female',123) train$predict[train$probs>0.5]<-"Male" table(train$predict,train$Sex)
## ## Female Male ## Female 61 7 ## Male 7 48
##  0.8861789
Despite the weaknesses of the model with so many insignificant variables it is surprisingly accurate at 88.6%. Let’s see how well we do on the “test” dataset.
test$prob<-predict(fit,newdata = test, type = 'response') test$predict<-rep('Female',46) test$predict[test$prob>0.5]<-"Male" table(test$predict,test$Sex)
## ## Female Male ## Female 17 3 ## Male 0 26
##  0.9347826
As you can see, we do even better on the test set with an accuracy of 93.4%. Our model is looking pretty good and height is an excellent predictor of sex which makes complete sense. However, in the next post we will use cross-validation and the ROC plot to further assess the quality of it.
Gradebook views in Moodle
This video explains how to add grade items to the Moodle gradebook.
Video on making categories in the Moodle gradebook
This video explains how to create and use scales in Moodle
In our example, we will use the “Auto” dataset from the “ISLR” package and use the variables “mpg”,“displacement”,“horsepower”,and “weight” to predict “acceleration”. We will also use the “mgcv” package. Below is some initial code to begin the analysis
We will now make the model we want to understand the response of “accleration” to the explanatory variables of “mpg”,“displacement”,“horsepower”,and “weight”. After setting the model we will examine the summary. Below is the code
## ## Family: gaussian ## Link function: identity ## ## Formula: ## acceleration ~ s(mpg) + s(displacement) + s(horsepower) + s(weight) ## ## Parametric coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 15.54133 0.07205 215.7 <2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Approximate significance of smooth terms: ## edf Ref.df F p-value ## s(mpg) 6.382 7.515 3.479 0.00101 ** ## s(displacement) 1.000 1.000 36.055 4.35e-09 *** ## s(horsepower) 4.883 6.006 70.187 < 2e-16 *** ## s(weight) 3.785 4.800 41.135 < 2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## R-sq.(adj) = 0.733 Deviance explained = 74.4% ## GCV = 2.1276 Scale est. = 2.0351 n = 392
All of the explanatory variables are significant and the adjust r-squared is .73 which is excellent. edf stands for “effective degrees of freedom”. This modified version of the degree of freedoms is due to the smoothing process in the model. GCV stands for generalized cross validation and this number is useful when comparing models. The model with the lowest number is the better model.
We can also examine the model visually by using the “plot” function. This will allow us to examine if the curvature fitted by the smoothing process was useful or not for each variable. Below is the code.
We can also look at a 3d graph that includes the linear predictor as well as the two strongest predictors. This is done with the “vis.gam” function. Below is the code
If multiple models are developed. You can compare the GCV values to determine which model is the best. In addition, another way to compare models is with the “AIC” function. In the code below, we will create an additional model that includes “year” compare the GCV scores and calculate the AIC. Below is the code.
## ## Family: gaussian ## Link function: identity ## ## Formula: ## acceleration ~ s(mpg) + s(displacement) + s(horsepower) + s(weight) + ## s(year) ## ## Parametric coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 15.54133 0.07203 215.8 <2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Approximate significance of smooth terms: ## edf Ref.df F p-value ## s(mpg) 5.578 6.726 2.749 0.0106 * ## s(displacement) 2.251 2.870 13.757 3.5e-08 *** ## s(horsepower) 4.936 6.054 66.476 < 2e-16 *** ## s(weight) 3.444 4.397 34.441 < 2e-16 *** ## s(year) 1.682 2.096 0.543 0.6064 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## R-sq.(adj) = 0.733 Deviance explained = 74.5% ## GCV = 2.1368 Scale est. = 2.0338 n = 392
#model1 GCV model1$gcv.ubre
## GCV.Cp ## 2.127589
#model2 GCV model2$gcv.ubre
## GCV.Cp ## 2.136797
As you can see, the second model has a higher GCV score when compared to the first model. This indicates that the first model is a better choice. This makes sense because in the second model the variable “year” is not significant. To confirm this we will calculate the AIC scores using the AIC function.
## df AIC ## model1 18.04952 1409.640 ## model2 19.89068 1411.156
Again, you can see that model1 s better due to its fewer degrees of freedom and slightly lower AIC score.
Using GAMs is most common for exploring potential relationships in your data. This is stated because they are difficult to interpret and to try and summarize. Therefore, it is normally better to develop a generalized linear model over a GAM due to the difficulty in understanding what the data is trying to tell you when using GAMs.
This video provides an example of using a rubric in Moodle
Before teaching a Moodle course it is critical that a teacher design what they want to do. For many teachers, they believe that they begin the design process by going to Moodle and adding activity and other resources to their class. For someone who is thoroughly familiar with Moodle and have developed courses before this might work. However, for the majority online teachers they need to wire frame what they want their moodle course to look like online.
Why Wire frame a Moodle Course
In the world of web developers a wire frame is a prototype of what a potential website will look like. The actual wire frame can be made in many different platforms from Word, powerpoint, and even just paper and pencil. Since Moodle is online a Moodle course in many ways is a website so wire framing applies to this context.
It doesn’t matter how a you wire frames their Moodle course. What matters is that you actually do this. Designing what you want to see in your course helps you to make decisions much faster when you are actually adding activities and resources to your Moodle course. It also helps your Moodle support to help you if they have a picture of what the you wants rather than wild hand gestures and frustration.
Wire farming a course also reduces the cognitive load on the teacher. Instead of designing and building the course a the same time. Wire framing splits this task into two steps, which are designing, and then building. This prevents extreme frustration as it is common for a teacher just to stare at the computer screen when trying to design and develop a Moodle course simultaneously.
You never see and architect making his plans while building the building. This would seem careless and even dangerous because the architect doesn’t even know what he wants while he is throwing around concrete and steel. The same analogy applies with designing Moodle courses. A teacher must know what they want, write it down, and then implement it by creating the course.
Another benefit of planning in Word is that it is easier to change things in Word when compared to Moodle. Moodle is amazing but it is not easy to use for those who are not tech-savvy. However, it’s easiest for most of us to copy, paste, and edit in Word.
One Way to Wire Frame a Moodle Course
When supporting teachers to wire frame a Moodle course, I always encourage them to start by developing the course in Microsoft Word. The reason being that the teacher is already familiar with Word and they do not have to struggle to make decisions when using it. This helps them to focus on content and not on how to use Microsoft Word.
One of the easiest ways to wire frame a Moodle course is to take the default topics of a course such as General Information, Week 1, Week 2, etc. and copy these headings into Word, as shown below.
Now, all that is needed is to type in using bullets exactly what activities and resources you want in each section. It is also possible to add pictures and other content to the Word document that can be added to Moodle later. Below is a preview of a generic Moodle sample course with the general info and week 1 of the course completed.
You can see for yourself how this class is developed. The General Info section has an image to serve as a welcome and includes the name of the course. Under this the course outline and rubrics for the course. The information in the parentheses indicate what type of module it is.
For Week 1, there are several activities. There is a forum for introducing yourself. A page that shares the objectives of that week. Following this are the readings for the week, then a discussion forum, and lastly an assignment. This process completes for however many weeks are topics you have in the course.
Depending on the your need to plan, you can even planned other pages on the site beside the main page. For example, I can wire frame what I want my “Objectives” page to look like or even the discussion topics for my “Discussion” forum.
Of course, the ideas for all these activities comes from the course outline or syllabus that was developed first. In other words, before we even wire frame we have some sort of curriculum document with what the course needs to cover.
The example above is an extremely simple way of utilizing the power of wire framing. With this template, you can confidently go to Moodle and find the different modules to make your class come to life. Trying to conceptualize this in your head is possible but much more difficult. As such, thorough planning is a hallmark of learning.
Brief explanation of making rubrics in Moodle
Below is a simple and brief video on how to create assignments in Moodle
Advanced ESL students have their own unique set of traits and challenges that an ESL teacher must deal. This post will explain some of these unique traits as well as how to support advanced ESL students.
Supporting Advanced ESL Students
By this point, the majority of the language processing is automatic. This means that the teacher no longer needs to change the speed at which they talk in most situations.
In addition, the students have become highly independent. This necessitates that the teacher focus on supporting the learning experience of the students rather than trying to play a more directive role.
The learning activities used in the classroom can now cover a full range of possibilities. Almost all causal reading material is appropriate. Study skills can be addressed at a much deeper level. Such skills as skimming, scanning, determining purpose, etc. can be taught and addressed in the learning. Students can also enjoy debates and author opinion generating experiences.
The Challenges of Advanced ESL Students
One of the challenges of advanced students is they often have a habit of asking the most detailed questions about the most obscure aspects of the target language. To deal this requires a PhD in linguistics or the ability to know what the students really need to know and steer away from mundane grammatical details. It is very tempting to try and answer these types of questions but the average native-speaker does not know all the details of imperfect past tense but rather are much more adept at using it.
Another frustrating problem with advanced students is the ability to continue to make progress in their language development. With any skill, as one gets closer to mastery, the room for improvement becomes smaller and smaller. To move from an advanced student to a superior student takes make several small rather than sweeping adjustments.
This is one reason advanced students often like to ask those minute grammar questions. These small question is where they know they are weak when it comes to communicating. This can be especially stressful if the student is a few points away from reaching some sort of passing score on an English proficiency exam (IELTS, TOEFL, etc.). Minor adjustments need to reach the minimum score are difficult to determine and train.
After beginners, teaching advanced esl students is perhaps the next most challenging teaching experience. Advanced ESL students have a strong sense of what they know and do not know. What makes this challenging is the information they need to understand can be considered some what specializes and not easy to articulate for many teachers.
Making groups and groupings are two features in Moodle that can be used for collaboration and or for organizational purposes in a class. This post will provide examples of how to use groups in an activity in Moodle
Using Groups/Groupings in a Forum
Groups and Groupings can be used in a Forum in order to allow groups to interact during a discussion topic. It is assumed that you already know how to make a forum in Moodle. Therefore, the instruction in this post will start from the settings window for forums in Moodle.
2. Depending on your goals there are several different ways that groups can be used.
In this example we will select group mode set to “visible groups” and groupings to “none once you click “save and display” you will see the following.
3. To see what each group said in their discussion click “all participants” and a drop down menu will be displayed that shows each group.
Using Grouping for Assignments
To use groups in assignments you repeat the steps above. In this example, we will use the grouping feature.
2. Another set a features you want to set for an assignment is the “group submission settings”. The options are self-explanatory but here is what I selected.
3. Click save a display and you will see the following
The red messages just states that some people are in more than one group or not in any group. For this example, this is not a problem as I did not assign all students to a group.
The concepts presented here for forums and assignments apply to most activities involving groups in Moodle. Group is very useful for large classes in which students need a space in which they can having meaningful communication with a handful of peers.
One of the many features available for teachers to use is the group mode for activities within a course in Moodle. This post will look at how to setup groups in a Moodle course.
What to Use the Group Mode For?
As with other features in Moodle, the challenge with the group mode is that you can use it for almost anything. The unlimited variety in terms of the application of the group mode makes it challenge for novices to understand and appreciate it. This is because as humans we often want a single clear way to use something. Below are several different ways in which the group mode can be used in a Moodle course.
If this is not confusing enough, you can also have students in several different groups simultaneously if you wanted. Therefore, whenever you are trying to use Moodle you need to consider what your goal is rather than whether it is possible to do it in Moodle. As stated before, the problem is the flexibility of Moodle and not its inability to facilitate a learning task.
In this post, we are only going to learn how to make groups. In a future post, we will look at using groups in terms of teaching and assignments.
Creating Groups in Moodle
2. There are several things to mention before continuing
First, there are two different ways to create groups. You can create them manually by clicking on “create groups” or you can have Moodle make the groups using the “Auto-create groups” button. The auto-group option will be explained in a later post as welling as the grouping feature.
Second, there is a tab called “grouping” this is a feature that allows you to create a group of groups. In other words, several groups can be assigned to a grouping. This allows you to assign several groups to an activity simultaneously rather than having to add each on manually. This is a great feature for a course that has two sections and each section has group activities. For now we will learn how to make groups manually.
Lastly, the column on the left, called “groups” will display the name of any groups that are created while the column on the left, called “members of” will contain the names of people who are a part of the group. Right now both are empty because there are no groups yet.
3. Click on the “create group” group button and you will see the following.
4. You now need to give the group a name. You also have the privilege to add other information if you want such as description or even a picture to represent the group. After providing the needed information you need to click “save changes” in order to see the following.
5. To add members to our practice group we need to click on the “add/remove” button. After doing this, you will see the following.
6. There are two columns, “potential members” and “group members.” To add people to the “group members” section just highlight whoever you want in the “potential members” side and click “add”. Below is an example of this
Just a note, at the bottom of both the “group member” and “potential member” list is a search function that can be used to find specific people in either section.
7. After placing people in the group, you can click on the “back to group” button. You will see the following.
The group name is displayed on the left and the members of the group are displayed on the right.
In this post we learned how to create groups. However, we have not learned yet how to use groups in a moodle course yet. This will be explained in a future post.
From the archives
Inquiry learning is form of indirect instruction. Indirect instruction is teaching in which the students are actively involved in their learning by seeking solutions to problems or questions. In inquiry learning, students develop and investigate questions that they may have. The focus in inquiry learning is on what the students want to learn with some support from the teacher about a topic. Below are the steps of inquiry learning.
Step 1: Ask
The teacher begins this process by taking the topic of the lesson and turning it into a question for the students to consider. For example, if the topic of a lesson is about flowers, a question to ask would be “How are flowers different from each other?” This is called the teacher-initiated stage of asking.
The student then develop their own questions that should help to answer the main question posed by the…
View original post 344 more words
Beginning ESL students have unique pedagogical needs that make them the most difficult to teach. It’s similar to the challenge of teaching kindergarten. The difficulty is not the content but rather stripping what is already a basic content into something that is understandable for the most undeveloped of students. Some of the best teachers cannot do this.
This post will provide some suggestions on how to deal with beginning ESL students.
Take Your Time
Beginning students need a great deal of repetition. If you have ever tried to learn a language you probably needed to hear phrases many times to understand them. Repetition helps students to remember and imitate what they heard.
This means that the teacher needs to limit the amount of words, phrases, and sentences they teach. This is not easy, especially for new teachers who are often put in charge of teaching beginners and race through the curriculum to the frustration of the beginning students.
Repetition and a slow pace helps students to develop the automatic processing they need in order to achieve fluency. This can also be enhanced by focusing on purpose in communication rather than the grammatical structure of language.
The techniques use din class should short and simple with a high degree variety to offset the boredom of repetition. In other words, find many ways to teach one idea or concept.
Who’s the Center
Beginning students are highly teacher-dependent because of their lack of skills. Therefore, at least initially, the classroom should probably be teacher-centered until the students develop some basic skills. In general, whenever you are dealing with a new subject the students are totally unfamiliar with it is better to have a higher degree of control of the learning experience.
Being the center of the learning experiences requires the teacher to provide most of the examples of well-spoken, written English. Your feedback is critical for the students to develop their own language skills. The focus should be more towards fluency rather than accuracy.
However, with time cooperative and student-centered activities can become more prominent. In the beginning, too much freedom can be frustrating for language learners who lack any sort of experience to draw upon to complete activities. Within a controlled environment, student creativity can blossom.
Being a beginning level ESL teacher is a tough job. It requires a skill set of patience, perseverance, and a gift at simplicity. Taking your time and determining who the center of learning is are ways in which to enhances success for those teaching beginners
Learner-centered instruction is a term that has been used in education for several decades now. One of the challenges of extremely popular terms in a field such as learner-centered instruction is that the term losses its meaning as people throw it into a discussion with knowing exactly what the term means.
The purpose of this post is to try and explain some of the characteristics of learner-centered instruction without being exhaustive. In addition, we will look at the challenges to this philosophy as well as ways to make it happen in the classroom.
Focus on the Students
Learner-centered instruction is focused on the students. What this means is that the teacher takes into account the learning goals and objectives of the students in establishing what to teach. This requires the teacher to conduct at least an informal needs assessment to figure out what the students want to learn.
Consultation with the students allows for the students to have some control over their learning which is empowering as viewed by those who ascribe to critical theory. Consultation also allows students to be creative and innovative. This sounds like a perfect learning situation but to be this centered on the learner can be difficult
Challenge of Learner-Centered Instruction
Since the learning experience is determined by the students, the teacher does not have any presupposed plan in place prior to consulting with the students. As such, not having a plan in place before hand is extremely challenging for new teachers and difficult even for experienced ones. The teacher doesn’t know what to expect in terms of the needs of the students.
In theory, almost no class follows such a stringent approach to learner-centered instruction. Most schools have to meet government requirements, prepare students for the work place, and or show improvements in testing. This limits the freedom of the teacher to be learner-centered in many ways. External factors cannot be ignored to adhere to the philosophy of learner-centered instruction.
Finding a Compromise
One way to be learner-centered while still having some sort of a plan prior to teaching is to rethink the level at which the students have voice in the curriculum. For example, if it is not possible to change the objectives of a course, the teacher can have the students develop the assignments they want to do to achieve an objective.
The teacher could also allow the students to pick from several different assignments that all help to achieve the same objective(s). This gives the students some control over their learning while allowing the teacher to adhere to external requirements. It also allows the teacher to be prepared in some way prior to the teaching.
The average educator does not have the autonomy to give to students to allow for the full implementation of learner-centered instruction. However, there are several ways to adjust one’s approach to teaching that will allow students to have a sense of control over their learning.
In this post, we will look at how to manipulate the labels and positioning of the data when using ggplot2. We will use the “Wage” data from the “ISLR” package. Below is initial code needed to begin.
Our first example involves adding labels for the x, y axis as well as a title. To do this we will create a histgram of the wage variable and save it as a variable in R. By saving the histogram as a variable it saves time as we do not have to recreate all of the code but only add the additional information. After creating the histogram and saving it to a variable we will add the code for creating the labels. Below is the code
myHistogram<-ggplot(Wage, aes(wage, fill=..count..))+geom_histogram() myHistogram+labs(title="This is My Histogram", x="Salary as a Wage", y="Number")
By using the “labs” function you can add a title and information for the x and y axis. If your title is really long you can use the code “” to break the information into separate lines as shown below.
myHistogram+labs(title="This is the Longest Title for a Histogram \n that I have ever Seen in My Entire Life", x="Salary as a Wage", y="Number")
Discrete Axis Scale
We will now turn our attention to working with discrete scales. Discrete scales deal with categorical data such as boxplots and bar charts. First, we will store a boxplot of the wages subsetted by level of education in a variable and we will display it.
myBoxplot<-ggplot(Wage, aes(education, wage,fill=education))+geom_boxplot() myBoxplot
Now, by using the “scale_x_discrete” function along with the “limits” argument we are able to change the order of the gorups as shown below
myBoxplot+scale_x_discrete(limits=c("5. Advanced Degree","2. HS Grad","1. < HS Grad","4. College Grad","3. Some College"))
The most common modification to a continuous scale is to modify the range. In the code below, we change the default range of “myBoxplot” to something that is larger.
This post provided some basic insights into modifiying plots using ggplot2.
This post will explain several types of visuals that can be developed in using ggplot2. In particular, we are going to make three specific types of charts and they are…
To complete this ask, we will use the “Wage” dataset from the “ISLR” package. We will nbe using the “education” variable which has five factors in it. Below is the initial code to get started.
In order to make a pie chart, we first need to make a bar chart and add several pieces of code to change it into a pie chart. Below is the code for making a regular bar plot.
ggplot(Wage, aes(education, fill=education))+geom_bar()
We will now modify two parts of the code. First, we do not want separate bars. Instead we want one bar. The reason being is that we only want one pie chart so before that we need one bar. Therefore, for the x value in the “aes” function we will use the argument “factor(1)” which tells R to force the data as one factor on the chart thus making one bar. We also need to add the “width=1” inside the “geom_bar” function. This helps with spacing. Below is the code for this
ggplot(Wage, aes(factor(1), fill=education))+geom_bar(width=1)
To make the pie chart, we need to add the “coord_polar” function to the code which adjusts the mapping. We will include the argument “theta=y” which tells R that the size of the pie a factor gets depends on the number of people in that factor. Below is the code for the pie chart.
ggplot(Wage, aes(factor(1), fill=education))+ geom_bar(width=1)+coord_polar(theta="y")
By changing the “width” argument you can place a circle in the middle of the chart as shown below.
ggplot(Wage, aes(factor(1), fill=education))+ geom_bar(width=.5)+coord_polar(theta="y")
A bullseye chart is a pie chart that share the information in a concentric way. The coding is mostly the same except that you remove the “theta” argument from the “coord_polar” function. The thicker the circle the more respondents within it. Below is the code
ggplot(Wage, aes(factor(1), fill=education))+ geom_bar(width=1)+coord_polar()
The Coxcomb Diagram is similiar to the pie chart but the data is not normalized to fit the entire area of the circle. To make this plot we have to modify the code to make the by removing the “factor(1)” argument and replacing it with the name of the variable and be readding the “coord_polor” function. Below is the code
ggplot(Wage, aes(education, fill=education))+ geom_bar(width=1)+coord_polar()
These are just some of the many forms of visualizations available using ggplot2. Which to use depends on many factors from personal preference to the needs of the audience.
Like all of it’s other features in Moodle, the quiz module has so many options as to make it difficult to use. In this post, we are going to look at providing feedback to students for their participation in a quiz.
In the example used in this post, we are going to use a quiz that was already developed in a prior post as the example for this blogpost.
The first step is to click on “edit settings” to display all of the various options available for the quiz. Once there, you want to scroll down to “review options”. After doing this you will see the following
As you can see, there are four columns and under each column there are 7 choices. The columns are about the timing of the feedback. Feedback can happen immediately after an attempt, it can happen after the student finishes the quix but is still available for others to take, or it can happen after everyone has taken the quiz and the quiz is no longer available.
Which type of timing you pick depends on your goals. If the quiz is for learning and not for assessment perhaps “immediately after the attempt” is best. However, if this is a formal summative assessment it might be better to provide feedback after the quiz is closed.
The options under each column are the same. By clicking on the question mark you can get a better explanation of what it is.
One important feedback feature is “Overall Feedback”. This tells the student a general idea of their understanding. You can set it up so that different overall feedback is given based on their score. Below is a screen shot of overall feedback
In the example, the first boundary is for scores of 100 and above and the second boundary is for scores 1-99. Students who get 100 know they are OK while students with less than 100 will get a different feedback. You have to add boundaries manually. Also, remember to add the percent sign after the number
General Feedback and Specific Feedbackfor a Question
General feedback for a question is the feedback a person gets regardless of their answer. To find this option you need to either create a question or edit a questions.
Specific feedback depends on the answer they pick. Below is a visual of both general and specific feedback.
Below is an example of the feedback a student would get taking the example quiz in this post. In the picture below, the student got the question wrong and received the feedback for an incorrect response.
The quiz module is a great way to achieve many different forms of assessment online. Whether the assessment is formative or summative the quiz module is one option. However, due to the complex nature of Moodle it is important that a teacher knows exactly what they want before attempting to use the quiz module.
One of Moodle’s many features is the quiz activity, which allows a teacher to assess a student’s knowledge in a variety of ways. However, before developing a quiz, a teacher needs to have questions developed and ready to be incorporated into the quiz.
The purpose of this post is to explain how to develop questions that are available to be used in a quiz.
Make a Category
When making questions it is important to be organized and this involves making categories in which to put your questions. To do this you need to click on course administrator|questions bank|Categories. After doing this you will see something similar to the image below.
You want to click add category and type a name for your category. In the picture below we named the category “example”. When you are finished click “add category and you will see the following.
Finding the Question Bank
Now that we have a question category we need to go to the question bank. To do so click on course administrator|question bank. You should see something similar to the following.
Select the “example” category you made and then “click create new question.” You should see the following.
As you can see, there are many different forms of questions available. The type of questions you should ask depends on many factors. For now, we will make a true or false example question. Once you select the option for T/F question you will see the following.
The question name is for identifying the question in the bank and not on the quiz. Therefore, avoid calling your questions “question 1, 2,3 etc.” because if you have multiply quizzes you will not know which question one to take from your bank. You need to develop some sort of cataloging system for your questions such as the following
This means the following
How you do this is your own decision and this is just an example.
The other boxes on this page are self-explanatory. General feedback is what the student receives whether they are right or wrong. The other feedback is given depending on the response. After making a question selecting if it is true or false you will see the following.
In a future post, we will learn how to take questions from the question bank and incorporate them into an actually quiz.
See the fireworks educationalresearchtechniques created by blogging on WordPress.com. Check out their 2015 annual report.
The WordPress.com stats helper monkeys prepared a 2014 annual report for this blog.
Here’s an excerpt:
The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 12,000 times in 2014. If it were a concert at Sydney Opera House, it would take about 4 sold-out performances for that many people to see it.