(assess student’s knowledge) · in moocs student learn basics of programming and most of them...
TRANSCRIPT
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
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
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.
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.
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.
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.
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.
List Of Some Auto grading Tools
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.
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.
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.
Automatic assessment of students
knowledge
Student
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.
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
Existing Autograding tools are
lacked of some features
• Grading for problems having different answer options
• Grading for partially correct answers
• Lack of continuous assessment
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
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)
Grading Process
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.
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.
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.
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.
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
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
Thanks!!