(assess student’s knowledge) · in moocs student learn basics of programming and most of them...

26
Tools For Programming In MOOCs (Assess Student’s Knowledge) Presented by: Veerta Singh M.Tech(I.T) M.Tech Project under the supervision of Prof. Deepak B. Phatak

Upload: others

Post on 19-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Tools For Programming In MOOCs

(Assess Student’s Knowledge)

Presented by:

Veerta Singh

M.Tech(I.T)

M.Tech Project under the supervision of

Prof. Deepak B. Phatak

Page 2: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Contents

• Introduction

• Types of MOOCs

• Tools for programming

• List of Auto grading Tools

• Grading Methods

• Benefits of MOOCs

• Issues of MOOCs

• Conclusion

• Future plan

• References

Page 3: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

What is edX?

An organization established by MIT and Harvard

University that develop an open-source technology

platform to deliver online courses.

edX is a non-profit MOOC, available to the open source

community as different modules such as LMS(Learning

Management System),CMS(Content Management

System), edx-ora (Open Response Assessment) etc.

The aim of edX is to provide better education to all over

the world through online learning platform, from the

combination of best faculty and reputed universities.

Page 4: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Massive Open Online Courses

(MOOCs)

A massive open online course (MOOC) is a free Web-based

distance learning program that is designed for the participation of

large numbers of geographically dispersed students.

Student should have internet access to utilize this opportunity.

Students sign up for MOOCs to extend current knowledge,

challenge themselves , to get more competition certificates.

Page 5: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Difference between MOOCs and other

Online Courses Online course focuses more on

content. MOOCs focus more on context in

which the content is organised.

Online courses contain static

content.

MOOCs content evolves

dynamically through learner

participation, and collaboration.

Discussion forums are not

provided in Online courses.

Discussion forums are available

in MOOCs

The content in Online courses is

static and custom built. The content in a MOOC can be

replaced/updated quickly.

Online courses participants are

only consumers. Participants are consumers as well

as creators.

Page 6: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Types Of MOOCs

cMOOCs: Connectivism MOOCs (cMOOCs): This is based on

connectivism pedagogy. cMOOCs are not proscriptive, and

participants set their own learning goals and type of

engagement.

xMOOCs: Extension MOOCs (xMOOCs): It follow the

behaviourism, cognitivist, and (social) constructivism approach,

mostly focussed on instructive approach.

Difference between cMOOCs and xMOOCs: Instructors play a

discussion moderator role in cMOOCs whereas in xMOOCs

instructor plays a role of tutor.

Page 7: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Tools for programming in MOOCs

Generally programming tools like compilers, source code editors,

debuggers are used for compilation ,editing , debugging etc.

In MOOCs student learn basics of programming and most of them

have no programming knowledge, they starts as a beginner.

Efficiency of any programmer and programming language is

always some how depends on programming environment and

compiler or IDE being used at the time of programming.

Compiler is a software translator which accepts, as input, a

program written in a particular high-level language and produces,

as output, an equivalent program in machine language for a

particular machine.

Page 8: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

List Of Some Auto grading Tools

Page 9: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Tool's name Main Features Supported

Languages

Work

Mode

Grading Metrics

Course Marker Scalability, maintainability.

Security, configurability.

Plagiarism detection.

Work with levels of

feedback.

Java, C++. Standalone

Typography.

Functionality.

Objects relations

Marmoset Scalability, maintainability.

Security, configurability.

Plagiarism detection.

Work with levels of

feedback.

Any language Standalone

Dynamic and static

analysis.

Web Cat Extensibility and flexibility

based on plugins.

Access security.

Portability.

Semi and automatic

process.

Java, C++,

Scheme, Prolog,

Standard ML, and

Pascal. Flexibility

for any language.

Standalone

Code correctness.

Test validity.

Extensible by

plugins.

Virtual

Programming

Lab

Moodle integration.

Customizable grading

mode.

GNU GPL license.

Plagiarism detection.

Configurable activities.

Jail environment

Ada, C, C++, C#,

Haskell,

FORTRAN,

Java,Octave,

Pascal,PHP,

Prolog, SQL,

Ruby,Python,

Scheme,Vhdl.

Moodle

plugin

Correctness based

on test cases.

Grading Tool

(Magdeburg

University)

Use of services.

Configurable evaluation

process.

Haskell, Scheme,

Erlang, Prolog,

Python, Java

LMS

extension.

Compilation.

Execution.

Dynamic tests.

Page 10: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

WebCAT

WebCAT is one of the most popular automated assessment

tool used by many institutes to assess students program source

code.

It is plug-in based and evaluation is based on how well student

test their own code.

Student construct their own test suites to test their code for

different test cases and then WebCAT marks students program

code on the basis of success factor of test cases that are passed

by student’s source code.

The tool Supports java, C++, Scheme and many other

Programming languages.

Page 11: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer
Page 12: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

PASS(Program Assessment using specified solutions) is another

automated assessment tool used to assess C Programs of students. It

compares submitted program with provided solution plan rather

than using script based method which verify correct output or

program metrics, such as cyclomatic complexity.

CourseMarker is a tool developed in Nottingham University.

Evaluation metrics of this tool is typography (indentations,

comments, etc.), functionality through test cases, and programming

structure used. The programming languages are java and C++ and it

has been built using java. Scalability, maintainability and security

are its main advantages.

CodingBat is a free site of live coding problems to build coding

skill in Java and Python. It was created by Stanford computer

science lecturer Nick Parlante. The problems on Coding Bat are

short and provide immediate feedback . A limitation to CodingBat is

that it is only available for Java and Python, not C.

Page 13: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Automatic assessment of students

knowledge

Student

Page 14: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Methods used for Grading source

code

Software Quality Metric Method- Utilize Count of lines of

code, Complexity, types of variables etc.

Static Analysis Method- Close to manual grading process,

evaluation is done before code compilation for e.g. pattern

matching.

Dynamic Testing Method- Use Test cases to test the source

code.

Page 15: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Features of an Autograding tool for

MOOCs Features that can be appended to an autograding tool are:

Source code assessment

Code style evaluation

Plagiarism detection

Page 16: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Existing Autograding tools are

lacked of some features

• Grading for problems having different answer options

• Grading for partially correct answers

• Lack of continuous assessment

Page 17: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Dynamic testing using semantic

analysis

OSSL

Processor

Compiled

Program

Executor

Program Output

Validator

Test Reports Test Input1 Test Input n

Output IR 1 Output IR 2

Grading Instructions

Grader

Page 18: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

write a program that tests which points of a giving set of

Cartesian coordinates can define a square.

0 10 20

10

Answer 1:

(20,0) (10,0) (20,10) (10,10) (10,0) (10,10) (0,0) (0,10) Answer 2:

(10,0) (0,0) (0,10) (10,10) (20,10) (20,0) (10,10) (10,0)

Cartesian Representation Of a Square

Specified Solution:

(0,0), (0,10), (10,10), (10,0), (20,0), (20,10)

Page 19: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Grading Process

Page 20: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Benefits Of MOOCs

Educational benefits for higher institutes, professors, and

students.

It made education more accessible to as many people as possible.

Participants sign up for MOOCs free of charge or minimal fee to obtain a completion certificate.

Openness of Learning environment.

Qualitative digitized course.

Students are able to perceive relationships between their existing knowledge and new things they are learning.

MOOCs enhance students programming skills and diversify their existing programming knowledge.

Page 21: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Issues Of MOOCs

Students work evaluation is difficult.

Absence of student immediate feedback.

Burden of time and money.

Lack of student participation in online forums.

Quality of MOOC education.

Quality assessment of student work.

Page 22: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Conclusion

The conclusions of this assessment tool are:

Assess student’s knowledge.

Grading process is close to manual grading process

Self assessment enhance students motivation.

Code style evaluation improves students programming skills.

Plagiarism detection will motivate student to write self code which should be less copied.

Page 23: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Future Plan

An autograding tool uses compiled source code for further

process of execution and grading. In future we will plan, how to

modify and extend traditional Dynamic analysis methods and

integrate them with other methods of automatic grading viz. static

analysis and Software quality metric method. It will work as self

assessment tool for students who will start as a beginner as well

as those who wants to diversify their programming skills and

basic programming skills.

Page 24: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

References 1. Khe Foon Hewa, Wing Sum Cheung “Students’ and instructors’ use of

massive open online courses (MOOCs): Motivations and challenges”

Educational Research Review 12 (2014) pp 45–58

2. Yaning Wang , Lannan Xiao “Research on Automatic Scoring Methods

for Programs Based on Program Understanding” Applied Mechanics and

Materials Vols. 513-517 (2014) pp 2054-2058.

3. Julio C. Caiza, Jose M. Del “Programming Assignments Automatic

Grading: Review of Tools and Implementation” 7th International

Technology, Education and Development Conference, Valencia (Spain);

01/2013.

4. P Koyya “Feedback for Programming Assignments Using Software

Metrics and Reference Code ISRN/805963/ ( 2013)

5. Ala-Mutka K. “A Survey of Automatic assessment approaches for

programming assignments” Computer Science Education, (2005) PP 83-102

Page 25: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

6. Gareth Thorburn and Glenn Rowe “Pass: An Automated System For

Program Assessment” Computers Educ. Vol. 29, No. 4, pp. 195-206,

Elsevier Science Ltd. ,1997

7. Julio C. Caiza, Jose M. Del Alamo “Programming Assignments

Automatic Grading: Review Of Tools And Implementations”

Universidad Politécnica de Madrid (SPAIN), 2013

8. Daniela Fonte, Daniela da Cruz, Alda Lopes Gançarski, and Pedro

Rangel Henriques “A Flexible Dynamic System for Automatic Grading

of Programming Exercises” In Proceedings SLATE, 2013

9. Daniela Fonte, Ismael Vilas Boas, Nuno Oliveira, Daniela da Cruz,

Alda Lopes Ganc¸arski and Pedro Rangel Henriques “Partial

Correctness and Continuous Integration in Computer Supported

Education” CSEDU, 2014

Page 26: (Assess Student’s Knowledge) · In MOOCs student learn basics of programming and most of them have no programming knowledge, they starts as a beginner. Efficiency of any programmer

Thanks!!