auto-graded programming exercises -...

15
Auto-graded Programming Exercises OCC Flex Day Fall 2017 - Session # 7

Upload: dangdieu

Post on 04-Jun-2018

260 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Auto-graded Programming

Exercises

OCC Flex Day Fall 2017 - Session # 7

Page 2: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Why Auto-graded Programming Assignments?

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

1. Students need more

programming practice

Programming is a skill, like

playing the Tuba

They cannot passively absorb it

2. Students need more, quicker

focused feedback

3. Hand-grading stacks of

programming assignments is

tedious & ineffective

Consistency very hard to achieve

Feedback often perfunctory

Page 3: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

How to Use Prewritten Auto-graded Exercises

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Get Gmail account for school

Don't use personal account

Give students link to Google Doc

Example homework assignment

Page 4: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

How to Use Prewritten Auto-graded Exercises

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

All students have a Google Drive

Make a copy in their own Drive

They can make their own notes

Homework never gets lost

Ask for screen shots

Source code and score report

Student save as PDF then upload to

Canvas

You grade with Speed Grader

Page 5: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

How to Use Prewritten Auto-graded Exercises

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Quickly see submitted code

I'll use examples in lecture or to

help me notice things that

students don't understand

Keep points low to discourage

cheating, but keep points high

enough so that students will

actually do the assignments

I suggest 10-15% for

assignments

Page 6: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Codingbat (codingbat.com)

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Nick Parlante (Stanford, Google)

Java & Python problems

Functions/Methods only

Well organized by topic, difficulty

Free, no login, no ads, reliable

If students create account, then

you can collect assignments

Use Excel for grading

Custom pages, problems

Con: best known, so students

can just Google most problems

Page 7: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Practice It (practiceit.cs.washington.edu)

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Stuart Regis & Marty Stepp at

University of Washington

Originally for textbook Building

Java Programs

Students must create account

No ads, students can see solution

No teacher features (PrenHall)

CS1, 2 Java & new JavaScript

Wide variety (not just functions)

No customization

Good source for your own

problems and for test questions

Page 8: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Code Step By Step (www.codestepbystep.com)

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Developed by Marty Stepp

(now at Stanford)

Students must login, cannot

"squash" ads (top/bottom)

Problems in C, C++ (355), Java

(405), Python (310), PHP, C#

(322), HTML & CSS, JavaScript

(230), ML, Racket & Ruby

Also good source for problems

Teacher features

No customization

Page 9: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Code Check (horstmann.com/codecheck)

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Developed by Cay Horstmann at

San Jose State

Free, no login, no ads

Java and Python exercises from

Horstmann text books

Usually from previous versions

Server can be temperamental

Used for Wiley textbooks so

usually comes back up quickly

Can host your own problems

Java, C++, Python, Racket, C#

Page 10: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

CodeCheck Canvas Submission

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Program written to bulk-grade

Codecheck assignments

Students upload JAR file for each

part of assignment

Download assignments

Run script to produce text report

Run script which updates grades

on Canvas

Code is free, but I found it was

more work than it was worth

Docs & Downloads

Bitbucket repository

Page 11: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Can use custom pages to group

together assignments for a

particular class

Can create account with "fake"

email address for class

No way to recover if you lose pw

All pages start with:

codingbat.com/home/<email>

Good example (& samples)

[email protected]

http://codingbat.com/home/[email protected]

Codingbat Custom Pages

Page 12: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Custom problems are easy to

write if they match CB style

Must be a "function" problem

You write a working version

Provide input test cases

Run to find out actual values

Documentation:

codingbat.com/authoring.html

Codingbat Custom Problems

Page 13: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Custom CodeCheck Problems

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

C++, Java, Python & Racket

Convention over configuration

Easiest one to write tests for

Simply mark up a single file

Wider type of tests than

Codingbat

Authoring Docs

Zip, upload and save URL

Seems to stay forever

Page 14: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Testing Frameworks for non Web

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

C++ CS150Check

Works with any IDE

I'm using it with Linux this

semester

Make a solution and

compile tests into a

library

Give students starter

code with library in

project

Auto submit it web app

Page 15: Auto-graded Programming Exercises - Schedschd.ws/hosted_files/fallflexday2017/6d/FlexDay-Autograding.pdf · Java, C++, Python, Racket, C#. CodeCheck Canvas Submission Auto-graded

Testing Frameworks for non Web

25-Aug-17Auto-graded Programming Exercises - Stephen Gilbert

Java, use JUnit and

custom runner with

custom Dr Java

Have the library code

compiled into DrJava

Write a test and give

students only class file

Dr Java, selects and runs

the tests

Example assignment