Category: General

AI/ML in Next Generation E-learning Solutions

As the Next Gen E-learning solutions will cover some or all objectives to bring effective utilization of e-learning solutions using AI/ML, some of them are already present in some solutions.

As:-

Moodle is shipped with the following core models,

  • Students at risk of dropping out
  • Upcoming activities due
  • No teaching

The following table contains, AI/ ML, Data-mining Techniques in E-learning solutions for different objectives with prediction accuracy.

E-learning FeatureML Models and TechniquePrediction AccuracyCriteria Evaluated using ML
User OpinionHMM [Hidden Markov Model],SVM [Support Vector Machine]
Data Mining Technique :
MI [Mutual Information],IG[Infor-
mation Gain],CHI
F-Measure 0.803The accuracy rate of user opinion predicted
Course Recommendation to StudentsADTree classification Algorithm, Apriori Association Rule algorithm, Simple K-Means AlgorithmApriori Association gives the best cluster of coursesCourse mapping is obtained
Timely system response to studentsGenetic Algorithm, ML techniqueAutomated web bot gives timely reply
Student performance knowledgeSVM F-Measures-0.986Predicts the rate of student’s knowledge
Student Emotionsk-NN, SVMSVM accuracy ration- 97.15%Accurately predicts students emotions
Online session assessmentEnsemble Classifier Baggins embedded with ML78.04% accuracyPredict the beneficial session
Student ranking creditsECOC [Error Correcting Output Code] combines ClassifierF statistics is 3.05Predicts college opportunity
Learning style and learning objectsBayesian EstimationBayesian infer the increase in the visual categoryEstimate learning style
Learner behaviors sequenceFuzzy cluster technique78% matched with real-world dataPredicts learner behavior
Learner sequence, Learning patternFCM [Fuzzy Clustering Methodd], K-means clusteringFCM shows 96.89% accuracy
K-Means shows 80.12 % accuracy
Classified learner Sequence
Student graduation resultsperception ANN [Artificial Neural Network]Predicts successful 77% unsuccessful 68%Predicts graduation successfulness
AUI features coursesFelder Silverman modelClassifies learning ModelsLearning Models predicted
Course informationANN, LMA algorithmR-value 9.08%Evaluate future GPA
learning processing dataConv-GRU-avgP in P-xNNaccuracy 80.04%Predicted Learning Performance
Student assessmentDeep learning TensorFlow Engine80%-91% of accuracyPredicts student pathway
Student test resultsRadom Forest26.7% error ratepredicts student performance
Student engagement in the courseK-means clusteringSilhouette coefficient for two-level cluster is .7003Classify student groups

Continious Deployment Using Bitbucket and AWS code Deploy

Continuous deployment [CD] can be achieved using following simple steps if you are using bitbucket for code and aws for hosting.

Requirement

Pre-requisite

  • there is a repository in bitbucket account, bitbucket pipeline is enabled
  • AWS account has
    • one s3 bucket,
    • one IAM user, having aws codedeploy access, and s3 access
    • AWS code deploy group
    • instance added under that group for deployment

bitbucket pipeline YAML

image: atlassian/default-image:2
pipelines:
  custom:
    project-1:
      - step:
          name: Preparing the package
          script:
            - mkdir <projectname>
            - rsync -a -v src/* <projectname>/
            - cd <projectname>
            - zip -r ../<projectname>.zip *
          artifacts:
            - <projectname>.zip

      - step:
          name: Upload to S3 Bucket
          services:
            - docker
          script:
          
            - pipe: atlassian/aws-code-deploy:0.2.10
              variables:
                AWS_ACCESS_KEY_ID: $S3_ACCESS_KEY
                AWS_SECRET_ACCESS_KEY: $S3_SECRET_KEY
                AWS_DEFAULT_REGION: eu-west-1
                COMMAND: 'upload'
                APPLICATION_NAME: <<project1>>
                ZIP_FILE: '<projectname>.zip'
                S3_BUCKET: $S3_BUCKET

      - step:
          name: Deploy Project 
          deployment: project-1
          services:
          - docker
          script:
          - pipe: atlassian/aws-code-deploy:0.2.10
            variables:
              AWS_ACCESS_KEY_ID: $S3_ACCESS_KEY
              AWS_SECRET_ACCESS_KEY: $S3_SECRET_KEY
              AWS_DEFAULT_REGION: eu-west-1
              COMMAND: 'deploy'
              APPLICATION_NAME: <<project1>>
              DEPLOYMENT_GROUP: <aws deployment group name>
              IGNORE_APPLICATION_STOP_FAILURES: 'true'
              FILE_EXISTS_BEHAVIOR: 'OVERWRITE'
              S3_BUCKET: $S3_BUCKET
              WAIT: 'true'
  • save this content, with a filename as bitbucket-pipelines.yml
  • push this file in bitbucket repo under root of the repo
  • there are a few variables and values need modification $ represent variable, and for these, <> or <<>>, you can replace with your own name.
  • a variable can be defined under Repository settings > pipelines > repository variable, with same name.
Variable Name
  • This is manual triggered, however, you can set up the trigger points, means push, merge etc.

what it will do

  • it will zip the code from the path you have given with command
 mkdir <projectname>
            - rsync -a -v src/* <projectname>/
            - cd <projectname>
            - zip -r ../<projectname>.zip *
  • zip will be moved to s3 before deployment, for backup purpose
 pipe: atlassian/aws-code-deploy:0.2.10
              variables:
                AWS_ACCESS_KEY_ID: $S3_ACCESS_KEY
                AWS_SECRET_ACCESS_KEY: $S3_SECRET_KEY
                AWS_DEFAULT_REGION: eu-west-1
                COMMAND: 'upload'
                APPLICATION_NAME: <<project1>>
                ZIP_FILE: '<projectname>.zip'
                S3_BUCKET: $S3_BUCKET
  • Deploy the zip artifact from S3 to ec2 using AWS code deploy. [requires AWS code deploy group name]
  • application name is the name , you define under aws code deploy .
name: Deploy Project 
          deployment: project-1
          services:
          - docker
          script:
          - pipe: atlassian/aws-code-deploy:0.2.10
            variables:
              AWS_ACCESS_KEY_ID: $S3_ACCESS_KEY
              AWS_SECRET_ACCESS_KEY: $S3_SECRET_KEY
              AWS_DEFAULT_REGION: eu-west-1
              COMMAND: 'deploy'
              APPLICATION_NAME: <<project1>>
              DEPLOYMENT_GROUP: <aws deployment group name>
              IGNORE_APPLICATION_STOP_FAILURES: 'true'
              FILE_EXISTS_BEHAVIOR: 'OVERWRITE'
              S3_BUCKET: $S3_BUCKET
              WAIT: 'true'

More about pipeline : https://support.atlassian.com/bitbucket-cloud/docs/configure-bitbucket-pipelinesyml/

AWS code deploy app spec Hooks

version: 0.0
os: linux

files:
  - source: ./
    destination: </var/www/html/project-1/>

hooks:
  BeforeInstall:
    - location: <deployment_scripts/before.sh>
      runas: root

You can define appspec.yml in your code, that can contain hooks, which will be executed during code deploy
hooks : https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html