Automated Assessment of Programming Exercises

Slides:



Advertisements
Similar presentations
OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Advertisements

Evaluating Online Tutorials for Data Structures and Algorithms Courses June 24, Simin Hall, PhD Mechanical Engineering Prof. Clifford A. Shaffer,
Automating Bespoke Attack Ruei-Jiun Chapter 13. Outline Uses of bespoke automation ◦ Enumerating identifiers ◦ Harvesting data ◦ Web application fuzzing.
Style checker for JAVA Baile Herculane, – U. Sacklowski, Dept. of Comp. Sc., HU-Berlin1 A style checker for JAVA and its application at.
Google Web Toolkit - Gufran Mohammed. Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
Review David Rabinowitz. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Which topics we have not discussed?
Robofest 2001 Online Management System Jim Needham MCS 4833/01 Senior Project Dr. Chan-Jin Chung, Ph.D.
Types and Techniques of Software Testing
CS 160: Software Engineering August 27 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Server Side Scripting Norman White. Where do we do processing? Client side – Javascript (embed code in html) – Java applets (send java program to run.
CS102 Introduction to Computer Programming
Unit 16 Procedural Programming
6 Steps of the Programming Process
MASTERS THESIS DEFENSE QBANK A Web-Based Dynamic Problem Authoring Tool BY ANN PAUL ADVISOR: PROFESSOR CLIFF SHAFFER JUNE 2013 Computer Science Department.
Automated Evaluation of WordPress Theme Design Abstract A major obstacle in publishing a website is developing a well-designed user interface for the content.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Working with Objects Creating a Dynamic Web Page.
IST 210: PHP BASICS IST 210: Organization of Data IST210 1.
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
1 3. Computing System Fundamentals 3.1 Language Translators.
Intro to PHP IST2101. Review: HTML & Tags 2IST210.
CS 4720 Dynamic Web Applications CS 4720 – Web & Mobile Systems.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Reactive learning Objects for Distributed e-Learning environments Patrick Duval, Agathe Merceron, Michel Scholl Computer Science Department Engineering.
An Introduction to the Gradebook Available for this Web Site as of August 16, 2003.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
Sept. 25, 07.  jGrasp.org jGrasp.org  An Integrated Development Environment with Visualizations for Improving Software Comprehensibility  jGRASP is.
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
Managing Web Server Performance with AutoTune Agents by Y. Diao, J. L. Hellerstein, S. Parekh, J. P. Bigus Presented by Changha Lee.
Introduction to JavaScript Fort Collins, CO Copyright © XTR Systems, LLC Introduction to JavaScript Programming Instructor: Joseph DiVerdi, Ph.D., MBA.
A centre of expertise in digital information managementwww.ukoln.ac.uk UKOLN is supported by: Effective Web Site Training Workshop: Benchmarking Web Sites.
IST 210: PHP Basics IST 210: Organization of Data IST2101.
Web Server Architecture/Hosting Capstone Project2 Name-ASFAQUE KHAN Regno
Progranimate an Introduction. What is Progranimate Progranimate is a programming environment designed specifically for novices Progranimate allows the.
Applications Active Web Documents Active Web Documents.
Introduction to.
Supporting Active Learning by Introducing an Interactive Teaching Tool in a Data Structures and Algorithms Course Tommy Färnqvist 47th ACM Technical Symposium.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Module: Software Engineering of Web Applications
Testing Tutorial 7.
Different Types of Testing
The Internet and HTML Code
Section 17.1 Section 17.2 Add an audio file using HTML
Google Web Toolkit - Gufran Mohammed
Problem addressed HTML 4.01 strict, XHTML 1.0 strict or superior are allowed by the Italian regulations Distinct dominions not easily comparable 43% of.
Web page a hypertext document connected to the World Wide Web.
Section 10.1 YOU WILL LEARN TO… Define scripting
Comp Sci 200 Programming I Jim Williams, PhD.
CS Programming I Jim Williams, PhD.
Department of Computer Science
Dignitas Digital Pvt. Ltd.
Database Driven Websites
Dynamic Web Pages JavaScript Jill Thomas Oct 14, 2003.
Visual Studio 2005 “Personalized productivity”
Computer Aided Teaching & Testing
Implementation and Maintenance
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
Introduction to Data Structures
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
JavaScript.
Design and Implementation
Data Structures and Algorithms for Information Processing
Unit 6 part 3 Test Javascript Test.
CSE S. Tanimoto Paradigms
ECE 103 Engineering Programming Chapter 56 Runtime Errors
Database Connectivity and Web Development
Helping you make your code better
Review of Previous Lesson
Test Tools Tools can be useful but are they worth it? Cost
Presentation transcript:

Automated Assessment of Programming Exercises

Programming Exercises Can categorize into: Large Small There are similarities and differences in what the system provides for these use cases. We will start with systems for “small” exercises

Codingbat Pretty basic, but a good yardstick to measure against. Fairly widely used in CS Small exercises Lots of sites have answers. http://codingbat.com

CodeAcademy http://codeacademy.com

Dynamic vs. Static Assessment The goal is to (automatically) assess, and give feedback Dynamic Assessment: The runtime behavior of the student’s answer We generally use this as a proxy for “Does it compute the right function?” A heuristic: Unit tests Static Assessment: Evaluation of the “quality” of the student’s answer (distinct from correctness) Does it do things “in the right way” Heuristics on the code, NOT its behavior

OpenDSA Programming Exercises Geared for small exercises (write/edit 5-20 lines of code). Evaluated in a “sandbox” on a server. Java-only right now Process: Check for compiler errors, return if any. Dynamic analysis: Run unit tests. Feedback if there are problems. Static analysis: Check various heuristics. http://algoviz.org/OpenDSA/Books/RecurTutor/html/CodeCompletionEx.html

Feedback: Program Visualization Algorithm Visualization vs. Program Visualization AV: Tutorial presentation of an algorithm. The algorithm is “baked into” the AV PV: Visual feedback generated from a program to help understand that particular program jGRASP JhavePOP http://jhave.org/jhavepop Code Mirror (PythonTutor, Guo) http://pythontutor.com PV does not address the issue of whether the program is “correct”, it helps the user to decide that for themselves

Khan Academy (Programming) HTML5-based Integrates tutorial content, quizzes, and programming exercises At least some exercises are HEAVILY scaffolded, and heavily scripted with detailed requirements. https://www.khanacademy.org/computing/computer- programming/programming

Web-CAT Designed to support grading of large programs Aspects of (support for) manual grading, and automated grading Style checking Unit testing (test cases “correct” or not, time constraint) Testing vs. debugging Code coverage of student tests