Spring, 2012 - Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Survey of Automated Assessment Approaches for.

Slides:



Advertisements
Similar presentations
Usage of the memoQ web service API by LSP – a case study
Advertisements

Java Script Session1 INTRODUCTION.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
Chapter 7: User-Defined Functions II
Chapter 7 User-Defined Methods. Chapter Objectives  Understand how methods are used in Java programming  Learn about standard (predefined) methods and.
Lecture 2 Introduction to C Programming
Introduction to C Programming
 2005 Pearson Education, Inc. All rights reserved Introduction.
Introduction to C Programming
Introduction To System Analysis and Design
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Tutorial 4 – Introducing Algorithms, Pseudocode and.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
IS 1181 IS 118 Introduction to Development Tools VB Chapter 06.
Software Quality Metrics
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
Chapter 9 Describing Process Specifications and Structured Decisions
Chapter 2: Algorithm Discovery and Design
 2007 Pearson Education, Inc. All rights reserved Introduction to C Programming.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
ASP.NET Programming with C# and SQL Server First Edition
C++ for Engineers and Scientists Third Edition
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Introduction to C Programming
Names and Bindings Introduction Names Variables The concept of binding Chapter 5-a.
Chapter 2: Algorithm Discovery and Design
Adding Automated Functionality to Office Applications.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
Introduction to High-Level Language Programming
Introduction To System Analysis and design
Introduction 01_intro.ppt
I. Pribela, M. Ivanović Neum, Content Automated assessment Testovid system Test generator Module generators Conclusion.
Chapter 9 Describing Process Specifications and Structured Decisions
Chapter 6 : Software Metrics
CSC3315 (Spring 2009)1 CSC 3315 Programming Languages Hamid Harroud School of Science and Engineering, Akhawayn University
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.
Introduction To System Analysis and Design
Event Management & ITIL V3
1 Chapter 4: Selection Structures. In this chapter, you will learn about: – Selection criteria – The if-else statement – Nested if statements – The switch.
Summary of what we learned yesterday Basics of C++ Format of a program Syntax of literals, keywords, symbols, variables Simple data types and arithmetic.
Use of Coverity & Valgrind in Geant4 Gabriele Cosmo.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 2 Chapter 2 - Introduction to C Programming.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Database Systems Design, Implementation, and Management Coronel | Morris 11e ©2015 Cengage Learning. All Rights Reserved. May not be scanned, copied or.
Overview of Form and Javascript fundamentals. Brief matching exercise 1. This is the software that allows a user to access and view HTML documents 2.
The Software Development Process
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
1 CS 211 Computer Programming II. 2 Staff Instructor Vana Doufexi Ford Building, 2133 Sheridan, #2-229 Teaching Assistant.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Cross Language Clone Analysis Team 2 February 3, 2011.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Copyright © 2011 Pearson Education Process Specifications and Structured Decisions Systems Analysis and Design, 8e Kendall & Kendall Global Edition 9.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
1 Lecture 2 - Introduction to C Programming Outline 2.1Introduction 2.2A Simple C Program: Printing a Line of Text 2.3Another Simple C Program: Adding.
Code improvement: Coverity static analysis Valgrind dynamic analysis GABRIELE COSMO CERN, EP/SFT.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Types for Programs and Proofs
Java Primer 1: Types, Classes and Operators
Java programming lecture one
CIS16 Application Development – Programming with Visual Basic
Chapter 1 Introduction(1.1)
Chapter 8 Advanced SQL.
Introduction to C Programming
Presentation transcript:

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Survey of Automated Assessment Approaches for Programming Assignments Gayathri Subramanian

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 1.‘A Survey of Automated Assessment Approaches for Programming Assignments’ by ‘Kirsti M. Ala-Mutka’ (1995 – 2005). 1.‘Review of Recent Systems for Automatic Assessment of Programming Assignments’ (2005 – 2010) 2 Reference Papers

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Introduction and Motivation  Static and Dynamic Assessment Techniques  Features of a good Automated Assessment System  Automatic Vs Semi-Automatic Approaches  Summative Vs Formative Approaches  Conclusion 3 Outline

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science Motivation  Programming Courses are integral part of Computer Science and Software Engineering Curricula.  Proficiency in a programming language is obtained with practice.  Programming Courses are large in size and heavy workload for the teachers.  Even small programs typically have a large number of possible execution paths.  Research suggest that it is not possible to consistently and thoroughly grade students’ programs without automated assistance.  Programs can be automatically assessed !!

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  New Automated Systems are being created every year  Many System share common features  Systems exist which satisfy most of the assessment needs  There are far less system that are widely adopted than there are papers about it.  Literature survey helps teacher identify tool they are looking for. 5 Motivation.. Cntd..

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science What are the features of a program which can be automatically assessed and the tools which support them ? 6

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Programs follow syntax and semantics which makes automatic assessment feasible  Extract some kind of measurement value (justified by teaching goals) from a program and Compare them against the given requirements (or teaching goals)  Some features requires execution of the program, some are statically evaluated  Functionality, Efficiency and Testing Skills are Dynamically Assessed  Coding Style, Programming Errors, Software metrics and Design can be statically assessed 7 Static & Dynamic Assessment of the Code

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 8 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Running the program against test cases [Course Marker, HOGG, BOSS, online Judge]  Success depends on Test Case Design and Model Solution  Coverage Analysis – Function, Statement, Decision measures efficiency of test cases  Correlated Test Cases - defining a test case with a planned relationship to the program state created during previous test input. [Quiver]  There should be certain degree of freedom in representing model solution [Assyst using pattern matching and Course marker uses Reg-exp]  Course Marker checks for the return status of the program. 9 Functionality ( Dynamic Assessment )

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Assess functionality of single function/Method[Quiver for Java, Scheme-Robo for Schema]  Assessing the functionality of a program with a GUI requires a means to monitor actions and responses communicated through the user interface.[JEWL (a language library) for Java provides students GUI and teachers to manage events of program and its output actions] 10 Functionality.. Cntd

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 11 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Testing is an essential phase in program development.  Students submit test data sets along with the programming assignment.  Assyst was the first tool that provided assessment of student test data. The assessment was based on Code Coverage Analysis  Chen (2004) assesses the student test suite by running a set of buggy instructor programs against it.  Webcat - When a student submits a test data set, it assesses how well it covers all the different execution paths. 12 Testing Skills (Dynamic Assessment)

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 13 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  A simple efficiency measurement is the running time of the program, measured either by the clock or CPU time used.[Assyst, Online Judge]  Efficiency measurements can be distorted by different implementation of input/output actions.  A simple solution is to offer a common input/ output module for use in assignments.[Hansen and Ruuska]  Efficiency can also be assessed by studying the execution behavior of different structures inside the program.  This is done by calculating how many times certain blocks and statements are executed and by comparing the results to the values obtained from the model solution.[Assyst, Course Marker] 14 Efficiency ( Dynamic Assessment )

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 15 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Language specific implementation issues can be difficult to learn and assess.  students often misuse memory management, do not deallocate all the reserved memory blocks.  [Tutnew ] C++ library which overrides normal memory management methods and thus can provide runtime assessment for program memory usage.  the test cases affect the coverage of this assessment, since they define the execution paths for the program. 16 Language Specific Features ( Dynamic Assessment)

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 17 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Programming style or coding style and its connections to readability, maintainability etc.  Typographical - E.g. indentation, placement of parenthesis, maximum length of line  Syntax - every switch-statement should have a default-branch, and each case-branch should end to a break-statement.  Semantic - class names begin with a capital letter and each declared variable should be used in the program.  Logical. Issues related to the logical structure of the program. E.g. there should not be too deeply nested loops, methods should not have a huge number of parameters, and global variables should not be used as method parameters.  Making use of effectiveness of compilers and their warning capabilities  GCC compiler (GCC) can provide feedback on unused variables, implicit type conversions, and language features that are not following the language standards, amongst other things. 18 Coding Style ( Static Assessment )

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Checkstyle is open source software for checking Java programs and can be combined to several programming environments.  Comments for classes, attributes and methods  Naming conventions of variables, methods  Number of parameters passed to a function  Duplicated code sections  The good practices of class construction  Complexity Measurements of expressions  Style++ is another tool that has been developed for assessing quality factors from C ++ programs  An automatic system PASS (PASS) has been implemented to assess these issues from programs in Ada, C, and Java languages Coding Style.. cntd

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 20 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  some errors, suspicious code fragments can be recognized statically.  Static check to recognize several typical error types caused by students. Eg, mistakes in updating a loop control variable or inconsistencies between a parameter type and usage.  Xie and Engler (2002), who used code redundancies for detecting errors. By implementing a tool to detect idempotent operations, redundant assignments, dead code, and redundant conditionals, they were able to find several errors from the well known Linux source code. 21 Programming Errors ( Static Assessment)

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 22 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Software Metric are general metric that characterize the program  Hung, Kwok and Chan (1993) studied different metrics with programming assignments and came to conclusion that the number of code lines was a good measurement of students’ programming skill.  counting different attributes, such as the number of operators and operands in a program, Control Structures  metrics as clear indicators of student performance and also possible indicators of needs for instructional development. 23 Software Metrics ( Static Assessment )

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 24 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Teachers often need to assess whether submitted programs conform to given interface or structural requirements.  Thorburn and Rowe (1997) implemented a system that automatically recognizes the functional structure of a C program. They call it the ‘‘solution plan’’ of the program and compare it to the solution plan of the model program, or to a set of possible plans.  Truong, Roe and Bancroft (2004) implemented a structural similarity analysis that transforms a student’s program to XML presentation and compares it to the set of model solutions.  MacNish (2000) used the Java reflection for analyzing if class interfaces and method signatures in students’ Java programs met the given requirements. 25 Design ( Static Assessment )

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science 26 What Features of a Program can be automatically Assessed ?

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Search for specific key-word based on teaching goal.  In Scheme language to assess whether program structure is purely functional by searching for primitives set!, set-car!, and set-cdr!  A more flexible approach has been implemented in Ceilidh (Foxley, 1999) by defining regular expressions to be searched from the student’s program code. 27 Language Specific Features

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science Essential Features of Automatic Assessment tool for a Programming Course 28

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  AA is a means for administrating submission, grading, general information delivery  Benefits of Automated Administration  Efficient way to track student progress and to Recognize needs for improvement on the course  peer-reviewing becomes feasible. Students comment on each others’ programs. 29 Automated Administration

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Computer programs are text files that are easy to copy.  From Structural Information of the program  MOSS is based on document fingerprinting  JPLAG uses string tokenization with sub-string pattern matching  Attribute Counting Mechanism  Verco and Wise (1996) compared automated tools based on attribute counting mechanisms 30 Plagiarism Detection

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Resubmissions are required for improving the answers.  Resubmission policy should prevent the trail-and-error strategy by some students  Limit the number of submissions  Limit the amount of feedback  Compulsory Time penalty  Making each exercise slightly different  Programming Contest approach [Mooshak]  Combination of limited and unlimited submissions based on test cases 31 Resubmission Policies

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Programming assignments are graded by running the code on Server, its important to protect the sever from malicious and unintended code bugs and flaws  Use Existing approaches like Linux security model, chroot, Java Security policy etc to securely run code  Use Static Analysis to filter malicious code  Grading on the client side 32 Sand Boxing

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Survey by Pears et.al in 2007 reported that tools were single largest group amongst papers, other categories were curricula, pedagogy and programming languages  Many of these System share common features and there exists systems which fulfills most assessment needs  New Automatic assessment system are being created every year 33 Open Sourcing

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Quality of the automatic feedback may not be as high as one given by an instructor  All issues related to good programming cannot be automatically assessed.  Hybrid approach uses Automation for small assignments and to combine manual and automation for larger assignments  [Advantages] gives teachers more time to concentrate on the demanding assessment tasks and also provides a possibility to double check the results of the automatic assessment. 34 Semi-automatic vs. Automatic Assessment

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Formative Assessment : Allows Resubmission to help student improve the answer based on feedback.[Complete Program should be submitted in first attempt, except Web-cat]  Summative Assessment : [BOSS] can be used in homework assignments, online examinations 35 Formative vs Summative Assessment

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science  Benefits are numerous!  Immediate Feedback to students  24h availability  Objectivity and Consistency of the evaluation  More Practice to students  Some features of a program can only be assessed with automatic assessment and some features cannot. Hybrid Approach may be useful.  Tool Specific Issues  Setting up configuration files may be time consuming.  Specification should be non-ambiguous  Effectiveness also depend Test Cases  If similar tool approaches are used, good assignments and their assessment routines could be stored and reused.  Tools should be made widely available ! 36 Conclusion

Spring, Reinventing etextbook - Virginia Tech – Computer Science Click to edit Master title style Spring, 2012, Reinventing eTextbook - Virginia Tech – Computer Science Thank You 37