Tools For Programming In MOOCs (Assess Student*s Knowledge)

Tools For Programming In MOOCs
(Assess Student’s Knowledge)
M.Tech Project under the supervision of
Prof. Deepak B. Phatak
Presented by:
Veerta Singh
M.Tech(I.T)
Roll no. 17056
ABMTI13120
Contents
•
•
•
•
•
•
•
•
•
Introduction
Types of MOOCs
Tools for programming
List of Auto grading Tools
Grading Methods
Benefits of MOOCs
Issues of MOOCs
Conclusion
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.
Compiler
Source Code
Machine
Executable Code
Preprocessing
Processing
List Of Some Auto grading Tools
Tool's name
Main Features
Supported
Languages
Java, C++.
Work
Mode
Standalone
Grading Metrics
Course Marker
Scalability, maintainability.
Security, configurability.
Plagiarism detection.
Work with levels of
feedback.
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.
Completeness.
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.
Open for new
methods.
Grading Tool
(Magdeburg
University)
Use of services.
Configurable evaluation
process.
Haskell, Scheme,
Erlang, Prolog,
Python, Java
LMS
extension.
Compilation.
Execution.
Dynamic tests.
Typography.
Functionality.
Structures use.
Objects design.
Objects relations
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. It also supports manual assessment
process.
 PASS(Program Assessment using specified solutions) is another
automated assessment tool It 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, programming
structure use, and verification in design. 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 in the browser. 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 , keyword matching.
Features of an Autograding tool for
MOOCs
 Features that can be appended to a compiler 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
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 assessing compiler are:
 Assess student’s knowledge.
 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!!