%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Jun 21 11:15:27 2002 %%Pages: (atend) %%DocumentFonts: (atend) %%EndComments /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ 100 100 div dup scale save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def /Y{/Symbol FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 1230 V 12 B 1417(Detecting)S 1940(copied)S 2306(submissions)S 2954(in)S 3085(computer)S 3613(science)S 4007(workshops)S 1470 V 10 I 2754(Dick)S 2970(Grune)S 1590 V 2679(Matty)S 2939(Huntjens)S 1770 V 10 R 2544(Vakgroep)S 2966(Informatica)S 1890 V 2298(Faculteit)S (Wiskunde)407 2676 A 3108(&)S 3211(Informatica)S 2010 V 2636(Vrije)S 2869(Universiteit)S 2130 V 2605(De)S 2748(Boelelaan)S (1081)200 3176 A 2250 V (1081)200 2458 A 2683(HV)S 2879(AMSTERDAM)S 2490 V 2665(November)S (1989)200 3115 A 2870 V 10 I 2752(ABSTRACT)S 3130 V 10 R 1348(In)S 1471(most)S 1705(computer)S 2125(science)S (workshops,)460 2462 A 2962(the)S 3125(students')S 3528(submissions)S 4058(are)S 4222(graded)S 4536(by)S 4676(more)S 3250 V 1098(than)S 1307(one)S 1488(supervisor.)S 1993(This)S 2208(allows)S 2507(a)S 2587(student)S 2912(to)S 3025(submit)S 3333(work)S 3575(that)S 3761(has)S 3930(already)S 4262(been)S (submitted)396 4487 A 3370 V 1098(before)S 1381(by)S 1506(another)S 1833(student)S 2148(to)S 2251(another)S 2578(supervisor,)S 3047(with)S 3251(minimal)S 3611(chance)S 3916(of)S 4025(being)S 4273(detected.)S 3490 V 1098(This)S 1306(leads)S 1542(to)S 1649(an)S 1773(unfair)S 2043(situation)S 2418(in)S 2525(which)S 2800(students)S (receive)292 3158 A 3479(points)S 3754(for)S 3902(work)S 4139(they)S 4342(have)S 4562(not)S 4720(per-)S 3610 V 1098(formed)S 1429(and)S 1614(from)S 1850(which)S 2136(they)S 2349(have)S 2579(learned)S 2916(nothing.)S 3312(This)S 3530(paper)S 3793(describes)S 4207(how)S 4419(the)S 4581(Section)S 3730 V 1098(Computer)S 1525(Science)S 1864(of)S 1973(the)S 2121(Vrije)S 2354(Universiteit)S 2855(in)S 2958(Amsterdam)S 3453(attempts)S 3819(to)S 3922(prevent)S 4249(this)S 4419(situation.)S 4090 V 10 B 720(Introduction)S 4246 V 10 R 970(Computer)S 1406(science)S (workshops)435 1738 A 2208(with)S (multiple)335 2422 A 2792(supervisors)S 3285(pose)S 3504(a)S 3584(difficult)S 3944(problem:)S 4342(\252How)S 4618(can)S 4793(we)S 4946(see)S 5110(that)S 4366 V 720(the)S (submitted)396 871 A 1295(work)S 1530(is)S 1625(not)S 1780(a)S (copy?\272)285 1852 A (Copy)217 2164 A 2408(detection)S 2804(is)S 2898(not)S 3053(trivial,)S 3346(as)S 3457(may)S 3657(be)S 3779(seen)S 3985(from)S 4208(the)S 4358(fact)S 4537(that)S 4715(the)S (workshop)396 4865 A 4486 V (Introductory)503 720 A 1255(Programming)S 1840(at)S 1945(our)S 2112(faculty)S (involved)351 2425 A 2809(1)S 2892(coordinator)S 3389(and)S 3567(8)S 3650(supervisors,)S 4166(for)S 4317(a)S 4395(total)S 4607(of)S (181)150 4724 A 4907(students,)S 4606 V (each)185 720 A (submitting)429 935 A 1394(10)S 1524(programs.)S 1984(This)S 2193(paper)S 2446(describes)S 2850(a)S 2924(solution)S 3276(based)S 3534(on)S 3663(the)S 3815(automatic)S 4241(mutual)S 4549(comparison)S 5047(of)S 5160(all)S 4726 V 720(submissions.)S 4966 V 10 B 720(The)S 913(Similarity)S 1369(Tester)S 5122 V 10 R 970(The)S 1159(wish)S 1381(to)S 1492(have)S 1715(a)S 1793(program)S 2167(for)S 2318(finding)S 2641(common)S 3025(sections)S 3382(in)S 3493(two)S 3677(program)S 4051(texts)S 4274(did)S 4435(not)S 4596(first)S 4792(originate)S 5183(in)S 5242 V 720(plagiarism)S 1172(detection.)S 1618(Rather,)S 1939(its)S 2061(basis)S 2289(lay)S 2439(in)S 2544(the)S 2694(experience)S 3158(that)S 3336(a)S 3408(large)S 3637(\(semi-\)completed)S 4374(software)S 4748(project)S 5054(often)S 5362 V 720(contains)S 1081(stretches)S 1461(of)S 1572(similar)S 1879(code.)S 2146(When)S (writing)291 2413 A 2731(large)S 2960(software)S 3335(objects)S 10 R-1 3647(-)S 10 R 3704(operating)S 4111(systems,)S 4481(compilers,)S 4930(editors)S 10 R-1 5204(-)S 5482 V 10 R 720(the)S 870(programmer)S 1395(often)S 1629(needs)S 1885(code)S 2102(similar)S 2408(to)S 2512(code)S 2728(that)S 2905(has)S 3065(already)S 3388(been)S (written)286 3604 A 3916(elsewhere)S 4346(in)S 4450(the)S 4599(same)S 4832(project.)S 5188(A)S 5602 V 720(common)S 1103(technique)S 1526(is)S 1625(to)S 1735(use)S 1901(a)S 1978(text)S 2161(editor)S 2428(to)S 2539(make)S 2790(a)S (copy)195 2868 A 3096(of)S 3213(the)S 3369(original)S 3715(code)S 3938(and)S 4116(adjust)S 4389(it)S 4478(to)S 4589(its)S 4717(new)S 4918(purpose.)S 5722 V (Good)223 720 A 975(software)S 1355(engineering)S 1862(practice)S 2214(would)S 2497(probably)S 2886(dictate)S 3187(turning)S 3509(the)S 3664(code)S 3886(into)S 4074(a)S 4151(generic)S (module)301 4479 A 4811(and)S 4987(instan-)S 5842 V 720(tiate)S 932(it)S 1026(for)S 1182(its)S 1315(different)S 1701(purposes,)S 2121(but)S 2287(few)S (languages)402 2477 A 2917(offer)S 3152(this)S (possibility.)443 3335 A 3841(Also,)S 4094(the)S 4255(construction)S 4791(of)S 4914(a)S 4998(proper)S 5962 V (interface)354 720 A 1102(for)S 1248(a)S 1320(generic)S (module)301 1644 A 1972(is)S 2066(an)S 2188(intellectually)S 2741(intensive)S 3131(affair;)S 3406(so)S 3522(the)S 3672(cut-paste-adjust)S 4337(technique)S 4755(is)S (still)151 4849 A (popu-)234 5027 A 6082 V 720(lar.)S 6238 V 970(Once)S 1217(the)S 1374(project)S 1688(has)S (settled)263 1856 A 2153(down,)S 2435(the)S 2592(question)S 2966(arises)S 3230(if)S 3326(these)S 3567(copied)S 3869(pairs)S 4099(can)S 4273(be)S (found)234 4403 A 4672(back,)S 4922(to)S 5035(see)S 5199(if)S 6358 V 720(they)S 923(can)S 1093(be)S 1218(combined)S 1644(profitably.)S 2121(Most)S (copy)195 2357 A 2582(pairs)S (will)157 2808 A 2994(no)S (longer)257 3123 A 3409(be)S 3533(identical)S 3909(and)S (will)157 4083 A 4269(have)S (undergone)424 4488 A 4941(more)S 5177(or)S 6478 V 720(less)S (profound)368 911 A 1319(modifications;)S (unrecognizable)615 1941 A 2597(copies)S 2895(are)S 3060(not)S 3229(interesting)S 3695(in)S 3814(this)S 4000(context,)S 4362(however.)S 4800(These)S 5082(con-)S 6598 V 720(siderations)S 1193(prompted)S 1615(the)S 1775(first)S 1974(author)S 2267(to)S 2381(design)S 2679(and)S 2860(implement)S 3326(a)S 3407(program,)S 3809(the)S 10 I 3968(software)S 4350(similarity)S 4772(tester)S 10 R 4996(.)S 5082(This)S 6718 V 720(program)S 1088(reads)S 1328(the)S 1478(code)S 1695(to)S 1800(be)S 1922(examined,)S 2365(reduces)S 2700(the)S 2850(text)S 3028(to)S 3133(a)S 3205(string)S 3461(of)S 3572(8-bits)S 3828(\252essential)S 4247(tokens\272,)S 4606(and)S 4779(then)S 4980(repeat-)S 6838 V 720(edly)S 918(finds)S 1144(the)S (longest)290 1292 A 1607(common)S (non-overlapping)664 1983 A 2672(substring.)S 3115(Finally)S 3425(it)S 3506(prints)S 3760(a)S 3830(report)S 4096(of)S 4205(its)S 4325(findings.)S 6994 V 970(The)S 1153(criteria)S 1466(for)S 1611(the)S 1761(reduction)S 2168(to)S 2273(essential)S 2647(tokens)S 2936(are)S 3087(programmed)S 3628(in)S 3733(a)S (replaceable)460 3805 A (module)301 4292 A 4620(in)S 4725(the)S 4875(similarity)S 7114 V 720(tester.)S 1019(They)S 1256(usually)S (involve)301 1576 A 1907(reducing)S 2289(all)S 2419(identifiers)S 2857(and)S 3031(numbers)S 3406(to)S 3513(a)S 3587(single)S 3856(token,)S 4133(,)S 4413(all)S 4543(strings)S 4840(to)S 4947(a)S 5021(single)S 7234 V 720(,)S 1120(all)S 1253(characters)S 1695(to)S 1805(,)S 2151(removing)S 2569(all)S 2703(comment)S 3110(and)S 3288(lay-out,)S 3631(and)S 3809(replacing)S (each)185 4217 A 4435(keyword)S 4820(of)S 4937(the)S 5093(pro-)S 7354 V 720(gramming)S (language)363 1180 A 1590(by)S 1737(a)S 1829(separate)S 2207(token.)S 2527(The)S 2731(other)S 2985(program)S 3373(text)S 3571(symbols)S 3951(\(commas,)S 4391(semicolons,)S 4914(etc.\))S 5137(are)S 7474 V (accepted)353 720 A 1098(unchanged)S 1558(as)S 1667(tokens.)S 2004(A)S 2102(typical)S (2000-character)605 2401 A 3031(file)S (will)157 3191 A 3373(result)S 3622(in)S 3725(a)S 3795(skeleton)S 4155(of)S (about)223 4264 A 4512(a)S (100)150 4582 A 4757(tokens.)S 7630 V 970(It)S 1063(is)S 1161(not)S 1320(at)S 1424(all)S 1556(clear)S 1784(a)S 1860(priori)S 2115(that)S 2297(this)S 2473(approach)S 2873(has)S 3038(any)S 3214(chance)S 3525(of)S (success.)327 3640 A 4023(It)S 4116(is)S 4214(easy)S 4424(to)S 4533(imagine)S 4888(that)S 5071(even)S 7750 V 720(slight)S (editing)279 977 A (will)157 1289 A 1479(change)S 1797(the)S 1953(skeleton)S 2321(of)S 2438(a)S 2516(copied)S (piece)213 2817 A 3063(of)S 3180(code)S 3403(to)S 3514(such)S 3731(a)S 3809(degree)S 4111(that)S 4295(the)S 4451(matching)S 4858(procedure)S 8427 V EP %%Page: 2 2 BP /slant 0 def /height 0 def 480 V 10 R 2906(-)S 2965(2)S 3040(-)S 840 V 720(described)S (above)240 1142 A (will)157 1418 A 1611(no)S (longer)257 1747 A (recognize)392 2040 A 2469(it.)S 2612(It)S 2711(is)S 2815(equally)S 3148(easy)S 3364(to)S 3479(imagine)S 3840(that)S 4028(this)S 4210(procedure)S 4650(is)S (fraught)291 4754 A 5082(with)S 960 V 720(false)S (positives.)382 940 A 1376(Practice)S 1731(shows,)S 2036(however,)S 2437(that)S 2617(meaningful)S 3104(results)S 3396(can)S 3565(be)S 3689(obtained.)S 4114(The)S 4300(dangers)S 4641(sketched)S (above)240 5021 A 1080 V 720(do)S 852(materialize,)S 1358(but)S 1518(can)S 1691(be)S 1819(kept)S 2025(in)S 2136(check)S 2404(by)S 2537(specifying)S 2989(a)S 3067(minimum)S 3490(length)S 3774(for)S 3925(the)S 4081(common)S 4465(substrings.)S 4955(A)S (good)200 5061 A 1200 V 720(value)S 971(is)S 1071(24)S 1204(essential)S 1584(tokens;)S 1907(values)S 2197(below)S 2476(18)S 2609(lead)S 2810(to)S 2920(spurious)S (similarities)448 3292 A 3772(to)S 3882(be)S 4009(reported,)S 4402(for)S 4552(example)S 4925(between)S 1320 V 720(declaration)S 1194(lists;)S 1411(values)S 1695(over)S 1901(30)S 2028(cause)S 2279(some)S 2518(meaningful)S 3003(matches)S 3360(to)S 3465(be)S 3587(missed,)S 3918(for)S 4063(example)S 4431(short)S 4659(for-statements.)S 1440 V 720(With)S 949(a)S 1022(proper)S (definition)391 1312 A 1730(of)S 1841(\252essential)S 2260(token\272)S 2555(and)S 2727(a)S 2799(suitable)S 3139(value)S 3384(of)S 3495(the)S 3645(minimum)S 4062(common)S 4440(substring)S 4835(length,)S 5138(the)S 1560 V 720(software)S 1096(similarity)S 1510(tester)S 1757(is)S (found)234 1852 A 2114(to)S 2220(be)S 2343(a)S 2416(useful)S 2690(tool)S 2874(for)S 3020(locating)S 3373(stretches)S 3755(of)S 3868(similar)S 4177(code;)S 4424(the)S 4576(large)S 4807(majority)S 5177(of)S 1680 V 720(the)S 868(reported)S (similarities)448 1229 A 1702(is)S 1794(meaningful.)S 1920 V 10 B 720(Testing)S 1064(for)S 1218(Copies)S 2076 V 10 R 970(Having)S 1296(had)S 1471(these)S (good)200 1708 A 1938(experiences)S 2444(with)S 2653(the)S 2806(similarity)S 3223(tester,)S 3498(we)S 3647(started)S 3947(playing)S 4279(with)S 4489(the)S 4643(idea)S 4842(of)S 4957(using)S 5205(it)S 2196 V 720(to)S 839(find)S 1042(copied)S 1351(work)S 1599(in)S 1718(students')S 2122(submissions.)S 2703(Here,)S 2966(however,)S 3379(the)S (doubts)267 3543 A 3851(raised)S (above)240 4132 A 4412(were)S 4649(felt)S 4824(even)S 5054(more)S 2316 V (strongly;)357 720 A 1114(after)S 1337(all,)S (each)185 1500 A (submitted)396 1722 A 2155(program)S 2533(tries)S 2744(to)S 2859(solve)S 3108(the)S 3269(same)S 3514(programming)S 4099(assignment.)S 4639(Would)S 4950(this)S 5133(not)S 2436 V 720(create)S 992(such)S 1206(a)S 1281(large)S 1513(similarity)S 1929(between)S 2295(the)S (submitted)396 2448 A 2874(programs)S 3284(that)S 3464(the)S 3616(similarity)S 4031(tester)S 4279(would)S 4559(see)S 4717(copies)S 5003(every-)S 2556 V 720(where?)S 1063(And)S 1262(then)S 1461(there)S 1689(is)S 1782(the)S 1931(devious)S 2269(student,)S 2610(who)S (knows)262 2809 A 3097(quite)S 3324(well)S 3524(that)S 3701(his)S 3844(program)S (will)157 4212 A 4396(be)S 4518(checked)S 4875(automati-)S 2676 V 720(cally)S 945(and)S 1119(how)S 1321(is)S 1417(fully)S 1636(aware)S 1907(of)S 2020(how)S 2222(the)S 2374(similarity)S 2789(tester)S 3037(works.)S 3362(Would)S 3664(not)S 3821(this)S 3995(student)S 4314(be)S 4438(able)S 4635(to)S 4742(apply)S 4993(simple)S 2796 V 720(systematic)S 1170(modifications)S 1748(to)S 1851(the)S 1999(original)S 2337(code,)S 2577(so)S 2691(that)S 2867(the)S 3015(result)S 3264(would)S 3540(no)S (longer)257 3665 A 3947(be)S (recognized)442 4067 A 4534(as)S 4643(a)S (copy?)240 4713 A 2952 V 10 I 970(What)S 1207(is)S 1299(\252to)S 1458(look)S 1656(like\272?)S 3108 V 10 R 970(To)S 1114(find)S 1308(an)S 1435(answer)S 1753(to)S 1863(the)S 2018(first)S 2213(question)S 2585(we)S 2735(need)S 2957(to)S 3068(examine)S 3442(the)S 3598(notion)S 3887(of)S 4004(\252similarity\272)S 4513(more)S 4753(closely.)S 5121(We)S 3228 V 720(define)S 1005(the)S 1161(similarity)S 10 I 1580(S)S 3248 V 7 I 1630(N)S 3228 V 10 R 1685(\()S 10 I 1719(A)S 10 R 1781(,)S 10 I 1814(B)S 10 R 1884(\))S 1951(of)S 2068(two)S 2252(program)S 2626(texts)S 10 I 2849(A)S 10 R 2944(en)S 10 I 3072(B)S 10 R (under)229 3167 A 3429(a)S 3506(minimum)S 3928(string)S 4189(length)S 10 I 4472(N)S 10 R 4571(as)S 4687(follows.)S 5071(Sup-)S 3348 V 720(pose)S 929(we)S 1072(want)S 1293(to)S 1396(construct)S 1790(a)S (copy)195 1860 A 2080(of)S 10 I 2189(A)S 10 R 2276(by)S 2401(using)S 2643(segments)S 3042(of)S 10 I 3151(B)S 10 R 3238(only,)S 3466(restricting)S 3900(ourselves)S 4305(to)S 4408(segments)S 4807(of)S 10 I 4916(N)S 10 R 5009(essen-)S 3468 V 720(tial)S 878(tokens)S 1169(or)S 1282(more.)S 1568(The)S 1754(more)S 10 I 1990(A)S 10 R 2081(and)S 10 I 2255(B)S 10 R 2346(are)S 2499(similar,)S 2833(the)S 2985(larger)S 3250(the)S 3402(part)S 3588(of)S 10 I 3701(A)S 10 R 3792(we)S 3939(can)S 4107(construct)S 4504(this)S 4677(way.)S 10 I 4923(S)S 3488 V 7 I 4973(N)S 3468 V 10 R 5028(\()S 10 I 5062(A)S 10 R 5124(,)S 10 I 5157(B)S 10 R 5227(\))S 3588 V 720(is)S 812(then)S 1010(defined)S 1337(as)S 1446(the)S 1594(percentage)S 2056(of)S 2165(essential)S 2537(tokens)S 2824(in)S 10 I 2927(A)S 10 R 3014(that)S 3190(can)S 3355(be)S 3475(constructed)S 3964(this)S 4134(way.)S 3744 V 970(Usually,)S 10 I 1341(S)S 3764 V 7 R 1402(1)S 3744 V 10 R 1445(\()S 10 I 1479(A)S 10 R 1541(,)S 10 I 1574(B)S 10 R 1644(\))S (will)157 1711 A 1901(be)S 2030(near)S (100%,)259 2238 A 2531(since)S (each)185 2772 A 2991(token)S 3248(in)S 10 I 3360(A)S 10 R (will)157 3456 A 3647(occur)S 3905(almost)S 4207(certainly)S 4594(somewhere)S 5087(in)S 10 I 5199(B)S 3864 V 10 R 720(too.)S 926(And)S 1127(for)S 1273(sufficient)S 1682(large)S 1911(values)S 2195(of)S 10 I 2306(N)S 10 R 2373(,)S 10 I 2425(S)S 3884 V 7 I 2475(N)S 3864 V 10 R 2530(\()S 10 I 2564(A)S 10 R 2626(,)S 10 I 2659(B)S 10 R 2729(\))S (will)157 2790 A 2974(be)S 3096(equal)S 3341(to)S 3446(0%,)S 3632(unless)S 10 I 3910(A)S 10 R 3999(is)S 4093(an)S 4215(exact)S (copy)195 4455 A 4677(of)S 10 I 4788(B)S 10 R 4850(.)S 4927(When)S 10 I 5194(N)S 3984 V 10 R 720(increases)S 1126(from)S 1358(0)S 1444(to)S 1558(the)S 1717(length)S 2004(of)S 10 I 2124(A)S 10 R 2186(,)S 10 I 2247(S)S 10 R (will)157 2333 A 2526(decrease)S (monotonously)573 2910 A 3519(from)S 3751(\(almost\))S (100%)234 4124 A 4395(to)S 4510(\(almost\))S 4883(0%.)S 5104(The)S 4104 V 720(similarity)S 1136(percentage)S 10 I 1603(S)S 10 R (will)157 1683 A 1870(decrease)S 2247(more)S 2483(sharply)S 2808(with)S 3016(increasing)S 10 I 3459(N)S 10 R 3555(for)S (non-related)459 3702 A 10 I 4190(A)S 10 R 4281(and)S 10 I 4455(B)S 10 R 4546(than)S 4748(for)S 4895(related)S 10 I 5199(A)S 4224 V 10 R 720(and)S 10 I 894(B)S 10 R 956(.)S 1035(Experiments)S 1573(show)S 1814(that)S 1994(for)S 10 I 2141(N)S 10 Y 2216(=)S 10 R 2271(24)S (non-related)459 2401 A 2890(solutions)S 3282(to)S 3390(a)S 3465(programming)S 4042(assignment)S 4524(have)S 4744(an)S 10 I 4869(S)S 10 R (roughly)312 4949 A 4344 V 720(between)S 1088(20%)S 1304(and)S 1481(50%,)S 1721(whereas)S 2083(related)S 2389(solutions)S 2782(have)S 3003(an)S 10 I 3129(S)S 10 R 3210(of)S 3325(75%)S 3540(to)S 3649(80%)S 3864(at)S 3968(least.)S 4234(This)S 4444(allows)S 4738(us)S 4858(to)S 4967(make)S 5216(a)S 4464 V 720(clear)S 942(distinction)S 1391(between)S 1752(the)S 1900(two.)S 4620 V 970(We)S (will)157 1164 A 1375(now)S 1602(examine)S 1997(assignment)S 10 I 2503(j2)S 10 R 2635(from)S 2886(the)S (workshop)396 3064 A 3515(of)S 3654(the)S (Introductory)503 3832 A 4390(Programming)S 4998(course)S 4740 V 720(described)S (above,)265 1136 A 1431(for)S 1579(which)S 1854(39)S 1983(submissions)S 2502(had)S 2676(been)S 2895(made.)S 3192(Each)S 3423(of)S 3536(these)S 3772(was)S 3958(compared)S 4384(to)S (each)185 4491 A 4705(of)S 4818(the)S 4970(38)S 5099(oth-)S 4860 V 720(ers,)S 888(yielding)S (1274)200 1242 A 1467(match)S 1738(percentage)S 2201(values;)S 2512(these)S 2745(match)S 3017(percentages)S 3519(were)S 3742(then)S (grouped)329 3941 A 4296(into)S 4478(ranges)S 4767(1-10,)S 5002(11-20,)S 4980 V (....,)125 720 A (91-100.)309 878 A 1245(Figure)S 1541(1)S 1624(shows)S 1907(the)S 2062(bar)S 2223(diagram)S 2585(of)S 2701(the)S 2856(frequencies)S 3353(of)S 3469(the)S 3624(various)S 3952(match)S 4230(percentages.)S 4788(We)S 4960(can)S 5132(see)S 5100 V 720(that)S 901(in)S 1009(this)S 1184(assignment)S 1666(most)S 1891(of)S 2005(the)S 2158(submissions)S 2678(are)S 2832(between)S 3198(1)S 3278(and)S 3453(10%)S 3667(similar.)S 4027(The)S 4214(distribution)S 4707(then)S 4910(trails)S 5143(off)S 5220 V 720(to)S 823(41-50%,)S 1191(followed)S 1574(by)S 1699(a)S 1769(few)S (outliers.)327 1946 A 2323(Each)S 2550(of)S 2659(the)S (outliers)302 2807 A 3134(signals)S 3438(an)S (unusual)312 3558 A 3895(situation.)S 5376 V 970(Figure)S 1265(2)S 1347(shows)S 1630(the)S 1785(percentages)S 2293(for)S 2443(a)S 2520(single)S 2792(submission,)S 3300(compared)S 3729(to)S 3839(all)S 3972(other)S (submitted)396 4212 A 4641(programs.)S 5104(The)S 5496 V 720(presence)S 1104(of)S 1219(a)S 1295(match)S 1572(with)S 1782(a)S 1858(high)S 2067(percentage)S 2535(\(61-70%\))S 2952(indicates)S 3341(that)S 3522(perhaps)S 3865(a)S (copy)195 3940 A 4165(has)S 4329(been)S 4549(detected.)S 4965(Human)S 5616 V 720(intervention)S 1231(is)S 1323(then)S 1521(required)S 1882(to)S 1985(decide)S 2273(if)S 2360(indeed)S (copying)323 2653 A 3001(has)S 3160(taken)S (place,)238 3403 A 3666(which)S 3937(one)S 4108(is)S 4201(the)S 4350(original)S 4689(and)S 4860(if)S 4948(perhaps)S 5736 V 720(both)S 923(derive)S 1200(from)S 1421(a)S 1491(third)S 1706(source.)S 5892 V 10 I 970(Possible)S (countermeasures)687 1336 A 6048 V 10 R 970(Assessing)S 1402(the)S (vulnerability)514 1555 A 2099(of)S 2213(this)S 2388(test)S 2558(to)S 2666(actions)S 2981(of)S 3095(\252clever\272)S 3462(students)S 3821(requires)S 4176(us)S 4295(to)S 4403(delve)S 4651(deeper)S 4951(into)S 5138(the)S 6168 V 720(process)S 1053(of)S 1168(handing)S 1522(in)S 1631(and)S 1807(evaluating)S 2257(the)S 2411(students')S 2805(submissions.)S 3376(We)S (will)157 3546 A 3733(again)S 3981(take)S 4179(the)S (workshop)396 4332 A (Introductory)503 4758 A 6288 V 720(Programming)S 1308(as)S 1427(an)S 1557(example.)S 1983(The)S (workshop)396 2175 A 2606(consists)S 2959(of)S 3078(eleven)S 3376(programming)S 3958(assignments)S 4484(of)S 4603(increasing)S 5053(diffi-)S 6408 V 720(culty,)S 978(called)S 10 I 1251(a)S 10 R (through)312 1333 A 10 I 1676(k)S 10 R 1721(.)S 1802(The)S 1990(six)S 2138(assignments)S 10 I 2660(a)S 10 R (through)312 2741 A 10 I 3092(f)S 10 R 3151(are)S 3306(trivial)S 3578(and)S 3754(serve)S 3998(as)S 4113(rote)S 4301(exercises)S 4702(only;)S 4939(the)S 5093(four)S 6528 V 720(assignments)S 10 I 1245(g)S 10 R (through)312 1329 A 10 I 1683(j)S 10 R 1745(are)S 1903(the)S 2060(main)S 2295(course;)S 2620(and)S 2799(assignment)S 10 I 3285(k)S 10 R 3364(is)S 3465(optional.)S 3878(Finished)S 4258(programming)S 4839(results)S 5137(are)S 6648 V 720(sent)S 919(by)S 1056(electronic)S 1491(mail)S 1707(to)S 1822(the)S 1982(supervisor,)S 2463(who)S 2673(tests)S 2889(the)S 3049(proper)S 3349(functioning)S 3848(of)S 3968(the)S 4127(program.)S 4554(If)S 4658(the)S 4817(program)S 5194(is)S 6768 V 720(allright,)S 1061(it)S 1142(is)S 1234(stored)S 1505(in)S 1608(a)S 1678(database)S 2050(specific)S 2389(to)S 2492(the)S 2640(assignment.)S 3167(If)S 3260(not,)S 3438(the)S 3586(supervisor)S 4030(talks)S 4245(to)S 4348(the)S 4496(student,)S 4837(explaining)S 6888 V 720(what)S 941(is)S (wrong.)282 1033 A 1365(The)S 1547(student)S 1862(then)S 2060(corrects)S 2405(the)S 2553(work)S 2785(and)S 2955(the)S 3103(procedure)S 3531(is)S 3623(repeated.)S 7044 V 970(The)S 1162(programs)S 1577(in)S 1690(the)S 1848(database)S 2230(are)S 2389(automatically)S 2972(compared)S 3404(to)S (each)185 3517 A 3737(other,)S 4004(using)S 4256(a)S 4336(comparison)S 4840(process)S 5177(of)S 7164 V 720(which)S 996(the)S 1149(similarity)S 1565(tester)S 1814(is)S 1911(the)S 2064(algorithmic)S 2557(core.)S 2810(If)S 2907(the)S 3059(database)S 3435(contains)S 10 I 3799(n)S 10 R 3878(programs,)S 4312(this)S 4486(process)S 4817(results)S 5109(in)S 5216(a)S 7284 V 720(list)S 868(of)S 10 I 977(n)S 10 Y 1043(-)S 10 R 1098(1)S 1173(percentages;)S 1702(a)S 1772(sample)S 2082(list)S 2230(is)S 2322(shown)S 2609(in)S 2712(Figure)S 3000(3.)S 3125(The)S 3307(supervisor)S 3751(can)S (access)258 3916 A 4199(these)S 4432(lists.)S 4670(Programs)S 5082(with)S 7404 V 720(a)S 792(match)S 1065(percentage)S 1529(of)S 1640(60%)S 1851(or)S 1962(higher)S 2246(are)S 2397(examined)S 2815(personally)S 3261(by)S 3387(the)S 3536(supervisor,)S 4006(to)S 4110(verify)S (originality.)444 4377 A 4872(If)S 4966(there)S 5194(is)S 7524 V 720(a)S (strong)251 790 A 1066(suspicion)S 1470(of)S (copying,)348 1579 A 1952(this)S 2122(is)S 2214(reported)S 2575(to)S 2678(the)S (workshop)396 2827 A 3249(coordinator.)S 3789(Match)S 4072(percentages)S 4574(of)S 4684(80%)S 4894(or)S 5004(higher)S 7644 V 720(are)S 869(always)S 1174(reported)S 1535(automatically)S 2108(to)S 2211(the)S (workshop)396 2359 A 2780(coordinator)S 3269(by)S 3394(the)S 3542(comparison)S 4036(process.)S 7800 V 970(If)S 1075(everything)S 1542(is)S 1646(in)S 1761(order,)S 2036(the)S 2196(program)S 2574(code)S 2801(is)S 2905(printed)S 3227(and)S 3409(graded)S 3720(by)S 3857(the)S 4017(supervisor)S 4474(for)S 4630(style,)S 4883(structure,)S 8427 V EP %%Page: 3 3 BP /slant 0 def /height 0 def 480 V 10 R 2906(-)S 2965(3)S 3040(-)S 840 V 720(conformity)S 1192(to)S 1295(guidelines,)S 1758(etc.)S 996 V 970(Students)S 1341(are)S 1490(informed)S 1884(at)S 1982(the)S 2130(start)S 2329(of)S 2438(the)S (workshop)396 2586 A 3007(that)S 3183(their)S 3393(submissions)S (will)157 3909 A 4092(be)S 4213(checked)S 4569(automatically)S 5143(for)S 1116 V 720(copies.)S 1052(The)S 1234(student)S 1549(who)S 1747(desires)S 2052(to)S 2155(submit)S 2453(copied)S 2746(code)S (without)307 2961 A 3293(being)S (caught)268 3541 A (faces)208 3834 A 4067(the)S 4215(following)S 4631(challenges:)S 1272 V 10 R-1 720(-)S 10 R 970(The)S 1155(essential)S 1530(tokens)S 1820(of)S 1932(the)S (fraudulent)414 2083 A 2525(code)S 2743(must)S 2966(differ)S 3219(regularly)S 3611(from)S 3835(those)S 4075(of)S 4188(the)S 4340(original)S 4682(or)S 4795(the)S 4947(similar-)S 1392 V 970(ity)S 1103(tester)S 1349(process)S (will)157 1678 A (sound)239 1862 A 2128(the)S 2278(alarm.)S 2585(This)S 2791(means)S 3075(that)S 3253(changing)S 3648(names)S 3932(systematically,)S 4560(adding)S 4860(or)S 4970(remov-)S 1512 V 970(ing)S 1125(comment)S 1526(and/or)S (layout,)276 1810 A 2113(and)S 2285(code)S 2502(motion)S 2813(are)S 2964(ineffective.)S 3473(It)S 3562(is)S 3656(important)S 4074(to)S 4179(note)S 4379(that)S 4557(the)S 4707(similarity)S 5121(test)S 1632 V 970(finds)S 1212(the)S 10 I 1376(set)S 1529(of)S (longest)290 1648 A 1979(common)S 2361(substrings)S 10 R 2773(,)S 2839(which)S 3125(is)S (order-insensitive,)702 3232 A 3974(unlike)S 4265(the)S 4428(UNIX)S 4721(program)S 10 I (diff)134 5102 A 10 R 5236(,)S 1752 V 970(which)S 1241(find)S 1428(the)S 10 I (longest)290 1576 A 1891(common)S 2257(subsequence)S 10 R 2765(,)S 2815(which)S 3086(is)S (order-sensitive.)624 3178 A 1908 V 10 R-1 720(-)S 10 R 970(The)S (submitted)396 1154 A 1577(code)S 1794(is)S 1888(tested)S 2150(by)S 2277(the)S 2427(supervisor)S 2873(on)S 3000(a)S 3072(testbed)S 3384(specific)S 3725(to)S 3830(the)S 3980(assignment,)S 4485(and)S 4658(has)S 4820(to)S 4926(function)S 2028 V 970(properly.)S 1393(This)S 1604(means)S 1893(that)S 2076(the)S 2231(student)S (cannot)268 2553 A 2853(compose)S 3242(the)S (submitted)396 3397 A 3825(code)S 4047(from)S 4274(copied)S 4573(segments)S 4978(of)S 5093(pro-)S 2148 V 970(grams)S 1249(of)S 1367(other)S 1608(students.)S (Getting)302 2021 A 2357(such)S 2575(an)S 2704(assembly)S 3112(to)S 3224(work)S 3465(properly)S 3840(would)S 4125(probably)S (involve)301 4516 A 4851(at)S 4958(least)S 5177(as)S 2268 V 970(much)S 1221(work)S 1456(as)S 1568(doing)S 1824(the)S 1975(exercise)S 2334(in)S 2440(the)S 2591(first)S (place.)238 2782 A 3073(The)S 3258(test)S 3426(also)S 3615(denies)S 3899(the)S 4049(student)S 4366(the)S (possibility)418 4516 A 4961(to)S 5066(hand)S 2388 V 970(in)S 1074(a)S 1145(totally)S 1428(unrelated)S 1829(text,)S 2031(for)S 2175(example)S 2542(a)S 2614(UNIX)S 2894(manual)S 3217(page.)S 3484(Such)S 3712(a)S 3784(text)S 3962(would)S 4240(show)S 4479(a)S 4551(match)S 4824(percentage)S 2508 V 970(close)S 1202(to)S 1305(0%)S 1464(but)S 1617(would)S 1893(not)S 2046(compile,)S 2420(let)S 2546(alone)S 2789(run)S 2948(correctly.)S 2664 V (Occasionally,)551 970 A 1546(a)S 1616(student)S 1932(submits)S 2270(his)S 2413(program)S (under)229 2780 A 3035(the)S (wrong)257 3184 A 3467(assignment)S 3945(name,)S 4214(or)S 4324(a)S 4395(supervisor)S 4840(stores)S 5101(it)S 5183(in)S 2784 V 970(the)S (wrong)257 1122 A 1408(database.)S (Suppose)340 1834 A 2203(,)S 2257(a)S 2331(solution)S 2683(to)S 2790(assignment)S 10 I 3271(j2)S 10 R 3378(is)S (submitted)396 3474 A 3899(as)S 4011(a)S 4084(solution)S 4435(to)S 4541(assignment)S 10 I 5021(j3)S 10 R 5099(.)S 5177(In)S 2904 V 970(that)S 1150(case)S 1353(the)S 1505(match)S 1780(percentage)S 2246(is)S 2342(close)S 2578(to)S 2685(0%,)S 2873(which)S 3148(is)S 3244(noted)S 3496(by)S 3625(the)S 3777(supervisor,)S 4251(who)S 4454(can)S 4624(then)S 4827(correct)S 5138(the)S 3024 V 970(situation.)S 1391(Extremely)S 1836(low)S 2012(match)S 2283(percentages)S 2784(are)S 2933(as)S 3042(suspicious)S 3485(as)S 3594(very)S 3798(high)S 4001(match)S 4272(percentages.)S 3180 V 10 R-1 720(-)S 10 R 970(If)S 1066(the)S 1217(code)S 1435(passes)S 1720(these)S 1955(two)S 2134(hurdles,)S 2484(it)S (will)157 2569 A (still)151 2755 A 2935(be)S 3059(graded)S 3362(by)S 3491(personal)S 3861(inspection)S 4303(by)S 4432(the)S 4584(supervisor.)S 5082(This)S 3300 V 970(means)S 1259(that)S 1441(is)S 1539(has)S 1704(to)S (look)178 1813 A (good)200 2022 A 2253(and)S 2429(the)S 2583(student)S (cannot)268 2904 A 3203(afford)S 3481(to)S 3590(add)S 3766(dummy)S 4103(statements)S 4559(at)S 4663(irregular)S 5042(inter-)S 3420 V 970(vals)S 1170(to)S 1286(throw)S 1559(off)S 1716(the)S 1878(similarity)S 2303(tester.)S 2611(Adding)S 2951(useless)S 3275(parameters)S 3757(to)S 3874(procedures)S 4355(would)S 4645(also)S 4846(attract)S 5138(the)S 3540 V 970(supervisors)S 1453(attention.)S 3780 V 10 B 720(Experiences)S 3936 V 10 R 970(Of)S 1110(course)S 1406(we)S (cannot)268 1558 A 1860(guarantee)S 2286(that)S 2471(there)S 2707(is)S 2808(no)S 2942(strategy)S 3295(to)S 3407(create)S 3683(a)S 3762(copied)S 4064(submission)S 4549(that)S (will)157 4734 A (success-)336 4925 A 4056 V 720(fully)S 937(circumvent)S 1417(the)S (above)240 1567 A 1834(obstacles,)S 2255(but)S 2410(we)S 2555(are)S 2706(not)S 2861(aware)S 3130(of)S 3241(any)S 3412(such)S 3622(strategy.)S 4017(It)S 4105(seems)S 4377(reasonable)S 4834(to)S (suppose)323 4938 A 4176 V 720(that)S 905(such)S 1123(a)S 1202(strategy,)S (should)267 1580 A 1881(it)S 1971(exist,)S 2220(would)S 2505(require)S 2825(an)S (amount)301 2954 A 3289(of)S 3407(work)S 3648(similar)S 3962(to)S 4074(that)S 4259(of)S 4377(just)S 4556(doing)S 4818(the)S 4976(assign-)S 4296 V 720(ment.)S 1010(Changing)S 1438(for-statements)S 2053(to)S 2169(while)S 2431(statements,)S (splitting)329 2919 A 3286(larger)S 3560(procedures)S 4040(into)S 4234(smaller)S 4569(ones,)S (choosing)362 4816 A 5216(a)S 4416 V 720(somewhat)S 1153(different)S 1526(data)S 1719(structure,)S 2122(are)S 2271(techniques)S 2726(that)S 2902(come)S 3145(to)S 3248(mind.)S 3529(But)S 3699(the)S 3847(result)S 4096(of)S 4205(such)S 4415(manipulations)S 5010(would)S 4536 V 720(hardly)S 1002(be)S 1122(a)S (copy)195 1192 A 1412(any)S 1582(more,)S 1839(and)S 2009(breaking)S 2386(the)S 2534(system)S 2838(would)S 3114(be)S 3234(interesting)S 3684(only)S 3887(as)S 3996(a)S 4066(sport.)S 4692 V 970(It)S 1064(turns)S 1297(out)S 1457(that)S 1640(copied)S 1940(submissions)S 2462(are)S 2618(the)S 2773(exception.)S 3246(The)S 3435(similarity)S 3853(tester)S 4104(detects)S 4416(between)S 4784(one)S 4961(and)S 5138(ten)S 4812 V 720(attempts)S 1115(to)S 1247(submit)S 1574(copied)S 1896(material)S 2281(per)S (workshop,)421 2464 A 2939(depending)S 3410(on)S 3563(size)S 3773(and)S 3971(organization)S 4527(of)S 4664(the)S (workshop.)421 4840 A 4932 V 720(Attempts)S 1119(to)S 1227(mislead)S 1570(the)S 1723(similarity)S 2139(tester)S 2389(have)S 2610(never)S 2865(been)S 3086(observed.)S 3530(For)S (obvious)317 3701 A 4049(reasons,)S 4407(we)S 4556(have)S 4777(no)S 4908(informa-)S 5052 V 720(tion)S (about)223 901 A (undiscovered,)561 1149 A (successful)414 1735 A 2174(attempts.)S 5208 V 970(All)S 1132(cases)S (found)234 1378 A (above)240 1645 A 1918(the)S 2074(80%)S 2291(threshold)S 2698(turned)S 2988(out)S 3149(to)S 3260(be)S 3388(real)S 3573(copies)S (upon)200 3863 A 4096(inspection.)S 4593(In)S (each)185 4711 A 4930(case)S 5138(the)S 5328 V (correspondence)632 720 A 1388(between)S 1760(the)S 1919(printed)S 2240(programs)S 2656(was)S 2849(seen)S 3064(to)S 3178(be)S 3309(very)S (strong,)276 3524 A 3835(even)S (stronger)330 4060 A 4425(than)S 4633(the)S 4791(80%)S 5010(would)S 5448 V (suggest.)326 720 A 1109(For)S 1287(example,)S 1692(identifiers)S 2140(matched)S 2520(textually,)S 2936(or)S 3059(comments)S 3511(were)S 3747(identical,)S 4158(two)S 4348(features)S 4707(that)S 4897(were)S 5133(not)S 5568 V 720(included)S 1091(in)S 1194(the)S 1342(essential)S 1714(tokens)S 2001(and)S 2171(thus)S 2363(could)S 2611(not)S 2764(contribute)S 3197(to)S 3300(the)S 3448(match)S 3719(percentage.)S 5724 V 970(Originally)S 1418(we)S 1570(set)S 1716(the)S 1873(threshold)S 2281(at)S 2389(60%,)S 2633(but)S 2796(this)S 2976(turned)S 3268(out)S 3431(to)S 3544(be)S 3674(too)S 3837(low.)S 4073(First,)S 4318(short)S 4554(programs)S 4969(\(one)S 5183(to)S 5844 V 720(one-and-a-half)S 1350(pages\))S 1649(contain)S 1981(so)S 2106(much)S 2365(standard)S 2742(material)S 3109(that)S 3296(the)S 3455(reported)S 3827(match)S 4109(percentage)S 4582(is)S 4685(too)S 4849(high;)S 5091(and,)S 5964 V (second,)304 720 A 1050(even)S 1266(if)S 1354(the)S 1503(match)S 1775(percentage)S 2238(was)S 2421(reported)S 2783(correctly,)S 3193(it)S 3275(is)S 3368(difficult)S 3719(to)S 3823(tell)S 3978(if)S 4066(a)S 4137(short)S 4364(program)S 4731(is)S 4824(a)S (copy)195 4895 A 5116(if)S 5205(it)S 6084 V 720(differs)S 1009(for)S 1152(40%)S 1361(from)S 1582(the)S 1730(purported)S 2146(original.)S 2534(No)S 2682(such)S (doubts)267 2891 A 3183(remain)S 3488(with)S 3692(a)S 3762(threshold)S 4161(of)S 4270(80%.)S 6240 V 970(All)S 1137(students)S 1504(confronted)S 1978(with)S 2195(suspicion)S 2612(of)S (submitting)429 2734 A 3201(copied)S 3507(work)S 3752(confirmed)S 4204(this)S 4388(suspicion,)S 4831(sometimes)S 6360 V 720(after)S 939(some)S 1184(discussion.)S 1685(Often)S 1947(their)S 2164(defense)S 2504(was)S 2693(that)S 2876(since)S 3115(they)S 3320(had)S 3497(taken)S 3747(great)S 3981(pains)S 4225(to)S 4335(change)S 4652(the)S 4807(program,)S 5205(it)S 6480 V 720(was)S 910(no)S (longer)257 1043 A 1334(a)S (copy.)220 1413 A 1692(These)S 1967(changes)S 2325(were,)S 2581(however,)S 2987(usually)S 3311(restricted)S 3721(to)S 3833(systematically)S 4443(replacing)S 4852(identifiers)S 6600 V 720(and)S 893(changing)S 1289(the)S 1440(order)S 1681(of)S 1793(declarations,)S 2333(so)S 2450(basically)S 2836(the)S 2987(same)S 3222(program)S 3591(was)S (submitted.)421 3776 A 4250(We)S 4418(have)S 4636(seen)S (above)240 4843 A 5110(that)S 6720 V 720(the)S 868(similarity)S 1279(tester)S 1523(is)S (insensitive)430 1615 A 2070(to)S 2173(such)S 2382(changes.)S 2781(The)S 2963(10)S 3088(to)S 3191(15%)S 3400(of)S 3509(code)S 3724(that)S 10 I 3900(was)S 10 R 4089(different)S 4462(usually)S 4777(consisted)S 5177(of)S 6840 V (rewritten)365 720 A 1110(output)S 1391(statements.)S 1891(The)S 2073(algorithm)S 2489(itself)S 2716(was)S 2898(never)S 3147(changed.)S 6996 V 970(The)S 1164(goal)S 1374(of)S 1495(our)S 1666(computer)S 2083(science)S (workshops)435 2417 A 2889(is)S 2993(to)S (teach)213 3108 A 3358(the)S 3518(students)S 3884(something)S 4339(rather)S 4612(than)S 4822(to)S 4938(test)S 5116(and)S 7116 V 720(evaluate)S 1085(them.)S 1365(Therefore)S 1793(it)S 1878(is)S 1974(no)S 2103(problem)S 2467(when)S 2714(students)S 3072(seek)S 3280(help)S 3482(from)S 3706(other)S 3941(students.)S 4348(It)S 4438(is)S 4533(immaterial)S 4998(if)S 5088(they)S 7236 V 720(learn)S 951(from)S 1176(the)S 1328(classroom)S 1765(lectures,)S 2133(the)S (books)239 2285 A 2554(used)S 2768(in)S 2876(class,)S 3127(the)S (workshop,)421 3280 A 3731(the)S 3884(supervisor,)S 4358(or)S 4472(a)S 4547(fellow)S 4835(student;)S 5183(in)S 7356 V 720(all)S 849(cases)S 1090(they)S 1291(learn)S 1521(something)S 1967(and)S 2140(that)S 2319(is)S 2414(the)S 2565(only)S 2771(thing)S 3005(that)S 3184(matters.)S 3559(Selection)S 3962(and)S 4134(evaluation)S 4580(takes)S (places)252 4814 A 5093(dur-)S 7476 V 720(ing)S (written)286 884 A 1206(tests.)S 1471(This)S (attitude)302 1686 A 2024(does)S 2244(not,)S 2433(however,)S 2841(imply)S 3111(that)S 3298(doing)S 3562(the)S (workshop)396 3721 A 4154(is)S 4258(optional.)S 4674(There)S 4947(is)S 5051(a)S 5133(big)S 7596 V 720(difference)S 1174(between)S 1554(hearing)S 1900(from)S (somebody)412 2139 A 2594(how)S 2810(a)S 2898(problem)S 3276(can)S 3459(be)S 3597(tackled)S 3931(and)S 4119(then)S 4335(tackle)S 4619(it)S (yourself,)355 4718 A 5116(and)S 7716 V 720(obtaining)S 1130(the)S 1284(complete)S 1684(solution)S 2039(from)S (somebody)412 2267 A 2711(else)S 2900(and)S 3077(handing)S 3432(it)S 3520(in)S 3630(as)S 3746(original)S 4091(work.)S 4380(The)S 4569(difference)S 5011(lies)S 5183(in)S 8427 V EP %%Page: 4 4 BP /slant 0 def /height 0 def 480 V 10 R 2906(-)S 2965(4)S 3040(-)S 840 V 720(the)S 868(learning)S 1223(value.)S 1080 V 10 B 720(Conclusion)S 1236 V 10 R 970(Our)S 1163(present)S 1490(impression,)S (though)278 1992 A (unproven,)404 2306 A 2746(is)S 2849(that)S 3036(the)S 3195(only)S 3409(way)S 3613(to)S 3728(circumvent)S 4218(the)S 4378(similarity)S 4801(tester)S 5057(is)S 5161(by)S 1356 V (writing)291 720 A 1052(original)S 1406(code.)S 1687(This)S 1907(means)S 2205(that)S (anybody)345 2397 A 2783(who)S 2997(submits)S (somebody)412 3350 A 3803(else's)S 4074(work)S 4322(as)S 4447(his)S 4605(own,)S 4844(even)S 5075(after)S 1476 V 720(modifications)S 1298(in)S 1401(comment,)S 1825(identifiers,)S (layout)251 2284 A 2560(and)S 2730(order)S 2968(of)S 3077(program)S 3443(units,)S 3688(is)S (exposed)329 3780 A 4134(as)S 4243(a)S 4313(cheater.)S 8427 V EP %%Page: 5 5 BP /slant 0 def /height 0 def 480 V 10 R 2906(-)S 2965(5)S 3040(-)S 840 V 10 B 720(Figures)S 996 V 970 H 2720 3560 0.00 0.00 272.00 356.00 startFig %%BeginDocument: /home/dick/src/sim/Paper/./fig1.ps %%!PS-Adobe-2.0 EPSF-2.0 %%Title: fig1.fig %%Creator: fig2dev Version 3.2 Patchlevel 1 %%CreationDate: Fri Jun 21 11:08:40 2002 %%For: dick@blade014.cs.vu.nl (Dick Grune) %%Orientation: Portrait %%BoundingBox: 0 0 272 356 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 0.8500 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -42.0 393.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 8330 m -1000 -1000 l 6862 -1000 l 6862 8330 l cp clip 0.05354 0.05354 sc % Polyline 7.500 slw n 1350 6750 m 5850 6750 l gs col0 s gr % Polyline n 5850 6750 m 5850 6570 l 5400 6570 l 5400 6750 l gs col0 s gr % Polyline n 4950 6750 m 4950 6660 l 4500 6660 l 4500 6750 l gs col0 s gr % Polyline n 4500 6750 m 4500 6660 l 4050 6660 l 4050 6750 l gs col0 s gr % Polyline n 3150 6750 m 3150 5940 l 2700 5940 l 2700 6750 l gs col0 s gr % Polyline n 3600 6750 m 3600 6570 l 3150 6570 l 3150 6750 l gs col0 s gr % Polyline n 2700 6750 m 2700 5310 l gs col0 s gr % Polyline n 2250 6750 m 2250 5310 l gs col0 s gr % Polyline n 1800 6750 m 1800 5310 l gs col0 s gr % Polyline n 1350 6750 m 1350 5310 l gs col0 s gr % Polyline n 1350 5850 m 1260 5850 l gs col0 s gr % Polyline n 2700 5130 m 2700 4230 l 2250 4230 l gs col0 s gr % Polyline n 2250 5220 m 2250 3690 l gs col0 s gr % Polyline n 1800 5220 m 1800 3600 l gs col0 s gr % Polyline n 1350 5175 m 1350 3600 l gs col0 s gr % Polyline n 1350 4500 m 1260 4500 l gs col0 s gr % Polyline n 2250 3510 m 2250 2520 l 1800 2520 l gs col0 s gr % Polyline n 1800 3510 m 1800 2070 l gs col0 s gr % Polyline n 1350 3420 m 1350 1980 l gs col0 s gr % Polyline n 1350 2700 m 1260 2700 l gs col0 s gr % Polyline n 1800 1890 m 1800 990 l 1350 990 l gs col0 s gr % Polyline n 1350 1800 m 1350 720 l gs col0 s gr % Polyline n 1350 1350 m 1260 1350 l gs col0 s gr % Polyline n 2700 5310 m 2699 5310 l 2695 5307 l 2686 5303 l 2671 5295 l 2653 5287 l 2633 5278 l 2614 5271 l 2597 5266 l 2581 5264 l 2565 5265 l 2554 5267 l 2541 5271 l 2529 5277 l 2516 5284 l 2503 5292 l 2489 5301 l 2475 5310 l 2461 5319 l 2447 5328 l 2434 5336 l 2421 5343 l 2409 5349 l 2396 5353 l 2385 5355 l 2369 5356 l 2353 5354 l 2336 5349 l 2317 5342 l 2297 5333 l 2279 5325 l 2264 5317 l 2255 5313 l 2251 5310 l 2250 5310 l gs col0 s gr % Polyline n 2250 5400 m 2250 5399 l 2247 5396 l 2241 5388 l 2231 5375 l 2218 5358 l 2203 5339 l 2186 5320 l 2170 5302 l 2155 5287 l 2141 5276 l 2128 5269 l 2115 5265 l 2104 5265 l 2091 5267 l 2079 5271 l 2066 5278 l 2053 5286 l 2039 5295 l 2025 5306 l 2011 5316 l 1997 5326 l 1984 5335 l 1971 5343 l 1959 5349 l 1946 5353 l 1935 5355 l 1919 5356 l 1903 5354 l 1886 5349 l 1867 5342 l 1847 5333 l 1829 5325 l 1814 5317 l 1805 5313 l 1801 5310 l 1800 5310 l gs col0 s gr % Polyline n 1800 5400 m 1800 5399 l 1797 5396 l 1791 5388 l 1781 5375 l 1768 5358 l 1753 5339 l 1736 5320 l 1720 5302 l 1705 5287 l 1691 5276 l 1678 5269 l 1665 5265 l 1654 5265 l 1641 5267 l 1629 5271 l 1616 5278 l 1603 5286 l 1589 5295 l 1575 5306 l 1561 5316 l 1547 5326 l 1534 5335 l 1521 5343 l 1509 5349 l 1496 5353 l 1485 5355 l 1469 5356 l 1453 5354 l 1436 5349 l 1417 5342 l 1397 5333 l 1379 5325 l 1364 5317 l 1355 5313 l 1351 5310 l 1350 5310 l gs col0 s gr % Polyline n 1800 5220 m 1800 5219 l 1797 5216 l 1791 5208 l 1781 5195 l 1768 5178 l 1753 5159 l 1736 5140 l 1720 5122 l 1705 5107 l 1691 5096 l 1678 5089 l 1665 5085 l 1654 5085 l 1641 5087 l 1629 5091 l 1616 5098 l 1603 5106 l 1589 5115 l 1575 5126 l 1561 5136 l 1547 5146 l 1534 5155 l 1521 5163 l 1509 5169 l 1496 5173 l 1485 5175 l 1469 5176 l 1453 5174 l 1436 5169 l 1417 5162 l 1397 5153 l 1379 5145 l 1364 5137 l 1355 5133 l 1351 5130 l 1350 5130 l gs col0 s gr % Polyline n 2250 5220 m 2250 5219 l 2247 5216 l 2241 5208 l 2231 5195 l 2218 5178 l 2203 5159 l 2186 5140 l 2170 5122 l 2155 5107 l 2141 5096 l 2128 5089 l 2115 5085 l 2104 5085 l 2091 5087 l 2079 5091 l 2066 5098 l 2053 5106 l 2039 5115 l 2025 5126 l 2011 5136 l 1997 5146 l 1984 5155 l 1971 5163 l 1959 5169 l 1946 5173 l 1935 5175 l 1919 5176 l 1903 5174 l 1886 5169 l 1867 5162 l 1847 5153 l 1829 5145 l 1814 5137 l 1805 5133 l 1801 5130 l 1800 5130 l gs col0 s gr % Polyline n 2700 5116 m 2699 5116 l 2695 5113 l 2686 5109 l 2671 5101 l 2653 5093 l 2633 5084 l 2614 5077 l 2597 5072 l 2581 5070 l 2565 5071 l 2554 5073 l 2541 5077 l 2529 5083 l 2516 5090 l 2503 5098 l 2489 5107 l 2475 5116 l 2461 5125 l 2447 5134 l 2434 5142 l 2421 5149 l 2409 5155 l 2396 5159 l 2385 5161 l 2369 5162 l 2353 5160 l 2336 5155 l 2317 5148 l 2297 5139 l 2279 5131 l 2264 5123 l 2255 5119 l 2251 5116 l 2250 5116 l gs col0 s gr % Polyline n 2250 3690 m 2250 3689 l 2247 3686 l 2241 3678 l 2231 3665 l 2218 3648 l 2203 3629 l 2186 3610 l 2170 3592 l 2155 3577 l 2141 3566 l 2128 3559 l 2115 3555 l 2104 3555 l 2091 3557 l 2079 3561 l 2066 3568 l 2053 3576 l 2039 3585 l 2025 3596 l 2011 3606 l 1997 3616 l 1984 3625 l 1971 3633 l 1959 3639 l 1946 3643 l 1935 3645 l 1919 3646 l 1903 3644 l 1886 3639 l 1867 3632 l 1847 3623 l 1829 3615 l 1814 3607 l 1805 3603 l 1801 3600 l 1800 3600 l gs col0 s gr % Polyline n 1800 3672 m 1800 3671 l 1797 3668 l 1791 3660 l 1781 3647 l 1768 3630 l 1753 3611 l 1736 3592 l 1720 3574 l 1705 3559 l 1691 3548 l 1678 3541 l 1665 3537 l 1654 3537 l 1641 3539 l 1629 3543 l 1616 3550 l 1603 3558 l 1589 3567 l 1575 3578 l 1561 3588 l 1547 3598 l 1534 3607 l 1521 3615 l 1509 3621 l 1496 3625 l 1485 3627 l 1469 3628 l 1453 3626 l 1436 3621 l 1417 3614 l 1397 3605 l 1379 3597 l 1364 3589 l 1355 3585 l 1351 3582 l 1350 3582 l gs col0 s gr % Polyline n 2250 3510 m 2250 3509 l 2247 3506 l 2241 3498 l 2231 3485 l 2218 3468 l 2203 3449 l 2186 3430 l 2170 3412 l 2155 3397 l 2141 3386 l 2128 3379 l 2115 3375 l 2104 3375 l 2091 3377 l 2079 3381 l 2066 3388 l 2053 3396 l 2039 3405 l 2025 3416 l 2011 3426 l 1997 3436 l 1984 3445 l 1971 3453 l 1959 3459 l 1946 3463 l 1935 3465 l 1919 3466 l 1903 3464 l 1886 3459 l 1867 3452 l 1847 3443 l 1829 3435 l 1814 3427 l 1805 3423 l 1801 3420 l 1800 3420 l gs col0 s gr % Polyline n 1800 3510 m 1800 3509 l 1797 3506 l 1791 3498 l 1781 3485 l 1768 3468 l 1753 3449 l 1736 3430 l 1720 3412 l 1705 3397 l 1691 3386 l 1678 3379 l 1665 3375 l 1654 3375 l 1641 3377 l 1629 3381 l 1616 3388 l 1603 3396 l 1589 3405 l 1575 3416 l 1561 3426 l 1547 3436 l 1534 3445 l 1521 3453 l 1509 3459 l 1496 3463 l 1485 3465 l 1469 3466 l 1453 3464 l 1436 3459 l 1417 3452 l 1397 3443 l 1379 3435 l 1364 3427 l 1355 3423 l 1351 3420 l 1350 3420 l gs col0 s gr % Polyline n 1800 2070 m 1800 2069 l 1797 2066 l 1791 2058 l 1781 2045 l 1768 2028 l 1753 2009 l 1736 1990 l 1720 1972 l 1705 1957 l 1691 1946 l 1678 1939 l 1665 1935 l 1654 1935 l 1641 1937 l 1629 1941 l 1616 1948 l 1603 1956 l 1589 1965 l 1575 1976 l 1561 1986 l 1547 1996 l 1534 2005 l 1521 2013 l 1509 2019 l 1496 2023 l 1485 2025 l 1469 2026 l 1453 2024 l 1436 2019 l 1417 2012 l 1397 2003 l 1379 1995 l 1364 1987 l 1355 1983 l 1351 1980 l 1350 1980 l gs col0 s gr % Polyline n 1800 1890 m 1800 1889 l 1797 1886 l 1791 1878 l 1781 1865 l 1768 1848 l 1753 1829 l 1736 1810 l 1720 1792 l 1705 1777 l 1691 1766 l 1678 1759 l 1665 1755 l 1654 1755 l 1641 1757 l 1629 1761 l 1616 1768 l 1603 1776 l 1589 1785 l 1575 1796 l 1561 1806 l 1547 1816 l 1534 1825 l 1521 1833 l 1509 1839 l 1496 1843 l 1485 1845 l 1469 1846 l 1453 1844 l 1436 1839 l 1417 1832 l 1397 1823 l 1379 1815 l 1364 1807 l 1355 1803 l 1351 1800 l 1350 1800 l gs col0 s gr /Times-Roman ff 150.00 scf sf 3870 6660 m gs 1 -1 sc (0) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 5220 6660 m gs 1 -1 sc (0) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 5850 6930 m gs 1 -1 sc (100) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 5400 6930 m gs 1 -1 sc (90) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4950 6930 m gs 1 -1 sc (80) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4500 6930 m gs 1 -1 sc (70) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4050 6930 m gs 1 -1 sc (60) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 3600 6930 m gs 1 -1 sc (50) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 3150 6930 m gs 1 -1 sc (40) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2700 6930 m gs 1 -1 sc (30) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2250 6930 m gs 1 -1 sc (20) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 5670 6480 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4770 6570 m gs 1 -1 sc (1) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4320 6570 m gs 1 -1 sc (1) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 3420 6480 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2970 5850 m gs 1 -1 sc (9) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1800 6930 m gs 1 -1 sc (10) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1215 5895 m gs 1 -1 sc (10) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2610 4140 m gs 1 -1 sc (113) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1215 4545 m gs 1 -1 sc (110) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2160 2430 m gs 1 -1 sc (542) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1215 2745 m gs 1 -1 sc (540) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1215 1395 m gs 1 -1 sc (600) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1710 900 m gs 1 -1 sc (604) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 900 1440 m gs 1 -1 sc 90.0 rot (number of occurrences) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 5850 7110 m gs 1 -1 sc (matching percentage) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1080 7290 m gs 1 -1 sc (Number of comparisons: 1274 \(38 * 39\)) col0 sh gr $F2psEnd rs %%EndDocument endFig 4676 V 2797(Figure)S 3108(1.)S 4796 V 1421(Bar)S 1608(diagram)S 1996(of)S 2105(the)S 2265(match)S (percentages)510 2559 A 3094(of)S 3203(39)S 3328(submissions)S 3867(to)S 3976(assignment)S 10 I 4482(j2)S 4916 V 720 H 2670 1870 0.00 0.00 267.00 187.00 startFig %%BeginDocument: /home/dick/src/sim/Paper/./fig2.ps %%!PS-Adobe-2.0 EPSF-2.0 %%Title: fig2.fig %%Creator: fig2dev Version 3.2 Patchlevel 1 %%CreationDate: Fri Jun 21 11:08:40 2002 %%For: dick@blade014.cs.vu.nl (Dick Grune) %%Orientation: Portrait %%BoundingBox: 0 0 267 187 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 0.8500 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -23.0 224.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 5180 m -1000 -1000 l 6412 -1000 l 6412 5180 l cp clip 0.05354 0.05354 sc % Polyline 7.500 slw n 900 3600 m 5400 3600 l gs col0 s gr % Polyline n 4050 3600 m 4050 3420 l 3600 3420 l 3600 3600 l gs col0 s gr % Polyline n 1350 3600 m 1350 1080 l gs col0 s gr % Polyline n 900 3600 m 900 720 l gs col0 s gr % Polyline n 900 2700 m 810 2700 l gs col0 s gr % Polyline n 2250 3600 m 2250 2520 l 1800 2520 l 1800 3600 l gs col0 s gr % Polyline n 2700 3600 m 2700 3240 l 2250 3240 l 2250 3600 l gs col0 s gr % Polyline n 1800 3600 m 1800 1080 l 1350 1080 l 900 1080 l gs col0 s gr % Polyline n 900 1800 m 810 1800 l gs col0 s gr % Polyline n 900 900 m 810 900 l gs col0 s gr /Times-Roman ff 150.00 scf sf 5400 3780 m gs 1 -1 sc (100) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4950 3780 m gs 1 -1 sc (90) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4500 3780 m gs 1 -1 sc (80) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4050 3780 m gs 1 -1 sc (70) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 3600 3780 m gs 1 -1 sc (60) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 3150 3780 m gs 1 -1 sc (50) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2700 3780 m gs 1 -1 sc (40) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2250 3780 m gs 1 -1 sc (30) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1800 3780 m gs 1 -1 sc (20) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1350 3780 m gs 1 -1 sc (10) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 765 2745 m gs 1 -1 sc (5) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 3870 3330 m gs 1 -1 sc (1) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2070 2430 m gs 1 -1 sc (6) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2520 3150 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 765 1845 m gs 1 -1 sc (10) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 765 945 m gs 1 -1 sc (15) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1215 990 m gs 1 -1 sc (14) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 1665 990 m gs 1 -1 sc (14) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 540 1395 m gs 1 -1 sc 90.0 rot (number of occurrences) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 2970 3510 m gs 1 -1 sc (0) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 3330 3510 m gs 1 -1 sc (0) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4320 3510 m gs 1 -1 sc (0) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 5130 3510 m gs 1 -1 sc (0) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 4725 3510 m gs 1 -1 sc (0) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 5400 3960 m gs 1 -1 sc (matching percentage) dup sw pop neg 0 rm col0 sh gr /Times-Roman ff 150.00 scf sf 630 4140 m gs 1 -1 sc (Number of match percentages: 37) col0 sh gr $F2psEnd rs %%EndDocument endFig 6906 V 10 B 2797(Figure)S 3108(2.)S 7026 V 1465(Bar)S 1652(diagram)S 2040(of)S 2149(the)S 2309(match)S (percentages)510 2603 A 3138(of)S 3247(student)S (xxxxxxx's)423 3592 A 4040(submission)S 7146 V 2621(for)S 2775(assignment)S 10 I 3281(j2)S 8427 V EP %%Page: 6 6 BP /slant 0 def /height 0 def 480 V 10 R 2906(-)S 2965(6)S 3040(-)S 840 V 10 B 1319(Student)S (xxxxxxx)350 1681 A 960 V 10 R 720(69%)S (yyyyyyy)350 1054 A 1554(Lines:)S (195)150 1831 A 2131(Tokens:)S (627)150 2480 A 1080 V 720(31%)S (???????)315 1054 A 1554(Lines:)S 1881(96)S 2131(Tokens:)S (282)150 2480 A 1200 V 720(31%)S (???????)315 1054 A 1554(Lines:)S 1881(78)S 2131(Tokens:)S (284)150 2480 A 1320 V 720(26%)S (???????)315 1054 A 1554(Lines:)S 1881(66)S 2131(Tokens:)S (243)150 2480 A 1440 V 720(25%)S (???????)315 1054 A 1554(Lines:)S 1881(66)S 2131(Tokens:)S (233)150 2480 A 1560 V 720(24%)S (???????)315 1054 A 1554(Lines:)S 1881(66)S 2131(Tokens:)S (226)150 2480 A 1680 V 720(23%)S (???????)315 1054 A 1554(Lines:)S 1881(58)S 2131(Tokens:)S (211)150 2480 A 1800 V 720(23%)S (???????)315 1054 A 1554(Lines:)S 1881(52)S 2131(Tokens:)S (214)150 2480 A 1920 V 720(21%)S (???????)315 1054 A 1554(Lines:)S 1881(61)S 2131(Tokens:)S (196)150 2480 A 2040 V 720(20%)S (???????)315 1054 A 1554(Lines:)S 1881(49)S 2131(Tokens:)S (188)150 2480 A 2160 V 720(20%)S (???????)315 1054 A 1554(Lines:)S 1881(48)S 2131(Tokens:)S (183)150 2480 A 2280 V 720(18%)S (???????)315 1054 A 1554(Lines:)S 1881(53)S 2131(Tokens:)S (171)150 2480 A 2400 V 720(18%)S (???????)315 1054 A 1554(Lines:)S 1881(41)S 2131(Tokens:)S (169)150 2480 A 2520 V 720(16%)S (???????)315 1054 A 1554(Lines:)S 1881(39)S 2131(Tokens:)S (152)150 2480 A 2640 V 720(14%)S (???????)315 1054 A 1554(Lines:)S 1881(31)S 2131(Tokens:)S (131)150 2480 A 2760 V 720(14%)S (???????)315 1054 A 1554(Lines:)S 1881(37)S 2131(Tokens:)S (127)150 2480 A 2880 V 720(13%)S (???????)315 1054 A 1554(Lines:)S 1881(33)S 2131(Tokens:)S (124)150 2480 A 3000 V 720(13%)S (???????)315 1054 A 1554(Lines:)S 1881(32)S 2131(Tokens:)S (125)150 2480 A 3120 V 720(12%)S (???????)315 1054 A 1554(Lines:)S 1881(29)S 2131(Tokens:)S (115)150 2480 A 3240 V 720(11%)S (???????)315 1054 A 1554(Lines:)S 1881(22)S 2131(Tokens:)S (103)150 2480 A 3360 V 720(11%)S (???????)315 1054 A 1554(Lines:)S 1881(29)S 2131(Tokens:)S (104)150 2480 A 3480 V 720(11%)S (???????)315 1054 A 1554(Lines:)S 1881(21)S 2131(Tokens:)S (101)150 2480 A 3600 V 720(11%)S (???????)315 1054 A 1554(Lines:)S 1881(29)S 2131(Tokens:)S (104)150 2480 A 3720 V 720(10%)S (???????)315 1054 A 1554(Lines:)S 1881(25)S 2131(Tokens:)S 2530(94)S 3840 V 720(10%)S (???????)315 1054 A 1554(Lines:)S 1881(25)S 2131(Tokens:)S 2530(94)S 3960 V 720(10%)S (???????)315 1054 A 1554(Lines:)S 1881(25)S 2131(Tokens:)S 2530(95)S 4080 V 720(10%)S (???????)315 1054 A 1554(Lines:)S 1881(23)S 2131(Tokens:)S 2530(91)S 4200 V 720(10%)S (???????)315 1054 A 1554(Lines:)S 1881(25)S 2131(Tokens:)S 2530(91)S 4320 V 770(9%)S (???????)315 1054 A 1554(Lines:)S 1881(24)S 2131(Tokens:)S 2530(88)S 4440 V 770(8%)S (???????)315 1054 A 1554(Lines:)S 1881(11)S 2131(Tokens:)S 2530(73)S 4560 V 770(8%)S (???????)315 1054 A 1554(Lines:)S 1881(18)S 2131(Tokens:)S 2530(79)S 4680 V 770(8%)S (???????)315 1054 A 1554(Lines:)S 1881(23)S 2131(Tokens:)S 2530(78)S 4800 V 770(8%)S (???????)315 1054 A 1554(Lines:)S 1881(18)S 2131(Tokens:)S 2530(77)S 4920 V 770(8%)S (???????)315 1054 A 1554(Lines:)S 1881(25)S 2131(Tokens:)S 2530(80)S 5040 V 770(3%)S (???????)315 1054 A 1554(Lines:)S 1931(8)S 2131(Tokens:)S 2530(32)S 5160 V 770(3%)S (???????)315 1054 A 1554(Lines:)S 1931(7)S 2131(Tokens:)S 2530(33)S 5280 V 770(3%)S (???????)315 1054 A 1554(Lines:)S 1881(13)S 2131(Tokens:)S 2530(28)S 5460 V 10 B 2797(Figure)S 3108(3.)S 5580 V 1467(List)S 1660(of)S 1769(match)S (percentages)510 2063 A 2598(between)S 2977(student)S (xxxxxxx's)423 3322 A 3770(submission)S 4270(of)S 4379(the)S 5700 V 1722(program)S 2127(for)S 2281(assignment)S 10 I 2787(j2)S 10 B 2890(and)S 3077(the)S 3237(38)S 3362(other)S 10 I 3617(j2)S 10 B 3720(submissions.)S 5820 V 1592(One)S 1796(submission)S 2296(with)S 2512(a)S 2587(match)S (percentage)471 2881 A 3377(of)S 3486(0%)S 3661(has)S 3831(been)S 4058(left)S 4224(out.)S 5940 V 1520(The)S 1713(names)S 2012(of)S 2121(the)S 2281(students)S 2665(have)S 2891(been)S 3118(replaced)S 3513(by)S 3644(question)S 4033(marks)S 4332(for)S 6060 V 2641(privacy)S 2990(reasons.)S 8427 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic Symbol %%Pages: 6 .