Khoury College of Computer Sciences · 2009-06-28 · " F ’,’=-+
Transcript of Khoury College of Computer Sciences · 2009-06-28 · " F ’,’=-+
!!"#$%&'()*&%+,-./*&$%0"!*&%1''"#2-!"&&
!"#"$%&'" ("")*%'+
,-./0/ 1/23
$4!54# 6%$#7
"
!"#$%&'()*+#!"#$#%&'()#*+,)#-..(*/01-2'3#-+#0+4*(1-20*+#+''5
"#63'(3#*42'+#32-(2#7028#38*(2#9&'(0'3#:.**(-..(*/01-20*+3;
"#!"#$%"&<-+#01.(*='#9&'(0'3#-42'(#3''0+>#(','=-+2-+5#+*+?(','=-+2#5*<&1'+23
@ A)#-550+>#-+5#('1*=0+>#2'(13@ A)#('7'0>820+> 2'(13@ A)#-550+>#32(&<2&('#:$BCD#EFD#BEGD#HIF$JKD#'2<;
,-$#()*+!#L-+#-#A'22'(#9&'()#A'#<('-2'5'()#*')+,'%%-&A)#-+-,)M0+>#(','=-+2#-+5#+*+(','=-+2 5*<&1'+23N
!"#"$%&'" ("")*%'+
#
" OF'-,P#(','=-+<'#4''5A-<Q@ J)32'1#('2&(+3#('3&,23@ 63'(#.(*=05'3#3*1'#4''5A-<Q@ J)32'1#('2&(+3#5044'('+2RA'22'(D#7'#8*.'R('3&,23
"#O$33&1'5P#(','=-+<'#4''5A-<Q@ J)32'1#>'23#('3&,23#A&2#5*'3#+*2#('2&(+#28'1@ 63'3#('2&(+'5#('3&,23#2*#O>&'33P#78-2#7-3#.(*A-A,)#1'-+2@ S*5040'3#9&'()#7028*&2#3&.'(=030*+@ J)32'1#('2&(+3#'+8-+<'5R-+5#7'#8*.'#A'22'(R('3&,2#,032
"#E<<&(3#0+#5044'('+2#1*5',3@ T'<2*(#3.-<'#03#&3'5#1*32#*42'+#:7'U,,#4*<&3#*+#02;@ V-+>&->'#1*5',0+>
"#W**5#3&<<'33#7028#O-33&1'5P#(','=-+<'#:(','=-+<'#1*5',3;
"#V'33#*A=0*&3,)#>**5#('3&,23#4*(#O('-,P#4''5A-<Q
!"#"$%&'" ("")*%'+
$
!"#"$%&'" ("")*%'+ 4& 89" $"'8:! ;6%'"
%
!"#"$%&'" ("")*%'+ 4& 89" $"'8:! ;6%'"
&
'()*+,-*./0/1,-+/*2//34,+5*6,1/*789/*82*,*:/.6(-
;,6*7(*./,3*3(+<9/-76=
!"#"$%&'" ("")*%'+ 4& 89" $"'8:! ;6%'"
>
./0*(1$#)#!#$#A'22'(#9&'()#<-+#A'#<('-2'5#'()#*')+,'%%-&A)-+-,)M0+>#(','=-+2#-+5#+*+?(','=-+2#5*<&1'+23
"#F','=-+2#.-33->'3#-+5#.8(-3'3#<-+#-,3*#A'#05'+2040'5D#A&22803#03#+*2#<*11*+
"#$33&1'3#(','=-+2#-+5#+*+?(','=-+2#5*<&1'+23#-('#'-3)#4*(#.'*.,'#2*#05'+204)
"#L-+#A'#=0'7'5#-3#-#4*(1#*4#O9&'()?A)?'/-1.,'P
"L*11*+#J01.,04)0+>#$33&1.20*+3!"#6+32(&<2&('5#9&'()#:2'(13#-+5#7'0>823D#A&2#+*#*.'(-2*(3;"#X0+-()#(','=-+<'#Y&5>'1'+23 :(','=-+2D#+*2#(','=-+2;
!"#"$%&'" ("")*%'+
?
" 2*'3!#S*='#+'7#9&'()#<,*3'(#2*#(','=-+2#5*<&1'+23" 400%*'51!#B'7#9&'()#03#-#7'0>82'5#-='(->'#*4#*(0>0+-,#9&'()D#-+5#(','=-+2#-+5#+*+?(','=-+2#5*<&1'+2#='<2*(3
78'('#!#-+5#"#-('#<*+32-+23#28-2#('.('3'+2#28'#(',-20='#01.*(2-+<'#*4#.*3020='#-+5#+'>-20='#4''5A-<Q
T-(0-20*+3!"#C044'('+2#=-,&'3#*4#!#-+5#""#T'<2*(#,'+>28#:+&1A'(#*4#2'(13#-55'5#2*#28'#9&'();"#Z80<8#5*<&1'+23#-('#&3'5#4*(#2(-0+0+>@ -,,D#A'32D#&+<'(2-0+D#'2<
!"#"$%&'" ("")*%'+ 4& 89" $"'8:! ;6%'"
@
E(0>0+-,#%&'()!#6789:89;89:89<=C*<&1'+2#C[D#F','=-+2!6>89<89>89:89:=C*<&1'+2#C\D#B*+?(','=-+2!6<89:89:89:89>=
!#]#:?7:89"#]#:?>7
%@A9% B9:?79C[ C :?>79C\A96789:89;89:89<=9B9:?796>89<89>89:89:=9C :?>796<89:89:89:89>=A967?D789:?7:89E?::89:?:89:?7=
!"#"$%&'" ("")*%'+ 4& 89" $"'8:! ;6%'"
!A
"<%=6#"
!!
"<%=6#"> ?7"!@ 6!:'";;4&5 A,BC.DEFG
!"
"<%=6#"> !"#"$%&'" ("")*%'+ %))")
!#
F$%G9H$3$5()*+!"#B*+'#:*(0>0+-,#9&'()#2'(13D#*+,);"#$,,#2'(13"#S*32#<*11*+#2'(13"#S*32#80>8,)#7'0>82'5#2'(13Z'0>820+>!
"#IJ$ !#!][D#"][D#5*+U2#+*(1-,0M'#A)#+&1A'(#*4#Y&5>'5#5*<&1'+23
"#IJ$ K$59.)!#!][D#"][D#&3'#*+,)#28'#80>8'32#(-+Q'5#+*+?(','=-+2#5*<&1'+2:3;D#5*+U2#+*(1-,0M'#A)#+&1A'(#*4#Y&5>'5#5*<&1'+23
"#L*551)*!#L8**3'#!#-+5#"#3&<8#28-2#!^"#-+5#!_"][
!"#"$%&'" ("")*%'+ 4& 89" $"'8:! ;6%'"
!$
" `5' C'<#I0#03#'44'<20='#78'+#28'('#-('#'&."/&Y&5>'55*<&1'+23
"#F*<<80* :!]abcdD#"]ab\d;#03#'44'<20='#78'+#28'('#-('*'0-&Y&5>'5#5*<&1'+23
"#K/.-+50+>#A)#'%%&2'(13#03#A'32D#A&2#3','<20+>#*#1),#**#0&2'(13#-,3*#7*(Q3#7',,
@ C'.'+53#3*1'78-2#*+#28'#('2(0'=-,#1*5',
"#L*.0+>#7028#+'>-20=',)#7'0>82'5#2'(13@ T'<2*(#3.-<'#5*'3#+*2#-,,*7#+'>-20='#7'0>823#4*(#<*30+'#3010,-(02)@ 63&-,,)#5(*.#2'(13#28-2#'+5#&.#+'>-20=',)#7'0>82'5@ L-+#<('-2'#-#O+*2#,0Q'#2803P#='<2*(#<*+30320+>#*4#+'>-20='#2'(13
"#C0440<&,2#2*#A-,-+<'#033&'3#<*(('<2,)
!"#"$%&'" ("")*%'+ 4& 89" $"'8:! ;6%'"
!%
" $+#&+32(&<2&('5#='<2*(#9&'()#03#-#,0+'-(#503<(010+-2*(
" G8'#>*-,#03#2*#,'-(+#7'0>823#28-2#3'.-(-2'#28'#(','=-+25*<&1'+23#4(*1#28'#+*+?(','=-+2#5*<&1'+23
" `4#28'#5*<&1'+23#-('#%+0"'2%-&1"$'2'3%"D#-#,'-(+0+>-,>*(0281#<-+#A'#<8*3'+#28-2#03#>&-(-+2''5#2*#<*+='(>'#2*-+#*.201-,#9&'()"#`4#28'#5*<&1'+23#-('#+*2#,0+'-(,)#3'.-(-A,'D#-#,'-(+0+>-,>*(0281#<-+#A'#<8*3'+#28-2#10+010M'3#28'#2*2-,#-1*&+2#*4'((*(
!"#"$%&'" ("")*%'+ > HI
!&
" 6+32(&<2&('5#9&'(0'3!@ H'(<'.2(*+ -,>*(0281#:F*<<80*;@ KW#:-#4*(1#*4#H'(<'.2(*+ -,>*(0281;@ F'>('330*+@ B'&(-,#+'27*(Q#-,>*(02813@ JTS@ !#!#!
"#J2(&<2&('5#9&'(0'3@ C'<030*+#2(''3@ B'&(-,#+'27*(Q#-,>*(02813@ J,''.0+>#K/.'(23@ F0..'(@ !#!#!
!"#"$%&'" ("")*%'+ > HI
!>
" G8'#H'(<'.2(*+!@ ('9&0('3#2"$"')"4&'/.*3&('#2*#2(-0+0+>#5-2-D@ ('9&0('3#(-+5*1#3-1.,0+>D@ 7*(Q3#A'32#04#F#-+5#BF#-('#*4#3010,-(#30M'D#-+5@ 03#*.201-,#04#F#-+5#BF#<-+#A'#3'.-(-2'5#A)#-#8).'(.,-+':*28'(703'#02#*3<0,,-2'3;b
" G8'#F*<<80* (','=-+<'#4''5A-<Q#-,>*(0281#03#3010,-(#2*#28'#40/'5#0+<('1'+2#='(30*+#*4#28'#H'(<'.2(*+ (&,'!
!:''94: %&) 89" 6"!'"68!:&
!?
X-30<#H(*<'33!"#W'+'(-2'#<-+505-2'#*.'(-2*(3#:X**,'-+DH8(-3'D#.(*/0102)D#'2<;
@ -,>*(02813!#'/8-&320='D#>(''5)e3','<20='
"#$55#3*1'#*(#-,,#<-+505-2'3#2*#5*<&1'+2('.('3'+2-20*+3
"#Z'0>82#,0Q'#*28'(#2'(13
K44'<20='+'33!"#K/2('1',)#'44'<20='#4*(#.(*/0102)#*.'(-2*(3"#X**,'-+N
!"#"$%&'" ("")*%'+> %))4&5 ;8!7'87!"
!@
" F','=-+<'#f''5A-<Q#<*&,5#-,3*#1*504)4#,(*"0)&('.('3'+2-20*+
@ 5*<&1'+2#3.-<'#1*5040<-20*+@ <*++'<20*+032#,'-(+0+>#:<8-+>0+>#7'0>823#0+#+'27*(Q;
"#$33&1.20*+3!@ -#.'(3*+U3#(','=-+<'#Y&5>'1'+23 -('#<*+3032'+2@ 1*5040<-20*+3#4*(#*+'#.'(3*+#-('#1'-+0+>4&,#4*(#-+*28'(
"#B'='(#38*7+#2*#A'#'44'<20='#,#01+1)"0)%-
"#$+#*,5#05'-D#.'(0*50<-,,)#('3&(4-<'3@ ('<*11'+5'(#3)32'13
"#C0440<&,2#2*#40>&('#*&2#8*7#3'-(<8'(3#38*&,5#&3'#02
!"#"$%&'" ("")*%'+
"A
" F','=-+<'#4''5A-<Q#<-+#A'#5"2-&'44'<20='
"#K44'<20='+'33#5'.'+53#*+#+&1A'(#*4#Y&5>'55*<&1'+23
"#J0>+040<-+2,)#*&2.'(4*(13#A'32#8&1-+#9&'(0'3D>0='+#'+*&>8#Y&5>'5#5*<&1'+23
"#F'3&,23#<-+#A'#&+.('50<2-A,'#7028#,'33#28-+#40='Y&5>'5#5*<&1'+23
"#B*2#&3'5#*42'+#0+#.(*5&<20*+#3)32'13D#'b>bD#Z'A@ <*+3032'+2#1'50*<('#.'(4*(1-+<'#.('4'(('5#2*#0+<*+3032'+2,)>**5e>('-2#('3&,23@ J20<Q#7028#O5*<&1'+23#,0Q'#2803#*+'P#=-(0-+2
"#$+#-('-#*4#='()#-<20='#('3'-(<8#:1-+)#*.'+9&'320*+3;
;7==%!@ A9%#(J%@G
"!
" F','=-+<'#4''5A-<Q#03#+*2#705',)#&3'5
"#f'7#32&50'3#'/.,*('#28'#&3'(#305'#*4#4''5A-<Q@ C*+U2#+'<'33-(0,)#-+37'(#28-2#9&'320*+D#A&2#-('#320,,#0+2'('320+>
"#gh(>'+ i*'+'1-++ -+5#B0<Q#X',Q0+ ,**Q'5#-2#2803@ O$#<-3'#4*(#0+2'(-<20*+!#$#J2&5)#*4#`+2'(-<20='#`+4*(1-20*+#F'2(0'=-,X'8-=0*(#-+5#K44'<20='+'33PD#LI`#[jjk
"#63'(#32&5)#*4#kl#&3'(3
"#H('3'+2'5#7028#28(''#32),'3#*4#(','=-+<'#4''5A-<Q@ E.-9&'D#(','=-+<'#4''5A-<Q#03#O1->0<P#A'80+5#28'#3<'+'3@ G(-+3.-('+2D#3-1'#-3##$'6("&A&2#&3'(3#38*7+#'/.-+30*+#2'(13@ H'+'2(-A,'D#&3'(#>0='+#<8-+<'#2*#'502#,032#*4#2'(13#A'4*('#('?(&+
7;4&5 !"#"$%&'" ("")*%'+
""
*%;" ;@;8"= 7;")
"#
%##:J4&5 7;"! %''";;
"$
" G7*#9&'()#<*+32(&<20*+#-..(*-<8'3@ f0(32#7028*&2#(','=-+<'#4''5A-<Q@ J'<*+5#7028#*+'#*4#28(''#Ff#-..(*-<8'3#:(-+5*1,)#-330>+'5;
"#G-3Q#03#2*#<*+32(&<2#-#>**5#,*+>?2'(1#9&'()
"#K=-,&-20*+#03#A-3'5#*+#'44'<20='+'33#*4#40+-,#9&'()
"#B*#5044'('+<'#A'27''+#&3'(3#*+#40(32#2-3Q
4&8"!(%'" "<6"!4="&8
"%
" H('<030*+#-2#ma#5*<&1'+23
"#L,'-(#01.(*='1'+23#4(*1&3'#*4#Ff
"#E.-9&'#-+5#2(-+3.-('+228'#3-1'#:A)#5'30>+;
"#H'+'2(-A,'#A'32
"#E+,)#32-20320<-,,)#30>+040<-+25044'('+<'#03#A'27''+.'+'2(-A,'#-+5#A-3'
"#F'3&,23#<*1.-(-A,'#4*(.('<030*+#-2#[aa5*<&1'+23
("")*%'+ "K"'84$"&";;
"&
" G-3Q#7-3#2*#A&0,5#-#>**59&'()
"#I*7#1-+)#-22'1.23#5*.'*.,'#1-Q'N
"#f*(#3*1'#('-3*+D2(-+3.-('+2#0+2'(4-<''+<*&(->'5#-+#'/2(-02'(-20*+
"#H'+'2(-A,'#0+2'(4-<'#2**Q*+'#,'33#28-+#O+*(1-,P
"#B*2#<,'-(#78-2#2803#1'-+3
("")*%'+> *"9%$4:!
">
" Z8'('#505#7*(53#28')#<8*3'#<*1'#4(*1N
@ L*.0'5#4(*1#,0323.(*=05'5#A)#4''5A-<Q@ $55'5#-&2*1-20<-,,)A)#3)32'1
"#63'(3#2).'5#38*(29&'(0'3"#f''5A-<Q#-55'51-+)#2'(13"#H'+'2(-A,'#3)32'1'+<*&(->'5#4'7'(2'(13
@ X&2#('3&,2'5#0+#1*(''44'<20='#9&'(0'3:4-32'(;
J%; ("")*%'+ 7;") *@ ;"%!'9"!L
"?
" J&AY'<23#O,0Q'5P#28'#.'+'2(-A,'#='(30*+
"#J&AY'<23#0+#*.-9&'#<*+5020*+#'/.('33'5#5'30('#2*#O3''#-+5#<*+2(*,P#78-2#8-..'+'5
"#J&AY'<23#<*11'+23#28-2#4''5A-<Q#1-5'#28'1#O,-M)P
@ G-3Q#*4#>'+'(-20+>#2'(13#<8-+>'5#2*#2-3Q#*4#3','<20+>#2'(13
;7*M"'84$" !"%'84:&;
"@
" G(&'#(','=-+<'#4''5A-<Q#03#3&.'(=03'5@ f''5A-<Q#03#5*+'#A-3'5#*+#7"0(+0"&&3'(#-++*2-20*+3
"#Z8-2#8-..'+3#04#7'#2()#2*#>&'33#78-2#03#(','=-+2N
"#$33&1'#1-+)#2*.#(-+Q'5#5*<&1'+23#-('#(','=-+2@ E.20*+-,,)#40+5#-#<*,,'<20*+#*4#.(*A-A,)#+*+?(','=-+2#5*<&1'+23
"#S*504)#9&'()#*+#28-2#-33&1.20*+
"#F'?(&+#28-2#+'7#9&'()#-+5#38*7#('3&,23#2*#&3'(
"#Z8-2#8-..'+3N
"#H3'&5*?(','=-+<'#4''5A-<Q@ X,0+5#(','=-+<'#4''5A-<Q@ V*<-,#4''5A-<Q@ n
!"#"$%&'" ("")*%'+> %;;7=")
#A
" $33&1'5#(','=-+<'#4''5A-<Q
"#EA3'(=-20*+3@ K/0320+>#2'<8+09&'3#01.(*='5#9&'(0'3#*+#-='(->'@ X&2#3*1'#9&'(0'3#8-5#3'(0*&3#5(*.#0+#'44'<20='+'33@ G*.#(-+Q'5#5*<&1'+23#7'('#+*2#-,7-)3#(0>82@ E42'+#<-&3'5#A)#1-2<8#*4#-#30+>,'#9&'()#7*(5@ B*2#'='()#7*(5#03#&3'4&,#2*#-55#2*#9&'(0'3
"#`+3.0('5#<('-20*+#*4#VL$
"#S-Y*(#4*<&3#03#*+#>'220+>#A'22'(#2'(13#4*(#'/.-+30*+@ f0+50+>#2'(13#2*#<*+305'(@ J','<20*+#*4#2'(13@ Z'0>820+>#*4#3','<2'5#2'(13
I:'%# N:&8"<8 O&%#@;4;
#!
" F&+#9&'()#2*#('2(0'='#.-33->'3@ J010,-(#2*#1*32#O-33&1'5P#(','=-+<'#7*(Q@ H-33->'?('2(0'=-,#&+09&'#2*#VL$#:-2#28'#201';@ 63'3#maa?7*(5#.-33->'3
"#J','<2#'/.-+30*+#<*+<'.23#4(*1#('2(0'='5#3'2
"#Z8)#.-33->'3N@ S0+010M'3#3.&(0*&3#<*+<'.23#28-2#*<<&(#0+#,'+>28)#5*<&1'+23
;"#"'84&5 '%&)4)%8" 8"!=;
#"
" H-(3'#5*<&1'+2#<*,,'<20*+"#W'+'(-2'#.-(2#*4#3.''<8#2->>0+>
" J','<2#*+,)#+*&+#.8(-3'3@ J8*7+#2*#A'#<(020<-,#0+#1*32#('2(0'=-,#3)32'13@ W'+'(-,,)#.-(20<&,-(,)#&3'4&,#4*(#'/.-+30*+@ L*&,5#'-30,)#A'#'/2'+5'5#04#&3'4&,
"#$5Y'<20='?+*&+#.8(-3'3D#='(A3D#n@ B*2'#28-2#2->>0+>#03#-&2*1-2'5D#3*#1-Q'3#1032-Q'3o
;"#"'84&5 '%&)4)%8" 8"!=;
##
" Z-+2#O<*+<'.23P#28-2#*<<&(#+'-(#9&'()#7*(53@ G8'#1*('#9&'()#7*(53#28')#*<<&(#+'-(D#28'#A'22'(@ L*&+2#<*?*<<&(('+<'3#0+#maa?7*(5#70+5*73#*4#2'/2#:.-33->'3;
"#G*#-=*05#<*0+<05'+2-,#<*?*<<&(('+<'#0+#-#,-(>'#5*<&1'+2"#63'3#28'#4*,,*70+>#-5?8*<#4&+<20*+#2*#7'0>82#<*+<'.23
J"45984&5 8"!=;
#$
" C'=',*.'5#&30+>#`+9&'()"#`+<*(.*(-2'#&30+>#7'0>82'5#3&1
@ Z'0>82#*(0>0+-,#9&'()#-+5#'/.-+30*+#9&'()#'9&-,,)
"#T-(0-20*+3@ V*7'(#7'0>82#*+#'-<8#3&A3'9&'+2#2'(1
"#S*('#01.*(2-+2#28'#1*('#2'(13#28-2#-('#-55'5@ Z'0>82#*(0>0+-,#9&'()#'9&-,,)#7028#-#30+>,'#'/.-+30*+#<*+<'.2
"#E+,)#7*(Q3#78'+#9&'()#03#+*2#='()#(',0-A,'
7;4&5 "<6%&)") ?7"!@
#%
" GFKL#9&'()#\[m
B !"#$#%&"'()#*+#,-!#)&")./01#$%*%&+&/3$/)"#4&./0#
$4"*(5&3#*%#6*/5.6)&3#*+#6%.2&"7
"#K/.-+30*+#<*+<'.235+-?.-22'(+# 5+-?2'320+># ,04'<*5'3 5+-?2'32?('3&,235+-?,-A# 5+-?'=05'+<'# 5+-?2'32# 5+-?.(*40,'5'4'+3'?-22*(+')3?<8-,,'+>0+>?(',0-A0,02)# A&('-&?'/.'(2,-7)'(?.'2'(?+'&4',5 +'7?)*(Q?<02)?1&(5'(?<-3'10<8-',?A-0(5 .(*<'5&('3?2(-<Q?('<*(5# 5+-?,-A*(-2*()*('>*+?(-.'?<-3'1-(Q?32*(*,*7 ,-A*(-2*()?>','20+3&.'(1-(Q'2?1'(<8-+503'# 28*1-3?<-3Q') .(*<'5&('3?,04'<*5',04'<*5'3?<*(. 2'323?(',0-A0,02)# 1-0+'?<-3'# (-.'?<*+=0<20*+5+-?32(-+5
"<%=6#"
#&
" F','=-+<'#4''5A-<Q@ F'-,#*(#-33&1'5
"#F'-,#(','=-+<'#4''5A-<Q@ 63&-,,)#01.(*='3#'44'<20='+'33#30>+040<-+2,)@ B*2#-,7-)3#32-A,'#7028#='()#4'7#5*<&1'+23#Y&5>'5@ C0440<&,2#2*#0+<*(.*(-2'#0+2*#-#&3-A,'#3)32'1@ OC*<&1'+23#,0Q'#2803#*+'P#03#-#301.,'#0+32-+<'
"#$33&1'5#(','=-+<'#4''5A-<Q@ $,3*#<-,,'5#O.3'&5*#(','=-+<'#4''5A-<QP#*(#O,*<-,#4''5A-<QP
"#E(#O9&-30?(','=-+<'#4''5A-<QP#*(#n@ F*<<80*?A-3'5#-..(*-<8'3#'44'<20='#A&2#&+32-A,'@ VL$#<*1.-(-A,)#'44'<20='#:1-)A'#A'22'(;#A&2#1*('#32-A,'@ F','=-+<'#1*5',3#.(*=05'#4*(1-,#4(-1'7*(Q
;7==%!@