%!PS-Adobe-2.0
%%Creator: dvips 5.528 Copyright 1986, 1994 Radical Eye Software
%%Title: bridge.dvi
%%Pages: 9
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips bridge.dvi -o bridge.ps
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1994.07.21:1332
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get
round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0
0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn
begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X
array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo
setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx
FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{
pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}
B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup
length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B
/ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp
0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2
index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff
ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{
ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn
/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1
sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D
}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0
moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley
false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley
scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave
transform round exch round exch itransform moveto rulex 0 rlineto 0
ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta
0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}
B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{
3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p
-1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{
3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 40258431 52099146 1200 300 300
(/home/anarres/g/users/bh/papers/bridge.dvi) @start /Fa
35 122 df<006000F001F001F001E001E003E003E003C003C003C0078007800780070007
0007000E000E000E000C000C001C0018001800000000000000000000007000F800F800F0
00E0000C237BA20F>33 D<0E1F1F1F1D010102020408081020C0080F7E840F>44
D<FFC0FFC0FF800B037B8B12>I<00000300000007000000070000000F0000001F000000
1F0000003F0000003F0000006F80000067800000C7800000C78000018780000387800003
07800006078000060780000C0780000C0780001807800018078000300780007FFF80007F
FF8000C0078000C00780018003C0018003C0030003C0030003C0060003C01F0007C0FFC0
7FFCFFC07FFC1E227DA125>65 D<0000FC040007FF0C001F839C003C00FC00F800F801E0
007803C00078078000780F8000300F0000301F0000303E0000303E0000607C0000007C00
00007C000000F8000000F8000000F8000000F8000000F8000000F0000000F0000180F000
0180F0000300F0000300F800060078000C0078000C003C0018001E0070000F81C00007FF
800000FC00001E2278A124>67 D<00FFFC00FFFC000780000780000F00000F00000F0000
0F00001E00001E00001E00001E00003C00003C00003C00003C0000780000780000780000
780000F00000F00000F00000F00001E00001E00001E00001E00003C00003C00003C00007
C000FFFC00FFFC0016227EA113>73 D<007FFE0000FFFE000007800000078000000F0000
000F0000000F0000000F0000001E0000001E0000001E0000001E0000003C0000003C0000
003C0000003C00000078000000780000007800000078000000F0000000F000C000F000C0
00F0018001E0018001E0018001E0030001E0030003C0070003C00E0003C01E0007C07E00
7FFFFC00FFFFFC001A227DA11F>76 D<0001FC00000F0700001C0380007001C000E001E0
01C000E003C000F0078000F00F0000F00F0000F81E0000F83E0000F83E0000F87C0000F8
7C0000F87C0000F8F80001F0F80001F0F80001F0F80001E0F80003E0F00003E0F00007C0
F00007C0F0000F80F0000F00F0001F0078001E0078003C00380078003C00E0001E01C000
0707000001F800001D2278A126>79 D<007FFFE000FFFFF80007807C0007803C000F001E
000F001E000F001E000F001E001E003E001E003E001E003E001E003C003C007C003C0078
003C00F0003C01E0007807C0007FFF00007800000078000000F0000000F0000000F00000
00F0000001E0000001E0000001E0000001E0000003C0000003C0000003C0000007C00000
7FFC0000FFFC00001F227DA122>I<0003E080000FF980003C1F8000700F8000E0070000
C0070001C0070001C0070003800600038006000380000003C0000003C0000003F0000001
FE000001FFC00000FFE000003FF0000007F0000000F80000007800000078000000780000
0078003000700030007000300070003000E0007000E0007801C000780380006E070000C7
FE000081F8000019227CA11C>83 D<0FFFFFFC0FFFFFFC0F01E03C1C01E01C1C03C01C18
03C01C3003C0183003C01830078018600780186007801860078018000F0000000F000000
0F0000000F0000001E0000001E0000001E0000001E0000003C0000003C0000003C000000
3C00000078000000780000007800000078000000F0000000F0000000F0000001F000007F
FFC000FFFFC0001E2278A124>I<00F180038B80070F800E07001E07001C07003C070038
0E00780E00780E00780E00F01C00F01C00F01C20F01C30F03860F0386070786070D8C031
98801E0F0014157B9419>97 D<03C03F803F800380038007000700070007000E000E000E
000E001C001CF81D8C1E0E3C063C073807380F700F700F700F700FE01EE01EE01EE03CE0
38E038607060E031C01F0010237BA217>I<007C01C2030307070E0F1C0F3C0038007800
78007800F000F000F000F000F00170037006301C18380FC010157B9417>I<0000780007
F00007F00000700000700000E00000E00000E00000E00001C00001C00001C00001C00003
8000F380038B80070F800E07001E07001C07003C0700380E00780E00780E00780E00F01C
00F01C00F01C20F01C30F03860F0386070786070D8C03198801E0F0015237BA219>I<00
F803840E061C063C063806780CF038FFE0F000F000E000E000E000E000E002E006600C70
3830700F800F157A9417>I<00007C0000CE00019E00039E00038C000300000700000700
000700000700000E00000E00000E00000E0001FFF001FFF0001C00001C00001C00001C00
001C0000380000380000380000380000380000700000700000700000700000700000E000
00E00000E00000E00001C00001C00001C00001C000038000738000F30000F30000660000
3C0000172D82A20F>I<001F180031B800E0F801C0F001C0700380700780700700E00F00
E00F00E00F00E01E01C01E01C01E01C01E01C01E03800E03800E0780060F80061F0001E7
00000700000700000E00000E00000E00701C00F01800F0300060E0003F8000151F7E9417
>I<00F0000FE0000FE00000E00000E00001C00001C00001C00001C00003800003800003
8000038000070000071E0007638007C1800F81C00F01C00E01C00E01C01C03801C03801C
03801C0380380700380700380E08380E0C700E18701C18701C30700C20E00C6060078016
237DA219>I<00E000E001E000C00000000000000000000000000000000000001E003300
63806380C380C700C70007000E000E000E001C001C001C40386038C070C0708031803100
1E000C227CA10F>I<0001C00003C00003C0000180000000000000000000000000000000
000000000000000000000000003C00004600008700018700030700030700030700000E00
000E00000E00000E00001C00001C00001C00001C00003800003800003800003800007000
00700000700000700000E00000E00000E00071C000F18000F380006600003C0000122C82
A10F>I<00F0000FE0000FE00000E00000E00001C00001C00001C00001C0000380000380
000380000380000700000701E00706300708700E10F00E20F00E20600E40001D80001E00
001FC0001CE0003870003830003838203838307070607070607070407030C0E01880600F
0014237DA217>I<01E01FC01FC001C001C0038003800380038007000700070007000E00
0E000E000E001C001C001C001C0038003800380038007000700071007180E300E300E300
620066003C000B237CA20D>I<1E07C07C00331861860063B033030063E03E0380C3C03C
0380C3C03C0380C38038038007807807000700700700070070070007007007000E00E00E
000E00E00E000E00E01C100E00E01C181C01C01C301C01C038301C01C038601C01C01840
38038018C01801800F0026157C9429>I<1E0780003318E00063B0600063E07000C3C070
00C3807000C38070000700E0000700E0000700E0000700E0000E01C0000E01C0000E0382
000E0383001C0386001C0706001C070C001C030800380318001801E00019157C941C>I<
007C0001C6000303000603800E03C01C03C03C03C03803C07803C07803C07803C0F00780
F00780F00780F00F00F00E00701E00701C003038001860000F800012157B9419>I<03C1
E00666300C7C380C781818781C18701C18701C00E03C00E03C00E03C00E03C01C07801C0
7801C07801C0700380E003C0E003C1C003C380076700073C000700000700000E00000E00
000E00000E00001C00001C0000FFC000FFC000161F7F9419>I<00F840018CC00707C00E
07800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E00F0
1C00701C00703C00307C0030F8000F380000380000380000700000700000700000700000
E00000E0000FFE001FFE00121F7B9417>I<1E1F0033318063E1C063C3C0C3C3C0C38180
C380000700000700000700000700000E00000E00000E00000E00001C00001C00001C0000
1C000038000018000013157C9415>I<007801840306020E061E061E0608070007F007F8
03FC007C001E000E700EF00CF00CE008601030601F800F157D9414>I<006000E000E000
E000E001C001C001C001C00380FFF8FFF8038007000700070007000E000E000E000E001C
001C001C101C18383038303860186018C00F000D1F7C9E11>I<0F003011807021C07061
C0E0C1C0E0C380E0C380E00381C00701C00701C00701C00E03800E03800E03840E03860E
070C0C070C0E070C0E0B1806131003E1E018157C941B>I<0F01C01183C021C3E061C1E0
C1C0E0C380E0C380E00380C00700C00700C00700C00E01800E01800E01800E03000E0300
0E02000E04000E0C0006180001E00014157C9417>I<0F003070118070F021C070F861C0
E078C1C0E038C380E038C380E0380381C0300701C0300701C0300701C0300E0380600E03
80600E0380600E0380C00E0380C00E0780800E078180060F83000319860001F078001E15
7C9421>I<0F003011807021C07061C0E0C1C0E0C380E0C380E00381C00701C00701C007
01C00E03800E03800E03800E03800E07000C07000E07000E0F00061E0003EE00000E0000
0E00001C00301C0078380078300070600060C0002180001E0000151F7C9418>121
D E /Fb 78 125 df<000FE1F80078178C00E03E1E01C07E3E03C07C3E07807C1C07803C
0007803C0007803C0007803C0007803C0007803C0007803C0007803C00FFFFFFE0FFFFFF
E007803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C
0007803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C007FF1FF
E07FF1FFE01F2380A21D>11 D<000FC0000078300000E0080001C03C0003C07C0007807C
0007807C0007803800078000000780000007800000078000000780000007800000FFFFFC
00FFFFFC0007807C0007803C0007803C0007803C0007803C0007803C0007803C0007803C
0007803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C
007FF1FFC07FF1FFC01A2380A21C>I<000FEC0000783C0000E07C0001C07C0003C07C00
07803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C00
FFFFFC00FFFFFC0007803C0007803C0007803C0007803C0007803C0007803C0007803C00
07803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C0007803C00
07803C007FF1FFC07FF1FFC01A2380A21C>I<000FE03F00003819E0C000E007802001C0
1F00F003C03F01F007803E01F007803E01F007801E00E007801E000007801E000007801E
000007801E000007801E000007801E0000FFFFFFFFF0FFFFFFFFF007801E01F007801E00
F007801E00F007801E00F007801E00F007801E00F007801E00F007801E00F007801E00F0
07801E00F007801E00F007801E00F007801E00F007801E00F007801E00F007801E00F007
801E00F07FF0FFC7FF7FF0FFC7FF282380A22A>I<70F8F8F8F8F8F8F870707070707070
70707070202020202020000000000070F8F8F87005237CA20E>33
D<701CF83EFC3FFC3F741D0401040104010401080208021004100420084010100F7EA219
>I<70F8FCFC7404040404080810102040060F7CA20E>39 D<0010002000400080018003
00060006000C001C001C0018003800380030007000700070007000F000E000E000E000E0
00E000E000E000E000E000E000F000700070007000700030003800380018001C001C000C
00060006000300018000800040002000100C327DA413>I<800040002000100018000C00
06000600030003800380018001C001C000C000E000E000E000E000F00070007000700070
00700070007000700070007000F000E000E000E000E000C001C001C00180038003800300
060006000C00180010002000400080000C327DA413>I<00C00000E00000C00000C00040
C080E0C1C0F0C3C07CCF801EDE0003F00000C00003F0001EDE007CCF80F0C3C0E0C1C040
C08000C00000C00000E00000C00012157DA419>I<000180000001800000018000000180
000001800000018000000180000001800000018000000180000001800000018000000180
00000180000001800000018000FFFFFFFFFFFFFFFF000180000001800000018000000180
000001800000018000000180000001800000018000000180000001800000018000000180
0000018000000180000001800020227D9C27>I<70F8FCFC740404040408081010204006
0F7C840E>I<FFF0FFF0FFF00C037F8B11>I<70F8F8F87005057C840E>I<00600000E000
03E000FFE000FDE00001E00001E00001E00001E00001E00001E00001E00001E00001E000
01E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000
01E00001E00001E00001E0007FFF807FFF8011207D9F19>49 D<03F8000FFF00181F8020
07C04003E0F801E0FC01F0FC00F0FC00F07800F03001F00001E00001E00003E00003C000
0780000700000E00001C0000380000700000E00000C00001001002001004001008003010
00203FFFE07FFFE0FFFFE0FFFFE014207E9F19>I<03F8000FFE00180F803803C07C03C0
7C03E07C01E03C01E01803E00003C00003C0000780000F00001C0003F800000E00000780
0003C00003E00001E00001F00001F03001F07801F0FC01F0FC01E0FC03E0F803C06007C0
380F801FFE0003F80014207E9F19>I<000180000180000380000780000F80000F800017
800027800067800047800087800107800307800207800407800807801807801007802007
80400780C00780FFFFFCFFFFFC00078000078000078000078000078000078000078000FF
FC00FFFC16207F9F19>I<1800401E03801FFF801FFF001FFC0013F00010000010000010
000010000010000010000011FC001606001803801003C00001C00001E00001E00001F000
01F07001F0F801F0F801F0F801F0F801E04003E04003C03007801C0F000FFE0003F00014
207E9F19>I<003E0000FF8003C0C00700E00E01E01C03E01C03E03801C0380000780000
700000700000F0F800F30600F40380F401C0F801C0F800E0F000E0F000F0F000F0F000F0
7000F07000F07000F03800E03801E01801C01C03800F070007FE0001F80014207E9F19>
I<4000006000007FFFF07FFFF07FFFE07FFFE0400040C000808001008001008002000004
0000080000080000100000300000300000700000700000E00000E00000E00001E00001E0
0001E00001E00003E00003E00003E00003E00003E00003E00003E00001C00014227DA119
>I<01F80007FF000C07801001C02000C06000606000607000607800607C00C03F00C03F
81801FE6000FFC0007FC0001FF0006FF800C3FC0381FE03007E07001F0E000F0E000F0E0
0070E00070E000707000607000E03801C01E07800FFE0001F80014207E9F19>I<01F800
07FE000E0F001C03803801C07801C07001E0F000E0F000E0F000E0F000F0F000F0F000F0
7000F07001F03801F03802F01C02F0060CF001F0F00000F00000E00000E00001E03801C0
7C01C07C0380780700300E00303C001FF80007E00014207E9F19>I<70F8F8F870000000
000000000000000070F8F8F87005157C940E>I<70F8F8F8700000000000000000000000
70F8F8F87808080808101010204040051F7C940E>I<07F000181C00200E00400700F007
80F80780F80780F80780700780000F00000E00001C0000380000700000600000C0000080
000080000180000100000100000100000100000100000100000000000000000000000000
0000000003800007C00007C00007C00003800011237DA218>63 D<000180000001800000
0180000003C0000003C0000003C0000007E0000007E000000FF0000009F0000009F00000
11F8000010F8000010F8000020FC0000207C0000207C0000403E0000403E0000403E0000
801F0000801F0000FFFF0001FFFF8001000F8003000FC0020007C0020007C0040007E004
0003E00C0003E01E0003F0FFC03FFFFFC03FFF20227EA125>65 D<FFFFF800FFFFFE0007
C00F8007C007C007C003E007C001E007C001F007C001F007C001F007C001F007C001F007
C001E007C003E007C007C007C00F8007C03E0007FFFE0007C0078007C003C007C001E007
C001F007C000F007C000F807C000F807C000F807C000F807C000F807C000F807C001F007
C001F007C003E007C00FC0FFFFFF00FFFFFC001D227EA123>I<0007F008003FFC1800FC
073801F001B803C000F8078000780F0000381E0000183E0000183C0000187C0000087C00
000878000008F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800
0000780000007C0000087C0000083C0000083E0000081E0000100F0000100780002003C0
004001F0018000FC0700003FFE000007F0001D227DA124>I<FFFFF800FFFFFE0007C00F
8007C003C007C001E007C000F007C0007807C0007807C0003C07C0003C07C0001E07C000
1E07C0001E07C0001F07C0001F07C0001F07C0001F07C0001F07C0001F07C0001F07C000
1F07C0001F07C0001E07C0001E07C0003E07C0003C07C0003C07C0007807C000F007C001
E007C003C007C00F80FFFFFF00FFFFF80020227EA126>I<FFFFFFE0FFFFFFE007C003E0
07C000E007C0006007C0002007C0003007C0003007C0001007C0201007C0201007C02010
07C0200007C0600007C0E00007FFE00007FFE00007C0E00007C0600007C0200007C02000
07C0200407C0200407C0000407C0000807C0000807C0000807C0001807C0001807C00038
07C0007807C001F0FFFFFFF0FFFFFFF01E227EA122>I<FFFFFFE0FFFFFFE007C003E007
C000E007C0006007C0002007C0003007C0003007C0001007C0001007C0201007C0201007
C0200007C0200007C0600007C0E00007FFE00007FFE00007C0E00007C0600007C0200007
C0200007C0200007C0200007C0000007C0000007C0000007C0000007C0000007C0000007
C0000007C00000FFFF0000FFFF00001C227EA121>I<0007F008003FFC1800FC073801F0
01B803C000F8078000780F0000381E0000183E0000183C0000187C0000087C0000087800
0008F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8003FFF7800
3FFF7C0000F87C0000F83C0000F83E0000F81E0000F80F0000F8078000F803C000F801F0
017800FC0638003FFC180007F00820227DA127>I<FFFE7FFFFFFE7FFF07C003E007C003
E007C003E007C003E007C003E007C003E007C003E007C003E007C003E007C003E007C003
E007C003E007C003E007FFFFE007FFFFE007C003E007C003E007C003E007C003E007C003
E007C003E007C003E007C003E007C003E007C003E007C003E007C003E007C003E007C003
E007C003E0FFFE7FFFFFFE7FFF20227EA125>I<FFFEFFFE07C007C007C007C007C007C0
07C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C0
07C007C007C007C007C007C0FFFEFFFE0F227FA112>I<0FFFF00FFFF0001F00001F0000
1F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000
1F00001F00001F00001F00001F00001F00001F00001F00001F00301F00781F00FC1F00FC
1F00FC1E00783E00403C003070000FC00014227EA11A>I<FFFF0000FFFF000007C00000
07C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C00000
07C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C00000
07C0004007C0004007C0004007C0004007C000C007C000C007C0008007C0018007C00180
07C0078007C01F80FFFFFF80FFFFFF801A227EA11F>76 D<FFC00003FF80FFC00003FF80
07C00003F00005E00005F00005E00005F00004F00009F00004F00009F00004F00009F000
04780011F00004780011F00004780011F000043C0021F000043C0021F000043C0021F000
041E0041F000041E0041F000040F0081F000040F0081F000040F0081F00004078101F000
04078101F00004078101F0000403C201F0000403C201F0000401E401F0000401E401F000
0401E401F0000400F801F0000400F801F0000400F801F00004007001F0001F007001F000
FFE0703FFF80FFE0203FFF8029227EA12E>I<FFC007FFFFE007FF07F000F805F0002004
F8002004F80020047C0020047E0020043E0020041F0020041F8020040F80200407C02004
07E0200403E0200401F0200401F0200400F8200400FC2004007C2004003E2004003F2004
001F2004000FA004000FE0040007E0040003E0040003E0040001E0040001E0040000E01F
000060FFE00060FFE0002020227EA125>I<000FF00000781E0000E0070003C003C00780
01E00F0000F01E0000781E0000783C00003C3C00003C7C00003E7800001E7800001EF800
001FF800001FF800001FF800001FF800001FF800001FF800001FF800001F7800001E7C00
003E7C00003E3C00003C3E00007C1E0000781E0000780F0000F0078001E003C003C000E0
070000781E00000FF00020227DA127>I<FFFFF800FFFFFE0007C01F0007C007C007C003
C007C001E007C001E007C001F007C001F007C001F007C001F007C001F007C001E007C003
E007C003C007C0078007C01F0007FFFC0007C0000007C0000007C0000007C0000007C000
0007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C000
00FFFE0000FFFE00001C227EA122>I<FFFFE00000FFFFFC000007C01F000007C0078000
07C003C00007C003E00007C001E00007C001F00007C001F00007C001F00007C001F00007
C001E00007C003E00007C003C00007C007000007C03E000007FFF0000007C03C000007C0
1E000007C00F000007C00F800007C007C00007C007C00007C007C00007C007C00007C007
C00007C007C00007C007C00007C007C00007C007C04007C003C04007C003E080FFFE00F1
80FFFE003E0022227EA125>82 D<03F8100FFE301E07703801F0780070700030F00030F0
0010F00010F00010F80000F800007E00007FC0003FFC001FFF000FFFC007FFE000FFE000
0FF00001F00000F80000F8000078800078800078800078C00070C00070E000E0F001E0FE
03C0C7FF8080FE0015227DA11C>I<7FFFFFFC7FFFFFFC7807C03C6007C00C4007C00440
07C004C007C006C007C0068007C0028007C0028007C0028007C0020007C0000007C00000
07C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C00000
07C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C00003
FFFF8003FFFF801F227EA124>I<FFFE07FFFFFE07FF07C000F807C0002007C0002007C0
002007C0002007C0002007C0002007C0002007C0002007C0002007C0002007C0002007C0
002007C0002007C0002007C0002007C0002007C0002007C0002007C0002007C0002007C0
002007C0002007C0002003C0004003E0004001E000C000F0018000700300003C0E00001F
FC000003F00020227EA125>I<FFFC00FFC0FFFC00FFC00FC0001E0007C000080007C000
080003E000100003E000100003F000100001F000200001F000200000F800400000F80040
0000F8004000007C008000007C008000007E008000003E010000003E010000001F020000
001F020000001F820000000F840000000F840000000FCC00000007C800000007C8000000
03F000000003F000000003F000000001E000000001E000000000C000000000C000000000
C0000022227FA125>I<FFFC3FFF03FFFFFC3FFF03FF0FC003F000780FC001F0003007C0
01F0002007C001F8002007E001F8002003E001F8004003E001FC004003E0027C004001F0
027C008001F0027E008001F0043E008000F8043E010000F8043E010000F8081F0100007C
081F0200007C081F0200007C100F8200003E100F8400003E100F8400003E2007C400001F
2007C800001F2007C800001F4003E800000FC003F000000FC003F000000F8001F000000F
8001F00000078001E00000070000E00000070000E00000030000C0000002000040003022
7FA133>I<FFFC007FE0FFFC007FE00FE0001E0007E000080003E000180003F000100001
F000200001F800200000FC004000007C004000007E008000003E008000003F010000001F
830000000F820000000FC600000007C400000007E800000003F800000003F000000001F0
00000001F000000001F000000001F000000001F000000001F000000001F000000001F000
000001F000000001F000000001F000000001F00000003FFF8000003FFF800023227FA125
>89 D<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
C0C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE07317BA40E>91 D<080210042008200840104010
8020802080208020B82EFC3FFC3F7C1F380E100F7AA219>I<FEFE060606060606060606
060606060606060606060606060606060606060606060606060606060606060606060606
FEFE07317FA40E>I<1FF000381C007C0E007C0F007C078038078000078000078000FF80
07C7801E07803C0780780780700780F00784F00784F00784F00F84780F843C33F80FC1F0
16157E9419>97 D<0F0000FF0000FF00001F00000F00000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F1F800F60E00F80300F00380F001C0F001E0F000E0F
000F0F000F0F000F0F000F0F000F0F000F0F000F0F000E0F001E0F001C0F00380E80700C
60E0081F8018237FA21C>I<01FE000707000C0F801C0F80380F80780700700000F00000
F00000F00000F00000F00000F00000F000007000007800403800401C00800C0100070600
01F80012157E9416>I<0000F0000FF0000FF00001F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F001F8F00706F00E01F01C00F03800F07800F07000
F0F000F0F000F0F000F0F000F0F000F0F000F0F000F07000F07800F03800F01C01F00C03
F80704FF01F8FF18237EA21C>I<01FC000707000C03801C01C03801C07800E07000E0F0
00E0FFFFE0F00000F00000F00000F00000F000007000007800203800201C00400E008007
030000FC0013157F9416>I<003E0000E30001C78003CF80038F80078700078000078000
078000078000078000078000078000078000FFF800FFF800078000078000078000078000
078000078000078000078000078000078000078000078000078000078000078000078000
0780007FFC007FFC00112380A20F>I<01F078071D9C0E0E1C1C07001C07003C07803C07
803C07803C07801C07001C07000E0E000F1C0019F0001000001000001800001C00001FFF
000FFFE00FFFF03800F870003860001CE0001CE0001CE0001C6000187000383800700F03
C001FE0016207F9419>I<0F000000FF000000FF0000001F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0FC0000F
30E0000F4070000F8078000F8078000F0078000F0078000F0078000F0078000F0078000F
0078000F0078000F0078000F0078000F0078000F0078000F0078000F0078000F007800FF
F3FF80FFF3FF8019237FA21C>I<0E001F001F001F000E00000000000000000000000000
000000000F00FF00FF001F000F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F00FFE0FFE00B2280A10D>I<007000F800F800F80070000000000000000000
00000000000000007807F807F800F8007800780078007800780078007800780078007800
7800780078007800780078007800780078007800787078F870F870F8E071C01F000D2C82
A10F>I<0F0000FF0000FF00001F00000F00000F00000F00000F00000F00000F00000F00
000F00000F00000F00000F03FC0F03FC0F01E00F01800F03000F04000F08000F18000F38
000F7C000FBE000F1E000F1F000F0F800F07800F07C00F03C00F03E00F01F0FFE7FEFFE7
FE17237FA21A>I<0F00FF00FF001F000F000F000F000F000F000F000F000F000F000F00
0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
0F00FFF0FFF00C2380A20D>I<0F0FE03F80FF3070C1C0FF403900E01F803E00F00F803E
00F00F003C00F00F003C00F00F003C00F00F003C00F00F003C00F00F003C00F00F003C00
F00F003C00F00F003C00F00F003C00F00F003C00F00F003C00F00F003C00F00F003C00F0
FFF3FFCFFFFFF3FFCFFF28157F942B>I<0F0FC000FF30E000FF4070001F8078000F8078
000F0078000F0078000F0078000F0078000F0078000F0078000F0078000F0078000F0078
000F0078000F0078000F0078000F0078000F007800FFF3FF80FFF3FF8019157F941C>I<
00FC000703800E01C01C00E0380070780078700038F0003CF0003CF0003CF0003CF0003C
F0003CF0003C7000387800783800701C00E00E01C007038000FC0016157F9419>I<0F1F
80FF60E0FF80700F00380F001C0F001E0F001E0F000F0F000F0F000F0F000F0F000F0F00
0F0F000F0F001E0F001E0F001C0F00380F80700F60E00F1F800F00000F00000F00000F00
000F00000F00000F00000F0000FFF000FFF000181F7F941C>I<01F020070C600E02E01C
03E03801E07801E07801E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001E078
01E03801E01C03E00C03E0070DE001F1E00001E00001E00001E00001E00001E00001E000
01E00001E0001FFE001FFE171F7E941A>I<0F1E00FF2300FF47801F87800F83000F8000
0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000
0F0000FFF800FFF80011157F9414>I<0FC4383C600C6004E004E004F000FE007FE03FF0
1FF807FC007E801E800EC00EC00EC00CE01CD83887E00F157E9414>I<01000100010001
00030003000300070007000F003FF8FFF80F000F000F000F000F000F000F000F000F000F
000F040F040F040F040F040F040788038800F00E1F7F9E13>I<0F007800FF07F800FF07
F8001F00F8000F0078000F0078000F0078000F0078000F0078000F0078000F0078000F00
78000F0078000F0078000F0078000F0078000F00F8000F00F80007017C0003827F8000FC
7F8019157F941C>I<FFE1FEFFE1FE1F00700F00200F802007804007804003C08003C080
03E08001E10001E10000F20000F20000FA00007C00007C00003800003800003800001000
17157F941A>I<FFCFFC7F80FFCFFC7F801F01F01E000F00E00C000F00F008000F01F008
000781781000078178100007C238300003C23C200003C23C200001E41C400001E41E4000
01E41E400000F80E800000F80F800000F80F800000700700000070070000007007000000
2002000021157F9424>I<FFE3FEFFE3FE0F81E007818007C10003C20001E60001F40000
F800007800003C00003C00005E00008F00018F800107800203C00603E01E03E0FF87FFFF
87FF18157F941A>I<FFE1FEFFE1FE1F00700F00200F802007804007804003C08003C080
03E08001E10001E10000F20000F20000FA00007C00007C00003800003800003800001000
001000002000002000002000F84000F84000F88000B980006300003E0000171F7F941A>
I<3FFFC0380780300F80200F00601E00403E00403C0040780000F80000F00001E00003C0
0007C0400780400F00401F00C01E00803C00807C0180780780FFFF8012157F9416>I<FF
FFFFFFFFFF803101808C32>124 D E /Fc 38 122 df<0007F800007FFC0001FC1E0003
F01F0007E03F000FC03F000FC03F000FC03F000FC01E000FC00C000FC000000FC000000F
C0FF80FFFFFF80FFFFFF80FFFFFF800FC01F800FC01F800FC01F800FC01F800FC01F800F
C01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800F
C01F800FC01F807FF8FFF07FF8FFF07FF8FFF01C237FA220>12 D<3C7EFFFFFFFF7E3C08
087C8710>46 D<3C7EFFFFFFFF7E3C0000000000003C7EFFFFFFFF7E3C08167C9510>58
D<000078000000007800000000FC00000000FC00000000FC00000001FE00000001FE0000
0003FF00000003FF00000003FF000000073F800000073F8000000F3FC000000E1FC00000
0E1FC000001C0FE000001C0FE000003C0FF000003807F000003807F000007003F8000070
03F80000FFFFFC0000FFFFFC0000FFFFFC0001E001FE0001C000FE0003C000FF00038000
7F000380007F000780007F80FFF807FFFCFFF807FFFCFFF807FFFC26227EA12B>65
D<0003FE00C0001FFFC1C0007FFFF3C001FF80FFC003FC003FC007F0000FC00FE00007C0
1FC00007C03FC00003C03F800003C07F800001C07F000001C07F000001C0FF00000000FF
00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F00
0000007F000001C07F800001C03F800001C03FC00003C01FC00003800FE000078007F000
0F0003FC001E0001FF807C00007FFFF800001FFFE0000003FF000022227DA129>67
D<FFFFFF8000FFFFFFF800FFFFFFFC0007F001FF0007F0007F8007F0001FC007F0000FE0
07F00007E007F00007F007F00007F007F00003F807F00003F807F00003F807F00003FC07
F00003FC07F00003FC07F00003FC07F00003FC07F00003FC07F00003FC07F00003FC07F0
0003FC07F00003F807F00003F807F00003F807F00007F007F00007F007F0000FE007F000
1FC007F0003F8007F001FF00FFFFFFFE00FFFFFFF800FFFFFFC00026227EA12C>I<FFFF
FFFC00FFFFFFFC00FFFFFFFC0007F001FE0007F0007E0007F0003E0007F0001E0007F000
0E0007F0000E0007F01C0E0007F01C070007F01C070007F01C070007F03C000007F07C00
0007FFFC000007FFFC000007FFFC000007F07C000007F03C000007F01C038007F01C0380
07F01C038007F01C070007F000070007F000070007F0000F0007F0000F0007F0001F0007
F0003F0007F001FE00FFFFFFFE00FFFFFFFE00FFFFFFFE0021227EA126>I<FFFF81FFFF
FFFF81FFFFFFFF81FFFF07F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007
F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007FF
FFFFE007FFFFFFE007FFFFFFE007F0000FE007F0000FE007F0000FE007F0000FE007F000
0FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000FE007F0000F
E007F0000FE0FFFF81FFFFFFFF81FFFFFFFF81FFFF28227EA12D>72
D<FFFFE0FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F80003F80003F8
0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
0003F80003F80003F80003F80003F80003F80003F800FFFFE0FFFFE0FFFFE013227FA116
>I<FFFFE000FFFFE000FFFFE00007F0000007F0000007F0000007F0000007F0000007F0
000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
000007F0000007F0000007F0003807F0003807F0003807F0007007F0007007F0007007F0
00F007F000F007F001F007F007F007F01FE0FFFFFFE0FFFFFFE0FFFFFFE01D227EA122>
76 D<FFF0001FFFFFF8001FFFFFFC001FFF07FE0000E007FF0000E007FF8000E0077FC0
00E0073FC000E0071FE000E0070FF000E00707F800E00707FC00E00703FE00E00701FE00
E00700FF00E007007F80E007003FC0E007003FE0E007001FF0E007000FF0E0070007F8E0
070003FCE0070001FEE0070000FFE0070000FFE00700007FE00700003FE00700001FE007
00000FE007000007E007000007E0FFF80003E0FFF80001E0FFF80000E028227EA12D>78
D<FFFFFF8000FFFFFFE000FFFFFFF80007F003FC0007F000FE0007F000FF0007F0007F00
07F0007F8007F0007F8007F0007F8007F0007F8007F0007F8007F0007F8007F0007F0007
F000FF0007F000FE0007F003FC0007FFFFF80007FFFFC00007F000000007F000000007F0
00000007F000000007F000000007F000000007F000000007F000000007F000000007F000
000007F000000007F0000000FFFF800000FFFF800000FFFF80000021227EA127>80
D<FFFFFE0000FFFFFFE000FFFFFFF80007F003FC0007F000FE0007F000FF0007F0007F00
07F0007F8007F0007F8007F0007F8007F0007F8007F0007F8007F0007F0007F000FF0007
F001FE0007F007F80007FFFFE00007FFFF800007F00FE00007F007F00007F003F80007F0
01FC0007F001FC0007F001FC0007F001FC0007F001FE0007F001FE0007F001FE0007F001
FE0707F001FF0707F000FF07FFFF80FF8EFFFF803FFCFFFF800FF828227EA12B>82
D<01FE060007FFCE001FFFFE003F01FE003C007E0078003E0078001E00F8000E00F8000E
00F8000E00FC000000FF000000FFF000007FFF80003FFFE0003FFFF8001FFFFC0007FFFE
0003FFFF00003FFF000001FF0000003F8000001F8000001F80E0000F80E0000F80E0000F
80F0000F00F0001F00FC001E00FF807C00FFFFF800E7FFF000C07FC00019227DA120>I<
7FFFFFFFC07FFFFFFFC07FFFFFFFC07E03F80FC07C03F807C07803F803C07003F801C0F0
03F801E0F003F801E0E003F800E0E003F800E0E003F800E0E003F800E00003F800000003
F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
00000003F800000003F800000003F800000003F800000003F800000003F800000003F800
000003F8000003FFFFF80003FFFFF80003FFFFF80023217EA028>I<FFFF07FFF81FFFFF
FF07FFF81FFFFFFF07FFF81FFF07F0003F8000E007F0003F8000E003F8003F8001C003F8
003FC001C003FC003FC003C001FC007FE0038001FC007FE0038001FE007FE0078000FE00
FFF0070000FE00E7F00700007F00E7F00E00007F01C3F80E00007F01C3F80E00003F81C3
F81C00003F8381FC1C00003FC381FC3C00001FC781FE3800001FC700FE3800001FE700FE
7800000FEF00FF7000000FEE007F70000007FE007FE0000007FC003FE0000007FC003FE0
000003FC003FC0000003F8001FC0000003F8001FC0000001F8001F80000001F0000F8000
0000F0000F00000000E00007000038227FA13B>87 D<07FE00001FFF80003F07E0003F03
F0003F01F0003F01F8001E01F8000001F8000001F80000FFF80007FFF8001FE1F8003F01
F8007E01F800FC01F800FC01F800FC01F800FC01F8007E03F8007F0EFF801FFCFF8007F0
3F8019167E951C>97 D<FF800000FF800000FF8000001F8000001F8000001F8000001F80
00001F8000001F8000001F8000001F8000001F8000001F8000001F8FF0001FBFFC001FF0
7E001FC01F001F801F801F800FC01F800FC01F800FE01F800FE01F800FE01F800FE01F80
0FE01F800FE01F800FE01F800FC01F800FC01F800FC01F801F801FC01F001FF07E001E3F
FC001C0FE0001B237EA220>I<00FF8007FFE00FC3F01F03F03F03F07E03F07E01E07E00
00FE0000FE0000FE0000FE0000FE0000FE00007E00007E00007F00003F00701F80E00FE1
E007FFC000FE0014167E9519>I<0001FF000001FF000001FF0000003F0000003F000000
3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000FE3F0007FF
FF000FC1FF001F007F003F003F007E003F007E003F007E003F00FE003F00FE003F00FE00
3F00FE003F00FE003F00FE003F00FE003F007E003F007E003F003F003F001F007F000FC1
FFE007FFBFE001FE3FE01B237EA220>I<00FE0007FF800F87E01F03E03F01F07E01F07E
01F8FE00F8FE00F8FFFFF8FFFFF8FE0000FE0000FE0000FE00007E00007F00383F00381F
80700FC1F003FFC000FF0015167E951A>I<001F8000FFE001F1F003E3F007E3F00FC3F0
0FC1E00FC0000FC0000FC0000FC0000FC0000FC000FFFE00FFFE00FFFE000FC0000FC000
0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000
0FC0000FC0007FFC007FFC007FFC0014237EA212>I<00FE0F8003FFBFC00F83F3C01F01
F3C01F01F3803F01F8003F01F8003F01F8003F01F8003F01F8001F01F0001F01F0000F83
E0000FFF80001CFE00001C0000001C0000001E0000001FFFE0001FFFFC000FFFFF000FFF
FF003FFFFF807C001FC0F8000FC0F80007C0F80007C0F80007C07C000F803E001F001F80
7E000FFFFC0001FFE0001A217F951D>I<FF800000FF800000FF8000001F8000001F8000
001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F87F0
001F9FFC001FB87E001FE03E001FC03F001FC03F001F803F001F803F001F803F001F803F
001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F
00FFF1FFE0FFF1FFE0FFF1FFE01B237DA220>I<0E003F807F807F807F807F803F800E00
000000000000000000000000FF80FF80FF801F801F801F801F801F801F801F801F801F80
1F801F801F801F801F801F801F80FFF0FFF0FFF00C247EA30F>I<FF80FF80FF801F801F
801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F
801F801F801F801F801F801F801F801F801F80FFF0FFF0FFF00C237EA20F>108
D<FF03F803F800FF0FFE0FFE00FF383F383F001F601F601F001FC01FC01F801FC01FC01F
801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F
801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F801F
801F801F801F80FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF02C167D9533>I<FF07F000
FF1FFC00FF387E001F603E001FC03F001FC03F001F803F001F803F001F803F001F803F00
1F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00
FFF1FFE0FFF1FFE0FFF1FFE01B167D9520>I<00FF0007FFE00FC3F01F00F83F00FC7E00
7E7E007E7E007EFE007FFE007FFE007FFE007FFE007FFE007FFE007F7E007E7E007E3F00
FC1F00F80FC3F007FFE000FF0018167E951D>I<FF8FF000FFBFFC00FFF07E001FC03F00
1F801F801F801FC01F801FC01F800FE01F800FE01F800FE01F800FE01F800FE01F800FE0
1F800FE01F800FC01F801FC01F801FC01F801F801FC03F001FF07E001FBFFC001F8FE000
1F8000001F8000001F8000001F8000001F8000001F8000001F800000FFF00000FFF00000
FFF000001B207E9520>I<FF0F80FF3FE0FF33F01F63F01FC3F01FC3F01FC1E01F80001F
80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8000FFF800FF
F800FFF80014167E9518>114 D<07F9801FFF80380F80700780F00380F00380F80000FF
0000FFF8007FFE003FFF001FFF8007FF80003FC0E007C0E003C0F003C0F003C0F80380FC
0F00FFFE00C3F80012167E9517>I<01C00001C00001C00001C00003C00003C00003C000
07C00007C0000FC0003FFF00FFFF00FFFF000FC0000FC0000FC0000FC0000FC0000FC000
0FC0000FC0000FC0000FC0000FC3800FC3800FC3800FC3800FC3800FC30007E70003FE00
00FC0011207F9F16>I<FF81FF00FF81FF00FF81FF001F803F001F803F001F803F001F80
3F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F80
3F001F803F001F807F001F80FF000FC1FFE007FF3FE001FE3FE01B167D9520>I<FFF03F
E0FFF03FE0FFF03FE00FC00E000FE01E0007E01C0007E01C0003F0380003F0380003F878
0001F8700001FCF00000FCE00000FCE000007FC000007FC000007FC000003F8000003F80
00001F0000001F0000000E00001B167F951E>I<FFE3FF8FFCFFE3FF8FFCFFE3FF8FFC0F
C07C01C00FC07E01C00FC07E03C007E07E038007E0FF038003F0FF070003F0FF070003F1
CF870001F9CF8E0001FBCFCE0001FF87DE0000FF87DC0000FF03FC00007F03F800007F03
F800007E01F800003E01F000003E01F000001C00E00026167F9529>I<FFF0FFC0FFF0FF
C0FFF0FFC007E0780007F0F00003F0E00001F9E00000FFC000007F8000007F0000003F00
00001F8000003FC000007FE00000F7F00001E3F00001C1F80003C0FC000780FE00FFC1FF
E0FFC1FFE0FFC1FFE01B167F951E>I<FFF03FE0FFF03FE0FFF03FE00FC00E000FE01E00
07E01C0007E01C0003F0380003F0380001F8780001F8700001FCF00000FCE00000FEE000
007FC000007FC000003FC000003F8000003F8000001F0000001F0000000E0000000E0000
001E0000001C0000783C0000FC380000FC780000FC70000079E000007FC000001F000000
1B207F951E>I E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 0 bop 368 50 a Fc(Sym)n(b)r(o)o(lic)19 b(Program)n(m)m(ing)d(vs.)j
(the)g(A.P)-5 b(.)20 b(Curriculum)829 129 y Fb(Brian)c(Harv)o(ey)611
193 y(Univ)o(ersit)o(y)i(of)f(California,)h(Berk)o(eley)100
293 y(A)e(p)q(opular)g(metaphor)e(in)j(recen)o(t)f(y)o(ears)f(compares)
f(the)i(pro)q(cess)f(of)i(writing)g(a)f(computer)e(pro-)0
357 y(gram)j(to)j(that)g(of)f(designing)h(and)f(building)h(a)f(bridge.)
30 b(The)20 b(p)q(oin)o(t)f(of)h(the)g(metaphor)d(is)j(that)f(it's)0
420 y(not)e(acceptable)h(to)g(debug)e(a)h(new)g(bridge)g(design)g(b)o
(y)f(building)j(the)e(bridge,)g(op)q(ening)g(it)h(to)g(tra\016c,)0
484 y(and)f(w)o(aiting)i(to)f(see)g(whether)f(or)h(not)f(it)i
(collapses.)27 b(P)o(eople)18 b(who)f(use)h(this)g(metaphor)e(argue)h
(that)0 548 y(the)22 b(analogous)f(tec)o(hnique)i(isn't)f(acceptable)h
(in)f(computer)e(programm)o(ing)f(either.)39 b(The)21
b(phrase)0 611 y Fa(softwar)m(e)d(engine)m(ering)i Fb(w)o(as)14
b(coined)i(to)f(ev)o(ok)o(e)g(the)h(comparison)d(with)j(civil)i
(engineering)d(and)g(other,)0 675 y(similar)i(disciplines.)25
b(The)17 b(view)h(of)f(programm)n(ing)e(as)h(soft)o(w)o(are)g
(engineering)i(has)e(had)g(a)h(profound)0 739 y(in\015uence)j(on)h
(computer)d(science)j(education.)34 b(The)20 b(purp)q(ose)g(of)g(this)h
(pap)q(er)f(is)h(to)g(examine)f(that)0 802 y(in\015uence,)15
b(particularly)h(at)f(the)g(high)g(sc)o(ho)q(ol)f(lev)o(el)j(through)c
(the)i(College)i(Board)d(Adv)m(anced)g(Place-)0 866 y(men)o(t)h
(curriculum,)g(and)h(suggest)g(an)g(alternativ)o(e)i(view.)100
935 y(\(I)i(am)e(fo)q(cusing)i(atten)o(tion)h(on)e(the)h(A.P)l(.)f
(curriculum)g(to)h(mak)o(e)e(the)i(p)q(oin)o(t)g(concrete,)g(but)g(it)0
999 y(is)j(just)f(one)g(of)h(man)o(y)d(similar)j(in\015uences.)39
b(The)22 b(College)i(Board)e(did)h(not)f(in)o(v)o(en)o(t)g(the)h(soft)o
(w)o(are)0 1063 y(engineering)18 b(view;)i(it)g(tries)e(to)g(follo)o(w)
i(the)e(lead)h(of)f(its)h(clien)o(t)g(colleges.)28 b(A)o(t)19
b(the)f(college)i(lev)o(el,)g(the)0 1126 y(A)o(CM)e(curriculum)f
(standard)f(could)j(b)q(e)f(cited)i(instead.)27 b(I)18
b(teac)o(h)h(at)f(b)q(oth)h(lev)o(els,)h(but)e(I)g(feel)i(most)0
1190 y(strongly)h(ab)q(out)f(the)h(inappropriateness)f(of)h(the)f(soft)
o(w)o(are)g(engineering)h(approac)o(h)e(in)i(secondary)0
1254 y(education.\))0 1383 y Fc(Soft)n(w)n(are)e(Engineering:)26
b(Program)n(m)m(ing)16 b(as)j(Discipline)100 1512 y Fb(What)d(are)f
(the)i(c)o(haracteristics)f(of)g(the)g(soft)o(w)o(are)f(engineering)i
(approac)o(h?)i(One)d(fundamen)o(tal)0 1576 y(assumption)g(is)j(that)f
Fa(the)i(go)m(al)g(of)g(a)g(pr)m(oje)m(ct)h(is)f(given)f(in)h(advanc)m
(e)p Fb(.)28 b(It)19 b(is)g(not)f(the)g(civil)j(engineer's)0
1640 y(job)e(to)g(decide)g(where)f(a)h(bridge)g(should)f(b)q(e)h
(built,)h(or)f(whether)f(a)h(bridge)f(should)g(b)q(e)h(built)i(in)e
(the)0 1703 y(\014rst)h(place.)37 b(Those)20 b(decisions)i(are)e(made)g
(b)o(y)g(someone)f(else|p)q(oliti)q(ci)q(ans,)24 b(tra\016c)d(\015o)o
(w)f(exp)q(erts,)0 1767 y(p)q(erhaps)15 b(railroad)i(o)o(wners.)j(The)c
(engineer)h(is)g(emplo)o(y)o(ed)e(to)h(carry)g(out)h(a)f(prede\014ned)f
(pro)s(ject,)h(and)0 1831 y(is)h(giv)o(en)g(a)g(formal)e(sp)q
(eci\014cation)j(of)f(the)g(requiremen)o(ts.)100 1900
y(A)j(natural)h(consequence)f(of)g(externally-pro)o(vided)i(goals)e(is)
h(a)g Fa(top-down)h(design)k Fb(tec)o(hnique.)0 1964
y(Ideally)l(,)16 b(b)q(eginning)e(with)h(the)f(formal)f(goal)h(sp)q
(eci\014cation,)i(the)e(engineer)g(maps)d(out)j(large)g(subtasks,)0
2028 y(then)23 b(dev)o(elops)g(eac)o(h)g(subtask)f(in)o(to)i(more)d
(and)h(more)g(detailed)i(structure)e(b)o(y)h(a)g(pro)q(cess)f(called)0
2091 y(\\step)o(wise)15 b(re\014nemen)o(t,")e(one)i(of)g(the)g(cen)o
(tral)g(elemen)o(ts)g(of)g(the)g Fa(structur)m(e)m(d)i(pr)m(o)m(gr)m
(amming)22 b Fb(metho)q(d-)0 2155 y(ology)l(.)29 b(Mastery)18
b(of)h(this)h(tec)o(hnique)f(is)g(the)g(main)f(con)o(ten)o(t,)g(apart)h
(from)d(programm)o(ing)g(language)0 2219 y(syn)o(tax,)g(of)h(most)e(in)
o(tro)q(ductory)h(computer)f(science)i(courses.)100 2288
y(If)j(a)g(bridge)f(falls)j(do)o(wn,)d(its)i(designer)e(can)h(b)q(e)g
(sued)f(for)h(damages.)29 b(A)21 b(similar)f(standard)e(of)0
2352 y Fa(pr)m(ofessiona)q(l)f(liability)h Fb(should)13
b(apply)g(to)h(the)f(authors)f(of)i(computer)d(programs,)f(if)15
b(liv)o(es)f(or)f(prop)q(ert)o(y)0 2415 y(are)g(endangered)f(b)o(y)h
(their)h(failure.)22 b(Some)12 b(professional)h(so)q(cieties)j(ha)o(v)o
(e)d(b)q(egun)g(to)g(prop)q(ose)g(uniform)0 2479 y(standards)22
b(for)h(licensing)j(of)e(soft)o(w)o(are)f(engineers.)43
b(If)24 b(programm)n(ers)c(are)k(held)g(liable)i(for)d(their)0
2543 y(failures,)16 b(it)g(pa)o(ys)e(to)h(use)f Fa(c)m(onservative)j
(te)m(chniques)i Fb(in)d(the)f(design)f(of)h(new)g(programs)o(.)k(Just)
14 b(as)g(civil)0 2606 y(engineers)e(rely)h(on)e(a)h(few)h(w)o
(ell-understo)q(o)q(d)f(designs)g(for)f(bridges,)i(programm)n(ers)8
b(should)k(use)g(pro)o(v)o(en)0 2670 y(algorithms)17
b(to)g(ensure)g(program)d(correctness.)24 b(Mistak)o(es)17
b(should)g(not)h(b)q(e)f(debugged)g(b)o(y)g(trial)i(and)963
2790 y(1)p eop
%%Page: 2 2
2 1 bop 0 50 a Fb(error,)13 b(but)h(should)f(b)q(e)i(prev)o(en)o(ted)d
(in)j(adv)m(ance)f(b)o(y)g(redundan)o(t)e(error)g(c)o(hec)o(king,)j
(strict)g(adherence)e(to)0 113 y(design)k(standards,)d(and)i(formal)g
(pro)q(ofs)g(of)h(correctness,)e(tec)o(hniques)i(that)g(one)f(p)q
(opular)h(text)h(calls)0 177 y Fa(antibugging)j Fb([Co)q(op)q(er)16
b(and)g(Clancy)l(,)h(1985].)100 244 y(One)22 b(p)q(erson)f(can't)i
(build)g(a)f(bridge)h(alone.)40 b(Bridges)22 b(are)g(built)i(b)o(y)e
(large)h(teams,)g(and)e(it's)0 307 y(imp)q(ortan)o(t)d(that)h(eac)o(h)g
(team)f(mem)o(ber)e(ha)o(v)o(e)j(a)g(w)o(ell-de\014ned)g(job.)29
b(Similarly)l(,)20 b(soft)o(w)o(are)e(engineer-)0 371
y(ing)k(emphasizes)e(the)i(needs)f(of)h Fa(pr)m(o)m(gr)m(amming)j(te)m
(ams)h Fb(in)d(whic)o(h)e(eac)o(h)g(programm)o(er)d(is)23
b(assigned)0 435 y(a)e(subtask.)34 b(The)21 b(top-do)o(wn)e(design)i
(approac)o(h)e(is)i(particularly)i(imp)q(ortan)o(t)d(in)h(a)g(team)f
(en)o(viron-)0 498 y(men)o(t)14 b(so)i(that)g(eac)o(h)g(program)d
(segmen)o(t)h(has)h(a)h(w)o(ell-de\014ned)g(in)o(terface)h(to)f(the)g
(rest)g(of)g(the)g(pro)s(ject.)0 562 y(Rigid)22 b(standards)d(are)h
(required)h(ab)q(out)g(things)g(lik)o(e)h(scop)q(e)f(of)g(v)m(ariables)
h(and)e(do)q(cumen)o(tation)g(of)0 626 y(subpro)q(cedures.)100
692 y(Finally)l(,)d(an)f Fa(emphasis)j(on)f(pr)m(o)m(duct)k
Fb(has)15 b(b)q(een)h(implicit)i(throughout)c(this)j(description.)22
b(What)0 756 y(is)e(most)d(imp)q(ortan)o(t)h(is)i(the)f(program,)e
(rather)h(than)h(the)g(st)o(yle)i(of)e(w)o(ork)f(of)i(the)f(programm)o
(er)o(s.)27 b(A)0 820 y(soft)o(w)o(are)18 b(engineer)h(deriv)o(es)f
(job)h(satisfaction)h(from)d(seeing)i(p)q(eople)h(use)e(the)h(pro)q
(duct,)f(more)f(than)0 883 y(from)e(the)i(program)o(m)o(ing)d(itself.)
100 950 y(\(In)20 b(a)g(recen)o(tly-published)g(p)q(olemic,)h(Edsger)e
(Dijkstra,)i(one)f(of)g(the)g(founders)f(of)h(the)g(struc-)0
1014 y(tured)11 b(programm)o(ing)e(metho)q(dology)l(,)j(disso)q(ciates)
h(himself)f(from)e(the)j(name)d(\\soft)o(w)o(are)h(engineering")0
1077 y(b)q(ecause)i(he)g(thinks)h(that)g(it)g(ev)o(ok)o(es)f(a)g(metho)
q(dology)g(based)g(on)g(testing,)h(rather)f(than)g(on)g(the)g(formal)0
1141 y(mathematical)k(reasoning)g(that)h(Dijkstra)g(prefers.)25
b(Still,)20 b(from)c(the)i(p)q(oin)o(t)g(of)g(view)h(I)e(am)g(presen)o
(t-)0 1205 y(ing,)f(Dijkstra)h(and)e(the)g(soft)o(w)o(are)g(engineers)g
(are)h(in)g(the)g(same)e(camp)g(b)q(ecause)h(they)h(b)q(oth)g(fo)q(cus)
f(on)0 1268 y(pro)q(ducing)i(a)h(program)c(that)k(meets)f(a)g(prior)g
(sp)q(eci\014cation,)i(rather)e(than)h(on)f(the)h(dev)o(elopmen)o(t)e
(of)0 1332 y(that)h(sp)q(eci\014cation.\))0 1458 y Fc(Arti\014cial)22
b(In)n(telligenc)q(e:)28 b(Program)n(m)m(ing)17 b(as)h(Art)100
1585 y Fb(Some)d(computer)f(programs)g(actually)k(do)f(con)o(trol)f
(pro)q(cesses)g(in)h(whic)o(h)g(a)f(malfunction)h(could)0
1648 y(threaten)i(h)o(uman)d(life.)32 b(In)19 b(those)g(cases,)h(I)f
(agree)g(that)g(programm)o(er)o(s)d(should)j(regard)f(their)i(w)o(ork)0
1712 y(as)15 b(closely)i(analogous)e(to)h(other)f(engineering)h
(disciplines,)h(with)f(the)g(same)e(professional)h(standards)0
1776 y(and)20 b(the)h(same)f(conserv)m(ativ)o(e)h(tec)o(hniques.)36
b(Muc)o(h)20 b(program)o(m)o(ing,)f(though,)i(do)q(es)g(not)g(ha)o(v)o
(e)f(this)0 1839 y(c)o(haracter.)h(If)c(a)g(video)h(game,)d(for)h
(example,)g(malfunctions,)g(no)h(liv)o(es)h(are)e(lost.)24
b(Reliability)19 b(is)e(still)0 1903 y(desirable,)f(of)f(course,)f(but)
h(other)g(c)o(haracteristics,)h(suc)o(h)e(as)g(creativit)o(y)k(in)e
(the)f(design)g(of)g(the)h(game,)0 1967 y(are)j(equally)j(imp)q(ortan)o
(t.)31 b(Unlik)o(e)22 b(bridge-building,)f(m)o(uc)o(h)c(computer)h
(programm)n(ing)g(is)i(done)f(b)o(y)0 2030 y(hobb)o(yists)f(for)g
(their)i(o)o(wn)d(p)q(ersonal)i(satisfaction,)h(and)e(professional)h
(liability)i(do)q(es)e(not)f(apply)h(in)0 2094 y(this)e(case.)100
2161 y(Among)f(professional)j(programm)n(ers)o(,)d(researc)o(h)h(w)o
(ork)h(is)h(in)g(some)d(w)o(a)o(ys)i(more)e(lik)o(e)k(hobb)o(yist)0
2224 y(programm)n(ing)14 b(than)h(lik)o(e)j(civil)h(engineering.)j
(Reliabili)q(t)o(y)d(ma)o(y)14 b(b)q(e)j(less)f(imp)q(ortan)o(t)f(than)
g(the)h(\015exi-)0 2288 y(bilit)o(y)h(to)e(explore)g(new)f(tec)o
(hniques.)21 b(\(Of)15 b(course,)f(reliability)j(is)e(itself)i(the)d
(topic)i(of)e(some)f(computer)0 2352 y(science)22 b(researc)o(h,)d(but)
i(ev)o(en)g(then)f(the)h(researc)o(h)e(cannot)i(pro)q(ceed)f(b)o(y)h
(in)o(v)o(oking)g(already-kno)o(wn)0 2415 y(metho)q(ds.\))f(In)15
b(particular,)g(arti\014cial)i(in)o(telligence)h(researc)o(h)13
b(is)i(c)o(haracterized)g(b)o(y)f(the)h(desire)g(to)g(ex-)0
2479 y(tend)e(the)g(limits)g(of)g(what)g(can)f(b)q(e)h(done)f(with)i(a)
f(computer;)e(the)i(researc)o(her)e(t)o(ypically)16 b(do)q(es)c(not)h
(ha)o(v)o(e)0 2543 y(a)18 b(b)q(o)q(dy)g(of)g(w)o(ell-understo)q(o)q
(d,)g(reliable)i(metho)q(ds)d(to)h(follo)o(w.)27 b(It)19
b(is)f(not)g(surprising,)f(then,)h(that)h(AI)0 2606 y(researc)o(hers)d
(ha)o(v)o(e)h(dev)o(elop)q(ed)h(programm)o(ing)d(to)q(ols)k(and)f
(approac)o(hes)e(quite)j(di\013eren)o(t)f(from)e(those)0
2670 y(of)h(soft)o(w)o(are)e(engineering.)963 2790 y(2)p
eop
%%Page: 3 3
3 2 bop 100 50 a Fb(In)11 b(a)h(researc)o(h)e(pro)s(ject,)i
Fa(the)h(go)m(al)h(of)h(a)e(pr)m(oje)m(ct)i(evolves)f(in)f(the)h(work)p
Fb(.)20 b(That)12 b(is,)h(the)f(programm)n(er)0 113 y(starts)19
b(with)i(a)f(broad)f(idea,)i(but)e(often)i(cannot)e(sp)q(ecify)i(the)g
(detailed)g(b)q(eha)o(vior)f(of)g(the)g(program)0 177
y(un)o(til)k(it's)f(written.)41 b(She)22 b(starts)g(with)i(a)e(partial)
i(understanding,)f(attempts)e(to)i(program)d(some)0 241
y(b)q(etter-understo)q(o)q(d)h(corner)g(of)h(the)g(pro)s(ject,)h(and)e
(then)h(in)o(teracts)g(with)h(the)f(resulting)h(program)0
304 y(to)c(see)g(in)g(what)g(direction)h(to)f(pro)q(ceed.)28
b(The)19 b(goals)g(are)f(c)o(hosen)g(b)o(y)g(the)h(same)e(p)q(erson)h
(doing)h(the)0 368 y(programm)n(ing.)100 455 y(If)k(the)h(goal)g(is)f
(not)h(precisely)g(kno)o(wn)f(in)h(adv)m(ance,)h(a)e(strict)h(top-do)o
(wn)e(design)h(pro)q(cess)g(is)0 518 y(imp)q(ossible.)31
b(Researc)o(hers)18 b(use)h Fa(inter)m(active)i(design)j
Fb(tec)o(hniques,)c(whic)o(h)g(ma)o(y)e(include)j(some)c(top-)0
582 y(do)o(wn)f(comp)q(onen)o(ts)e(but)j(also)g(ma)o(y)e(include)i(a)g
(b)q(ottom-up)e(approac)o(h)g(in)i(whic)o(h)g(the)g(w)o(ork)f(already)0
646 y(done)h(pro)o(vides)g(a)g(soft)o(w)o(are)g(to)q(olkit)k(that)d
(itself)h(suggests)e(new)g(higher-lev)o(el)i(mo)q(dules.)24
b(Instead)17 b(of)0 709 y(a)j(single)i(programm)n(ing)c(metho)q(dology)
i(lik)o(e)j(step)o(wise)d(re\014nemen)o(t,)f(the)i(researc)o(her)d
(uses)i Fa(e)m(cle)m(ctic)0 773 y(te)m(chniques)p Fb(.)100
860 y(Since)i(the)g(result)h(of)f(a)g(researc)o(h)e(pro)s(ject)i(is)h
(rarely)f(destined)g(to)h(b)q(e)f(used)f(directly)j(in)f(real)0
923 y(applications,)e(there)e(is)h Fa(no)h(danger)26
b Fb(and)18 b(no)h(liabili)q(t)o(y)l(.)33 b(Instead)19
b(of)g(follo)o(wing)i(conserv)m(ativ)o(e,)g(w)o(ell-)0
987 y(understo)q(o)q(d)c(patterns,)g(the)h(researc)o(her)e(is)i
(encouraged)e(to)i Fa(take)h(risks)k Fb(and)17 b(in)o(v)o(en)o(t)g(new)
h(metho)q(ds.)0 1051 y(Program)10 b(debugging)j(can)g(b)q(e)g(in)o
(teractiv)o(e;)j(other)d(mem)o(bers)d(of)k(the)f(researc)o(h)f(comm)n
(unit)o(y)f(are)i(often)0 1114 y(encouraged)g(to)i(try)f(out)g(the)h
(program,)d(not)i(only)h(disco)o(v)o(ering)f(co)q(ding)h(bugs)e(but)h
(also)h(con)o(tributing)0 1178 y(to)i(the)g(incremen)o(tal)f(design)g
(pro)q(cess)g(b)o(y)g(suggesting)g(impro)o(v)o(emen)n(ts.)100
1264 y(Researc)o(h)i(programs)e(are)j(rarely)h(written)g(b)o(y)g(large)
g(teams.)29 b(One)19 b(reason)g(is)h(that)g(y)o(ou)f(can't)0
1328 y(get)f(a)g(Ph.D.)g(for)f(writing)j(one)d(p)q(ercen)o(t)h(of)g(a)g
(program;)e(another)h(is)h(that)h(it's)f(hard)f(to)i(co)q(ordinate)0
1392 y(large)d(teams)f(without)h(a)g(precise,)g(formal)e(design)i(do)q
(cumen)o(t.)k(But)c(the)g(most)e(imp)q(ortan)o(t)h(reason)g(is)0
1455 y(that)j(large)g(teams)f(are)g(rarely)h(creativ)o(e.)26
b(Instead,)18 b Fa(individual)i(cr)m(e)m(ation)j Fb(is)18
b(required)g(to)g(solv)o(e)g(new)0 1519 y(problems.)100
1606 y(T)l(o)h(summar)o(ize,)g(there)h(m)o(ust)e(b)q(e)i(an)g
Fa(emphasis)j(on)e(pr)m(o)m(c)m(ess)27 b Fb(in)21 b(the)f(researc)o(h)e
(programm)o(ing)0 1669 y(en)o(vironmen)o(t.)34 b(The)21
b(resulting)h(program)c(ma)o(y)i(b)q(e)h(demonstrated)e(once)i(and)g
(nev)o(er)f(used)h(again,)0 1733 y(since)14 b(it)h(will)h(probably)d(b)
q(e)h(slo)o(w)f(and)g(clumsy)l(,)g(but)g(b)o(y)g(writing)i(it,)g(the)f
(researc)o(her)d(learns)i(new)h(ideas)0 1797 y(that)19
b(can)f(b)q(e)g(re\014ned)f(and)h(applied)h(later.)27
b(In)18 b(education,)h(to)q(o,)g(the)f(actual)h(programs)c(written)k(b)
o(y)0 1860 y(studen)o(ts)d(are)g(unimp)q(ortan)o(t;)e(the)j(studen)o
(t,)f(not)h(the)g(program,)c(is)k(the)g(\\pro)q(duct")f(of)h(the)g
(teac)o(hing)0 1924 y(and)23 b(learning)i(activiti)q(es.)47
b(W)l(e)25 b(should)e(not)h(b)q(e)h(surprised)d(if)j(pro)q(cess-cen)o
(tered)e(approac)o(hes)f(to)0 1988 y(programm)n(ing)14
b(turn)i(out)h(to)g(b)q(e)g(most)e(helpful)i(in)g(education.)100
2074 y(Ev)o(en)j(when)g(a)h(program)d(is)j(dev)o(elop)q(ed)h(for)e
(practical)i(use,)f(the)g(dev)o(elopmen)o(t)f(pro)q(cess)g(ma)o(y)0
2138 y(include)e(steps)e(that)h(are)f(more)f(lik)o(e)j(researc)o(h)d
(than)h(lik)o(e)i(building)g(bridges.)j(Consider)16 b(spreadsheet)0
2201 y(programs.)36 b(The)22 b(history)g(of)h(their)g(dev)o(elopmen)o
(t,)f(starting)h(from)d(VisiCalc)25 b(and)c(con)o(tin)o(uing)i(to)0
2265 y(curren)o(t)13 b(pro)q(ducts)h(lik)o(e)j(Lotus)d(1-2-3,)g(has)g
(b)q(een)h(a)g(classic)h(soft)o(w)o(are)e(engineering)h(e\013ort,)g
(with)h(large)0 2329 y(dev)o(elopmen)o(t)d(teams)f(and)i(precise)g
(goals.)21 b(But)15 b(the)f(\014rst)f(step,)i(starting)f(from)e
(nothing)i(and)g(getting)0 2392 y(to)k(VisiCalc,)j(to)q(ok)e(t)o(w)o(o)
f(p)q(eople,)h(one)f(of)g(whom)e(had)i(the)g(idea,)h(\\here)e(is)i(a)f
(new)g(thing)h(w)o(e)f(can)f(do)0 2456 y(with)g(a)g(computer,")d(and)h
(the)i(other)f(of)h(whom)d(w)o(as)i(a)g(virtuoso)h(computer)d(hac)o(k)o
(er,)h(trained)i(in)g(the)0 2520 y(MIT)f(researc)o(h)f(en)o(vironmen)o
(t.)100 2606 y(\(By)g(the)g(w)o(a)o(y)l(,)f(I)g(do)h(not)f(mean)f(to)i
(suggest)e(that)i(there)g(is)g(no)f(researc)o(h)f(among)f(civil)17
b(engineers!)0 2670 y(No)12 b(doubt)g(new)g(bridge)g(designs)f(gro)o(w)
g(out)i(of)f(a)g(dev)o(elopmen)o(t)f(metho)q(dology)g(m)o(uc)o(h)f(lik)
o(e)j(the)g(one)f(I'm)963 2790 y(3)p eop
%%Page: 4 4
4 3 bop 0 50 a Fb(describing)17 b(for)f(programm)n(ing)e(researc)o(h.)
20 b(The)d(con)o(trast)e(I)i(am)e(making)h(is)h(not)f(b)q(et)o(w)o(een)
g(program-)0 113 y(ming)f(and)g(civil)j(engineering,)e(but)g(b)q(et)o
(w)o(een)f(researc)o(h)f(of)i(an)o(y)f(kind)h(and)f(the)h(one-sided)f
(caricature)0 177 y(of)i(civil)i(engineering)e(that)g(pro)o(vides)f
(the)h(metaphor)d(for)i(the)h(soft)o(w)o(are)f(engineering)h(sc)o(ho)q
(ol.\))100 243 y(The)h(metaphor)e(of)i(bridge-building)h(p)q(o)o(w)o
(erfully)g(captures)f(the)g(spirit)h(of)g(the)g(soft)o(w)o(are)e(engi-)
0 307 y(neering)g(view)h(of)e(programm)o(ing.)k(As)c(an)h(equally)h(p)q
(o)o(w)o(erful)f(metaphor)d(for)i(this)i(alternativ)o(e)g(view,)0
370 y(I)f(suggest)e(considering)i(programm)n(ing)e(as)h(an)g(art)g
(form,)f(and)h(the)g(programm)o(er)d(as)j(an)h(artist.)0
496 y Fc(Ho)n(w)i(to)g(T)-5 b(rain)20 b(an)e(Artist)100
622 y Fb(I)12 b(am)e(discussing)i(the)h(nature)e(of)h(computer)e
(programm)o(ing)f(to)k(mak)o(e)e(a)h(p)q(oin)o(t)g(ab)q(out)g(the)h
(nature)0 685 y(of)18 b(computer)d(programm)n(ing)g(education.)25
b(There)17 b(are)g(t)o(w)o(o)g(v)o(ery)g(di\013eren)o(t)h(kinds)g(of)f
(programm)o(ing)0 749 y(activit)o(y)l(,)g(bridge-building)e(and)f(art.)
21 b(I)15 b(suggest)e(that)i(our)f(standard)f(computer)f(science)j
(curriculum)0 813 y(do)q(es)g(a)f(go)q(o)q(d)h(job)g(of)g(preparing)e
(studen)o(ts)h(for)h(the)f(\014rst)h(kind,)g(but)g(not)f(for)h(the)g
(second.)20 b(If)15 b(w)o(e)g(w)o(an)o(t)0 876 y(to)20
b(dev)o(elop)f(computer)e(programm)o(ing)f(artists,)21
b(w)o(e)e(should)f(explore)i(the)g(training)g(of)f(other)g(kinds)0
940 y(of)e(artists.)100 1006 y(\(Both)22 b(of)g(these)h(approac)o(hes)c
(are)j(extremes.)37 b(Some)20 b(readers)h(ma)o(y)f(feel)k(more)c
(comfortable)0 1070 y(with)e(an)e(in)o(termediate)h(p)q(osition,)h
(represen)o(table)e(in)h(metaphor)e(b)o(y)h(professions)g(suc)o(h)g(as)
g(medicine)0 1133 y(and)g(arc)o(hitecture)h(that)h(com)o(bine)d(the)i
(need)g(for)g(individual)i(creativit)o(y)g(with)f(careful)g(atten)o
(tion)g(to)0 1197 y(conserv)m(ativ)o(e)e(tec)o(hniques.)22
b(Still,)c(I)e(am)e(trying)i(to)g(call)h(atten)o(tion)g(to)f(an)f(im)o
(balance)g(in)h(our)e(curren)o(t)0 1261 y(educational)19
b(practice,)f(and)f(in)h(this)g(con)o(text)g(I)g(think)h(it)f(is)h(v)m
(aluable)g(to)f(sho)o(w)e(what)i(the)f(opp)q(osite)0
1324 y(extreme)d(w)o(ould)h(b)q(e)h(lik)o(e.)23 b(I)15
b(hop)q(e)g(that)g(ev)o(en)h(this)f(extreme)g(will)i(not)e(seem)f
(impractical,)i(ev)o(en)f(if)h(w)o(e)0 1388 y(ultimately)i(settle)g(on)
f(a)f(comprom)o(ise)f(view.\))100 1454 y(The)d(training)i(of)f(artists)
g(is)g(not)g(the)g(exact)h(opp)q(osite)f(of)g(the)g(training)h(of)f
(engineers;)h(art)e(sc)o(ho)q(ols)0 1517 y(do)j(not)g(merely)f(thro)o
(w)h(the)g(studen)o(t)f(in)o(to)i(a)f(ro)q(om)e(full)k(of)e(materials)g
(and)f(sa)o(y)l(,)h(\\go)g(to)g(it!")23 b(There)15 b(is)0
1581 y(a)i(discipline)h(to)f(art)g(also,)f(including)i(a)f(collection)i
(of)e(w)o(ell-understo)q(o)q(d,)f(conserv)m(ativ)o(e)i(tec)o(hniques.)
100 1647 y(I)c(suggest)f(that)h(the)g(training)h(of)f(an)g(artist)h
(can)e(b)q(e)i(divided)g(in)o(to)f(three)g(categories)h(of)f(learning.)
0 1711 y(There)k(is)g Fa(te)m(chnic)m(al)i(know)s(le)m(dge)p
Fb(,)f(suc)o(h)e(as)h(the)g(di\013erences)g(b)q(et)o(w)o(een)g(oil)h
(pain)o(ts)f(and)g(w)o(ater)f(colors,)0 1774 y(or)g(the)h(rules)g(of)g
(p)q(ersp)q(ectiv)o(e.)27 b(There)17 b(is)i Fa(te)m(chnic)m(al)h(skil)s
(l)p Fb(,)d(suc)o(h)g(as)g(the)h(abilit)o(y)j(to)d(dra)o(w)e(a)i
(straigh)o(t)0 1838 y(line)f(freehand)d(without)h(wiggling,)i(or)e(the)
g(abilit)o(y)j(to)d(stretc)o(h)f(a)h(can)o(v)m(as)g(ev)o(enly)h(b)q
(efore)f(pain)o(ting)g(on)0 1902 y(it.)31 b(And)18 b(there)h(is)h
Fa(inspir)m(ation)p Fb(,)i(seeing)d(the)h(w)o(orld)e(with)i(an)f
(artist's)g(ey)o(e)g(and)g(\014nding)f(something)0 1965
y(w)o(orth)e(pain)o(ting)h(at)g(all.)100 2031 y(All)h(three)f(of)f
(these)h(are)f(essen)o(tial)h(to)g(a)f(great)h(artist,)g(but)f
(inspiration)i(comes)c(\014rst!)22 b(I)16 b(am)f(not)0
2095 y(an)k(artist,)j(and)d(m)o(y)f(p)q(ersonal)i(exp)q(erience)h(of)e
(art)h(instruction)h(has)e(b)q(een)h(limited)h(to)f(a)g(couple)g(of)0
2158 y(in)o(tro)q(ductory)h(courses)e(when)i(I)g(w)o(as)f(in)h(high)g
(sc)o(ho)q(ol.)35 b(In)21 b(those)f(courses,)h(though,)g(the)g(teac)o
(hers)0 2222 y(made)15 b(a)i(big)g(fuss)f(ab)q(out)g(sta)o(ying)h(a)o
(w)o(a)o(y)f(from)f(tec)o(hnique.)22 b(\\Nev)o(er)17
b(mind)e(what)i(it)h(lo)q(oks)g(lik)o(e")g(w)o(as)0 2286
y(a)d(frequen)o(t)g(commen)n(t.)k(One)c(b)q(eginning)h(exercise)g(w)o
(as)e(to)h(dra)o(w)f(a)h(c)o(hair)g(with)h(our)e(ey)o(es)h(closed;)h
(the)0 2349 y(p)q(oin)o(t)c(w)o(as)e(to)h(o)o(v)o(ercome)e(our)h
(anxiet)o(y)i(ab)q(out)f(photographic)g(exactness)g(and)f(get)i(us)e
(to)h(enjo)o(y)g(mo)o(ving)0 2413 y(a)k(p)q(encil)h(o)o(v)o(er)f(pap)q
(er)f(in)h(broad)f(strok)o(es.)20 b(The)15 b(teac)o(hers)f(promised)f
(that)i(tec)o(hnical)i(instruction,)e(for)0 2477 y(those)h(of)h(us)f
(who)g(did)h(dev)o(elop)g(a)f(deep)q(er)h(in)o(terest)g(in)g(art,)f(w)o
(ould)g(come)f(later.)100 2543 y(Art)20 b(instruction)i(that)f(b)q
(egan)f(with)h(endless)g(practice)g(at)g(dra)o(wing)f(straigh)o(t)g
(lines)i(and)e(p)q(er-)0 2606 y(sp)q(ectiv)o(e)k(cub)q(es)e(w)o(ould)h
(c)o(hase)f(a)o(w)o(a)o(y)f(an)o(y)i(true)f(p)q(oten)o(tial)j(artists.)
40 b(A)o(t)23 b(b)q(est)g(it)h(w)o(ould)f(pro)q(duce)0
2670 y(\\commercial)e(artists,")i(a)f(classic)i(o)o(xymoron.)36
b(This)23 b(is)f(the)h(risk)f(w)o(e)g(run)f(in)i(computer)d(science)963
2790 y(4)p eop
%%Page: 5 5
5 4 bop 0 50 a Fb(education.)36 b(\(Commercial)20 b(artists)h(are)g(so)
q(cially)i(useful,)g(and)d(so)h(are)f(the)i(mem)n(b)q(ers)c(of)j(soft)o
(w)o(are)0 113 y(engineering)d(teams.)k(But)c(there)f(could)h(b)q(e)f
(no)g(commercial)f(art)h(without)h(true)f(creativ)o(e)h(artists)g(to)0
177 y(in)o(v)o(en)o(t)e(the)h(language)g(and)f(the)g(to)q(ols)i(of)f
(art.\))0 304 y Fc(The)i(Program)n(m)m(ing)d(Language)j(P)n(arado)n(x)
100 430 y Fb(Soft)o(w)o(are)f(engineers)h(b)q(eliev)o(e)j(in)e
(constructing)f(a)h(program)c(top-do)o(wn.)29 b(That)20
b(is,)g(they)g(start)0 494 y(with)g(the)f(broad)e(ideas)i(of)g(the)g
(program,)d(and)i(\014ll)j(in)e(the)g(details)h(later.)30
b(Y)l(ou)18 b(w)o(ould)h(think)g(their)0 557 y(design)g(to)q(ols)h(w)o
(ould)e(supp)q(ort)g(programm)o(ing)e(in)j(terms)f(of)h(broad)e(ideas.)
29 b(Y)l(et)20 b(the)f(programm)o(ing)0 621 y(languages)j(of)g(soft)o
(w)o(are)f(engineering,)i(of)f(whic)o(h)g(P)o(ascal)g(is)g(the)h
(protot)o(yp)q(e,)g(fo)q(cus)f(atten)o(tion)g(on)0 685
y(lo)o(w-lev)o(el)k(details.)45 b(They)24 b(use)f(explicit)k(storage)d
(allo)q(cation,)k(so)23 b(the)h(programm)o(er)c(m)o(ust)i(think)0
748 y(ab)q(out)h(the)h(size,)i(lo)q(cation,)h(and)22
b(exten)o(t)i(in)g(time)g(of)f(eac)o(h)g(data)g(aggregate.)43
b(They)23 b(use)g(strong)0 812 y(t)o(yping,)e(encouraging)d(the)i
(programm)o(er)c(to)k(concen)o(trate)f(on)g(the)h(precise)g(enco)q
(ding)f(of)h(sym)o(b)q(olic)0 876 y(information)f(rather)g(than)h(on)f
(the)i(meaning.)30 b(They)20 b(pro)o(vide)g(half)g(a)g(dozen)g(sp)q
(eci\014c,)h(hardwired)0 939 y(con)o(trol)e(structures,)f(emphasizing)g
(the)h(sequence)f(of)h(ev)o(en)o(ts)f(in)i(a)f(computation)e(rather)h
(than)h(the)0 1003 y(input-output)12 b(b)q(eha)o(vior)g(of)h
(functions.)20 b(Complex)12 b(data)g(structures)f(are)h(manipulated)g
(with)h(explicit)0 1067 y(p)q(oin)o(ters,)j(a)h(common)c(source)j(of)g
(confusion)h(and)e(bugs.)100 1133 y(Some)20 b(of)i(these)h(lo)o(w-lev)o
(el)h(prop)q(erties)e(of)g(soft)o(w)o(are)f(engineering)i(languages)f
(are)f(the)i(result)0 1197 y(of)c(their)h(early)g(history)f(as)g
(merely)f(an)h(abbreviation)h(for)e(mac)o(hine)g(language)h
(instructions.)30 b(But,)0 1261 y(for)19 b(example,)h(the)g(transition)
h(from)d(C)i(\(a)g(hac)o(k)o(er's)e(language\))i(to)g(C++)g(\(a)g(soft)
o(w)o(are)e(engineer's)0 1324 y(language\))12 b(has)f(brough)o(t)f
(more)g(atten)o(tion,)j(not)f(less,)g(to)g(these)g(lo)o(w-lev)o(el)h
(details.)22 b(The)12 b(impro)o(v)o(em)o(en)o(t)0 1388
y(is)19 b(that)h(in)f(C++)f(the)h(details)i(can)d(b)q(e)h(represen)o
(ted)e(more)g(rigorously)l(,)i(with)h(less)f(need)g(to)g(rely)g(on)0
1452 y Fa(ad)g(ho)m(c)h Fb(escap)q(e)d(hatc)o(hes)f(suc)o(h)f(as)h(t)o
(yp)q(e)h(casting.)100 1518 y(Soft)o(w)o(are)11 b(engineers)i
(recognize)g(the)g(inadequacy)g(of)g(their)g(programm)n(ing)e
(languages)h(as)g(design)0 1582 y(to)q(ols.)32 b(That)20
b(is)g(wh)o(y)f(they)h(dev)o(elop)g(their)g(programs)c(using)k
(\\pseudo)q(co)q(de,")f(essen)o(tially)j(English)0 1645
y(with)17 b(inden)o(tation)h(to)f(indicate)h(blo)q(c)o(k)f(structure.)k
(English)c(is)g(a)g(go)q(o)q(d)f(high-lev)o(el)j(design)d(language)0
1709 y(precisely)k(b)q(ecause)e(it)h(do)q(es)g(not)f(require)h(the)f
(programm)o(er)d(to)j(think)i(ab)q(out)e(memory)d(allo)q(cati)q(on,)0
1773 y(v)m(ariable)g(t)o(yp)q(es,)f(and)e(so)h(on.)21
b(The)13 b(di\016cult)o(y)i(is)e(that)h(if)h(one)e(really)i(designs)e
(in)h(English,)g(it's)g(p)q(ossible)0 1836 y(to)i(write)h(an)f
(instruction)h(that)f(has)g(no)f(ob)o(vious)h(translation)h(\(or)f(ev)o
(en)g(no)f(translation)i(at)g(all\))h(in)o(to)0 1900
y(an)o(y)j(programm)o(ing)e(language.)38 b(T)l(o)22 b(end)f(up)h(with)g
(useful)h(pseudo)q(co)q(de,)f(the)g(programm)o(er)c(m)o(ust)0
1964 y(actually)e(c)o(heat,)e(writing)g(the)g(program)d(men)o(tally)j
(in)g(something)e(lik)o(e)j(P)o(ascal)f(and)f(then)g(translating)0
2027 y(in)o(to)k(English)g(and)f(lea)o(ving)i(out)e(most)f(of)i(the)g
(details.)100 2094 y(There)g(are)h(programm)n(ing)e(languages)h(that)h
(don't)g(require)g(suc)o(h)f(extreme)g(atten)o(tion)i(to)f(lo)o(w-)0
2158 y(lev)o(el)i(details)g(as)d(the)i(ones)e(soft)o(w)o(are)g
(engineers)h(lo)o(v)o(e.)27 b(These)17 b(sym)o(b)q(olic)h(programm)o
(ing)d(languages)0 2221 y(can)21 b(readily)i(express)e(o)o(v)o(erall)h
(design)g(as)f(w)o(ell)i(as)f(details.)38 b(Wh)o(y)22
b(don't)f(the)h(soft)o(w)o(are)e(engineers)0 2285 y(c)o(ho)q(ose)d
(higher-lev)o(el)i(languages?)25 b(The)17 b(reason)g(is)h(that)g(they)g
(o)o(v)o(eremphasize)e(their)i(concern)f(with)0 2349
y(reliability)l(,)f(and)11 b(in)i(particular)f(with)i(p)q(ossible)f(lo)
o(w-lev)o(el)h(bugs.)19 b(F)l(or)11 b(example,)i(although)f(a)g
(language)0 2412 y(with)k(explicit)h(v)m(ariable)f(t)o(yping)f(forces)g
(the)f(programm)o(er)d(to)k(b)q(e)g(concerned)f(with)h(lo)o(w-lev)o(el)
i(details,)0 2476 y(it)h(also)f(ma)o(y)e(help)i(catc)o(h)f(bugs)g(in)h
(whic)o(h)f(an)g(incorrect)h(v)m(alue)h(is)f(assigned)f(to)h(a)f(v)m
(ariable.)100 2543 y(The)11 b(educational)h(cost)f(of)g(the)h(soft)o(w)
o(are)e(engineering)i(languages)e(is)i(that)g(m)o(uc)o(h)c(of)j(the)h
(time)f(and)0 2606 y(e\013ort)17 b(in)g(in)o(tro)q(ductory)g(courses)e
(go)q(es)i(in)o(to)g(syn)o(tactic)h(details,)g(and)e(in)o(to)h(suc)o(h)
f(lo)o(w-lev)o(el)i(seman)o(tic)0 2670 y(issues)j(as)h(binary)f
(represen)o(tation,)h(w)o(ord)f(length,)i(ASCI)q(I)f(co)q(des,)h(and)e
(p)q(oin)o(ter)h(arithmetic.)37 b(By)963 2790 y(5)p eop
%%Page: 6 6
6 5 bop 0 50 a Fb(con)o(trast,)18 b(an)f(in)o(tro)q(ductory)h(computer)
e(science)j(course)e(that)i(uses)e(Lisp)h([Ab)q(elson)h(and)e(Sussman,)
0 113 y(1985],)c(coming)g(from)e(the)j(arti\014cial)h(in)o(telligence)i
(researc)o(h)12 b(tradition,)i(can)g(fo)q(cus)f(atten)o(tion)h(on)f
(suc)o(h)0 177 y(high-lev)o(el)20 b(seman)o(tic)e(issues)h(as)f
(functional)i(programm)n(ing,)d(ob)s(ject-orien)o(ted)i(programm)n
(ing,)e(and)0 241 y(logic)i(programm)n(ing)14 b(metho)q(dologies,)j
(data)g(abstraction,)g(and)f(higher)h(lev)o(els)h(of)f(abstraction)g
(suc)o(h)0 304 y(as)f(the)g(design)g(and)g(implemen)o(tation)f(of)h(a)g
(programm)o(ing)d(language.)22 b(There)16 b(is)g(no)g(pseudo)q(co)q(de)
f(in)0 368 y(this)h(text;)i(a)d(Lisp)h(pro)q(cedure)f(written)i(in)f
(terms)e(of)i(subpro)q(cedures)d(that)k(ma)o(y)d(not)i(y)o(et)g(b)q(e)g
(de\014ned)0 432 y(pro)o(vides)g(the)h(righ)o(t)f(lev)o(el)j(of)d
(abstraction,)h(while)h(retaining)f(tec)o(hnical)h(rigor.)100
516 y(The)d(title)k(of)d(this)g(pap)q(er)g(is)g(\\Sym)o(b)q(olic)g
(Programm)n(ing)e(vs.)i(the)g(A.P)l(.)f(Curriculum.")20
b(It)d(could)0 579 y(equally)g(w)o(ell)g(ha)o(v)o(e)e(b)q(een)g
(\\High-Lev)o(el)i(Seman)o(tics)d(vs.)i(the)f(A.P)l(.)g(Curriculum")f
(or)h(\\Programm)o(ing)0 643 y(as)23 b(Art)g(vs.)g(the)g(A.P)l(.)g
(Curriculum.")40 b(F)l(or)22 b(m)o(y)g(purp)q(oses,)h(what's)f(imp)q
(ortan)o(t)g(ab)q(out)h(sym)o(b)q(olic)0 707 y(programm)n(ing)16
b(is)j(that)f(it)i(allo)o(ws)f(us)e(to)i(step)f(bac)o(k)g(from)e(tec)o
(hnical)k(details,)f(in)g(a)f(w)o(a)o(y)g(somewhat)0
770 y(analogous)d(to)h(blindfold)i(dra)o(wing)c(exercises.)23
b(There)15 b(are)g(tec)o(hnical)j(ideas)e(in)g(the)g(curriculum,)e(but)
0 834 y(they)23 b(are)f(high-lev)o(el)h(ideas,)h(and)d(they)i(don't)f
(deaden)f(the)i(hac)o(k)o(er)e(spirit)i(\(that)g(is,)h(the)e(artistic)0
898 y(spirit\).)27 b(In)17 b(fact,)i(as)e(an)g(in)o(tro)q(ductory)h
(college-lev)o(el)j(course,)c(I)g(think)i(the)f(Ab)q(elson)g(and)f
(Sussman)0 961 y(course)f(w)o(orks)h(b)q(etter)h(than)e(the)i
(traditional)h(curriculum)d(ev)o(en)h(from)f(a)h(bridge-building)h(p)q
(ersp)q(ec-)0 1025 y(tiv)o(e,)k(b)q(ecause)d(ev)o(en)h(soft)o(w)o(are)e
(engineers)i(should)f(start)g(with)i(the)f(big)g(ideas.)31
b(Data)20 b(abstraction,)0 1089 y(for)15 b(example,)g(is)h(part)f(of)g
(the)h(structured)e(programm)n(ing)f(approac)o(h)g(as)i(w)o(ell)i(as)e
(the)h(arti\014cial)h(in)o(tel-)0 1152 y(ligence)h(approac)o(h)d(to)i
(program)c(dev)o(elopmen)o(t.)100 1236 y(I)18 b(w)o(an)o(t)g(to)h
(address)e(a)i(p)q(ossible)h(misunderstanding)c(of)j(the)g(p)q(oin)o(t)
g(I'm)e(making.)28 b(The)19 b(c)o(hoice)0 1300 y(of)g(program)o(m)o
(ing)d(language)i(is)h(not)f(the)h(cen)o(tral)g(issue)f(in)h(designing)
g(an)f(educational)h(pro)q(cess.)27 b(It)0 1364 y(w)o(ould)19
b(b)q(e)g(p)q(ossible)h(to)g(teac)o(h)f(a)g(soft)o(w)o(are)f
(engineering)i(curriculum)e(in)h(an)o(y)g(language,)h(including)0
1427 y(Lisp.)i(\(Indeed,)14 b(these)g(curricula)h(generally)h(mak)o(e)d
(a)h(p)q(oin)o(t)h(of)f(not)h(sp)q(ecifying)h(a)e(language,)h(and)f
(the)0 1491 y(authors)j(of)i(the)g(curricula)g(resp)q(ond)f(to)h
(accusations)f(of)h(language)g(c)o(hauvinism)f(b)o(y)g(p)q(oin)o(ting)i
(that)0 1555 y(out.\))h(Suc)o(h)13 b(a)h(curriculum)e(w)o(ould)i(b)q(e)
g(just)f(as)h(bad)f(as)g(the)h(same)e(course)h(taugh)o(t)h(in)g(P)o
(ascal.)21 b(Rather,)0 1618 y(m)o(y)13 b(p)q(oin)o(t)j(is)f(that)h(an)e
(examination)h(of)g(the)g(programm)o(ing)d(languages)j(that)g(the)g
(adheren)o(ts)e(of)j(eac)o(h)0 1682 y(approac)o(h)e(actually)19
b(do)c(c)o(ho)q(ose)h(sheds)f(ligh)o(t)j(on)e(ho)o(w)f(these)h(approac)
o(hes)e(w)o(ork)i(out)g(in)h(educational)0 1746 y(practice.)28
b(The)18 b(principle)i(of)f(top-do)o(wn)e(design)h(sounds)f(great)h
(when)g(expressed)f(in)i(the)g(abstract,)0 1809 y(but)e(the)h(real)g
(teac)o(hing)g(done)f(in)h(its)h(name)d(to)q(o)i(easily)h(gets)f(b)q
(ogged)f(do)o(wn)g(in)h(lo)o(w-lev)o(el)i(tec)o(hnical)0
1873 y(details.)0 2017 y Fc(What)f(High)h(Sc)n(ho)r(ol)f(Studen)n(ts)g
(Need)100 2161 y Fb(In)g(the)h(United)h(States)f(at)g(presen)o(t,)f
(high)h(sc)o(ho)q(ol)f(computer)f(science)j(education)f(is)g(strongly)0
2224 y(a\013ected)e(b)o(y)f(the)h(acciden)o(tal)h(fact)f(that)g(there)g
(is)g(no)f(o\016cial)i(secondary)d(curriculum,)h(but)g(there)g
Fa(is)0 2288 y Fb(an)g(o\016cial)h(college-lev)o(el)j(curriculum)16
b(for)h(secondary)f(sc)o(ho)q(ols)h(in)h(the)f(form)f(of)h(the)h
(College)h(Board)0 2352 y(Adv)m(anced)12 b(Placemen)o(t)g(exam.)19
b(The)12 b(result)h(is)f(that)h(most)e(high)h(sc)o(ho)q(ol)g(studen)o
(ts)f(who)h(are)g(in)o(terested)0 2415 y(in)18 b(programm)n(ing)d(are)i
(no)o(w)g(taugh)o(t)g(from)e(a)i(mo)q(del)g(that)h(w)o(as)e(designed)i
(\(and)f(badly)g(designed,)g(as)0 2479 y(I)k(ha)o(v)o(e)e(argued)h(ab)q
(o)o(v)o(e,)g(at)h(that\))g(for)g(a)f(college)i(p)q(opulation.)35
b(The)20 b(problem)f(is)i(not)g(the)f(College)0 2543
y(Board's)15 b(fault;)i(a)f(lac)o(k)g(of)g(creativ)o(e)h(leadership)f
(at)g(the)h(secondary)d(lev)o(el)k(has)d(allo)o(w)o(ed)i(what)f(should)
0 2606 y(b)q(e)h(an)f(adv)m(anced)g(curriculum)f(for)h(a)g(minorit)o(y)
g(of)g(studen)o(ts)g(to)g(set)h(the)g(tone)f(for)g(all)i(programm)o
(ing)0 2670 y(instruction.)963 2790 y(6)p eop
%%Page: 7 7
7 6 bop 100 50 a Fb(A)o(t)21 b(the)g(college)h(lev)o(el,)i(where)c(w)o
(e)g(are)g(engaged)g(in)i(the)f(training)g(of)g(professional)f
(program-)0 113 y(mers,)f(the)h(soft)o(w)o(are)g(engineering)g(approac)
o(h)f(is)i(sensible,)g(ev)o(en)g(if)g(not)f(the)h(whole)g(story)l(.)32
b(I)21 b(ha)o(v)o(e)0 177 y(not)f(suggested)f(abandoning)g(concerns)g
(ab)q(out)h(professional)g(liabili)q(t)o(y)l(,)j(conserv)m(ativ)o(e)e
(design,)g(and)0 241 y(team)o(w)o(ork)c(in)i(the)g(con)o(text)h(of)f
(programm)n(ing)e(pro)s(jects)h(in)i(whic)o(h)e(liv)o(es)j(or)d(prop)q
(ert)o(y)g(are)h(at)g(risk.)0 304 y(Rather,)f(I)h(ha)o(v)o(e)f(argued)g
(that)h(soft)o(w)o(are)e(engineering)j(concerns)d(should)h(b)q(e)h
(balanced)g(b)o(y)f(a)h(liv)o(ely)0 368 y(sense)13 b(of)i(the)f
(artistic,)i(creativ)o(e)f(side)g(of)f(professional)g(programm)o(ing,)e
(and)h(that)i(large)f(ideas)h(should)0 432 y(come)g(b)q(efore)i(tec)o
(hnical)h(details)g(in)f(the)g(curriculum.)100 501 y(A)o(t)24
b(the)h(high)f(sc)o(ho)q(ol)g(lev)o(el,)k(I)d(w)o(an)o(t)e(to)h(argue)g
(for)g(a)g(more)e(extreme)i(view.)46 b(High)25 b(sc)o(ho)q(ol)0
564 y(studen)o(ts)14 b(are)h(not)g(ab)q(out)g(to)g(en)o(ter)g(the)g
(job)g(mark)o(et)e(as)i(professional)g(programm)n(ers.)j(Rather,)d
(they)0 628 y(are)h(exploring)i(a)e(p)q(ossible)i(in)o(terest)f(in)g
(programm)n(ing,)d(and)i(preparing)f(for)i(further)e(instruction)j(at)0
692 y(the)e(college)i(lev)o(el.)23 b Fa(They)18 b(c)m(an)g(le)m(arn)g
(discipline)g(later)p Fb(.)k(No)o(w)16 b(they)g(need)f(a)h(kind)h(of)f
(appren)o(ticeship:)0 755 y(real)e(tasks)g(to)g(w)o(ork)f(on,)h(the)g
(freedom)d(to)j(exp)q(erimen)o(t)g(and)f(to)h(risk)g(failure,)h(but)e
(in)i(an)e(en)o(vironmen)o(t)0 819 y(that)19 b(mo)q(dels)f(resp)q(ect)g
(for)g(commitmen)n(t.)26 b(They)18 b(need)g(teac)o(hers)g(who)g(serv)o
(e)g(as)g(exp)q(erts)h(a)o(v)m(ailable)0 883 y(for)g(consultation,)i
(rather)e(than)g(lecture)i(on)e(tec)o(hnical)i(kno)o(wledge)f(or)f(set)
h(exercises)g(of)g(tec)o(hnical)0 946 y(skills.)100 1015
y(\(I)i(am)e(concerned)h(here)g(with)h(the)g(needs)f(of)h(those)g
(studen)o(ts)e(who)h(are)h(in)o(terested)g(in)g(com-)0
1079 y(puter)17 b(programm)n(ing.)23 b(The)18 b(design)f(of)h(a)g
(\\computer)d(literacy")20 b(curriculum)c(for)h(all)i(studen)o(ts)e(is)
h(a)0 1143 y(separate)h(issue.)32 b(I)20 b(ha)o(v)o(e)f(argued)g
(elsewhere)h(that)g(it)i(is)e(really)i(a)d(non-issue;)i(studen)o(ts)d
(should)i(b)q(e)0 1206 y(quite)e(comfortable)e(with)i(w)o(ord)e(pro)q
(cessors)f(and)i(other)f(utilit)o(y)k(programs)14 b(long)j(b)q(efore)g
(they)g(lea)o(v)o(e)0 1270 y(elemen)o(tary)c(sc)o(ho)q(ol.)21
b(The)13 b(widely)i(p)q(erceiv)o(ed)f(need)g(for)f(a)g(secondary)f(sc)o
(ho)q(ol)i(\\literacy")h(curriculum)0 1334 y(is)i(a)g(temp)q(orary)e
(result)h(of)h(the)g(fact)g(that)g(computers)e(ha)o(v)o(e)h(only)h
(recen)o(tly)g(en)o(tered)f(the)h(sc)o(ho)q(ols)f(in)0
1397 y(signi\014can)o(t)h(n)o(um)o(b)q(ers)o(.\))100
1466 y(Not)g(ev)o(ery)g(teenager)g(w)o(an)o(ts)f(to)h(program)d
(computers,)g(but)j(man)o(y)e(do.)23 b(Computers)14 b(are)j(p)q(o)o(w-)
0 1530 y(erful,)22 b(resp)q(onsiv)o(e)e(to)q(ols.)36
b(Apart)20 b(from)f(reading,)i(few)g(in)o(tellectual)j(skills)f(app)q
(eal)f(so)e(strongly)h(to)0 1593 y(y)o(oung)13 b(p)q(eople,)i(esp)q
(ecially)i(not)d(formal,)g(tec)o(hnical)h(ones.)21 b(W)l(e)14
b(educators)f(are)h(luc)o(ky)h(that)f(computer)0 1657
y(programm)n(ing)k(ranks)h(almost)g(as)g(high)h(as)f(sk)m(ateb)q
(oarding)h(and)f(pla)o(ying)i(the)f(guitar!)32 b(W)l(e)20
b(should)0 1721 y(teac)o(h)e(programm)o(ing)d(in)k(a)g(w)o(a)o(y)e
(that)i(n)o(urtures)d(this)j(excitemen)o(t,)g(not)f(turning)g(it)i(in)o
(to)f(one)f(more)0 1784 y(academic)e(sub)s(ject)g(full)i(of)f(facts)f
(to)h(b)q(e)g(paraded)e(on)h(exams.)k(Instead,)c(high)h(sc)o(ho)q(ol)f
(programm)o(ing)0 1848 y(instruction)21 b(should)e(b)q(e)h(pro)s
(ject-based,)g(with)g(pro)s(jects)g(c)o(hosen)f(b)o(y)g(the)i(studen)o
(ts)d(themselv)o(es)h(as)0 1912 y(m)o(uc)o(h)11 b(as)j(p)q(ossible.)22
b(The)14 b(A.P)l(.)g(curriculum)f(is)h(particularly)i(bad,)e(b)q
(ecause)f(of)i(its)g(emphasis)d(on)i(con-)0 1975 y(serv)m(ativ)o(e)j
(tec)o(hnique)g(and)e(corresp)q(ondingly)h(lo)o(w-lev)o(el)i(details,)g
(but)d Fa(any)22 b Fb(\014xed)16 b(curriculum)e(w)o(ould)0
2039 y(in)o(terfere.)100 2108 y(Of)f(course)e(the)j(studen)o(t's)d
(appren)o(ticeship)i(can't)f(b)q(egin)i(without)g(an)e(initial)17
b(p)q(erio)q(d)c(dev)o(oted)g(to)0 2172 y(learning)j(the)g(rules)g(of)f
(a)h(programm)n(ing)e(language.)21 b(But)16 b(I)g(think)g(w)o(e)g
(should)f(lo)q(ok)i(up)q(on)e(this)h(early)0 2235 y(w)o(ork)c(as)g(an)h
(unfortunate)f(necessit)o(y)l(,)h(rather)f(than)h(as)f(the)h(fo)q(cus)f
(of)h(our)f(curriculum,)g(and)g(w)o(e)h(should)0 2299
y(try)k(to)h(get)g(it)g(o)o(v)o(er)f(with)h(smo)q(othly)f(and)f(quic)o
(kly)l(.*)26 b(T)l(o)17 b(this)h(end,)f(w)o(e)g(should)g(c)o(ho)q(ose)f
(a)h(high-lev)o(el)0 2363 y(language)h(suc)o(h)g(as)g(Lisp)g(to)h
(minimize)f(the)h(time)f(sp)q(en)o(t)g(on)g(syn)o(tax)g(and)g(mac)o
(hine)f(represen)o(tation)0 2426 y(issues.)k(\(Ab)q(elson)c(and)e
(Sussman)d(use)j(the)h(Sc)o(heme)e(dialect)k(of)d(Lisp)h(in)h(their)f
(text;)h(for)e(high)h(sc)o(ho)q(ol)p 0 2487 600 2 v 50
2543 a(*)25 b(In)19 b(practice)i(the)f(division)h(in)o(to)f(stages)g
(is)g(not)g(so)f(clear-cut.)32 b(Studen)o(ts)18 b(can)i(b)q(e)g(w)o
(orking)f(on)0 2606 y(indep)q(enden)o(t)c(pro)s(jects)g(in)g(parallel)i
(with)f(formal)f(instruction)h(in)f(the)h(language.)21
b(Still,)d(the)e(t)o(w)o(o)e(are)0 2670 y(v)o(ery)h(di\013eren)o(t)g
(in)h(st)o(yle,)g(and)e(will)k(probably)d(b)q(e)g(exp)q(erienced)h(b)o
(y)f(studen)o(ts)f(as)g(separate)h(activitie)q(s.)963
2790 y(7)p eop
%%Page: 8 8
8 7 bop 0 50 a Fb(studen)o(ts)13 b(I)h(prefer)f(the)h(Logo)g(dialect,)i
(whic)o(h)e(pro)o(vides)f(man)o(y)f(of)i(the)g(same)e(high-lev)o(el)k
(mec)o(hanism)o(s)0 113 y(along)g(with)h(a)f(user)g(in)o(terface)g
(that)h(is)f(less)h(in)o(timidating)g(to)f(a)g(b)q(eginner.\))23
b(I)16 b(also)g(lik)o(e)i(to)f(minimize)0 177 y(formal)g(lectures,)i
(relying)h(instead)f(on)f(a)g(self-paced)g(format)f(and)h(sc)o
(heduling)g(adv)m(anced)g(studen)o(ts)0 241 y(in)o(to)f(the)g(lab)g(at)
g(the)f(same)f(time)i(as)f(the)h(b)q(eginners)f(to)h(allo)o(w)g(for)g
(informal)f(one-on-one)f(tutoring.)100 307 y(In)f(this)h(early)h
(stage,)f(I)g(ha)o(v)o(e)f(come)f(to)i(think)h(that)f(debugging)f
(\(and)h(an)o(tibugging\))g(should)f Fa(not)0 371 y Fb(b)q(e)20
b(a)g(large)g(part)f(of)h(the)g(studen)o(t's)e(exp)q(erience.)33
b(It's)20 b(true)f(that)h(debugging)g(is)g(excellen)o(t)i(men)o(tal)0
434 y(exercise,)h(but)e(real)g(b)q(eginners)g(tend)g(to)g(mak)o(e)f
(unin)o(teresting)h(mistak)o(es.)34 b(Sp)q(ending)21
b(15)g(min)o(utes)0 498 y(struggling)15 b(with)g(an)f(unnoticed)h
(punctuation)f(error)f(just)i(teac)o(hes)f(frustration,)g(and)g(so)g(I)
h(will)i(often)0 562 y(debug)23 b(a)g(b)q(eginner's)g(program)e(m)o
(yself)i(and)g(encourage)f(the)i(studen)o(t)f(to)h(get)g(on)f(with)i
(the)f(big)0 625 y(idea)f(that)g(the)f(bug)g(in)o(terrupted.)39
b(Only)23 b(if)g(the)g(bug)e(seems)g(to)h(indicate)i(a)f(serious)f
(conceptual)0 689 y(misunderstanding)14 b(do)i(I)h(mak)o(e)e(an)o(y)h
(fuss)g(ab)q(out)g(it.)100 755 y(The)23 b(second)h(stage)g(of)g(the)g
(studen)o(t's)f(appren)o(ticeship)h(fo)q(cuses)f(on)h(pro)s(jects.)44
b(This)24 b(e\013ort)0 819 y(should)18 b(b)q(e)h(supp)q(orted)f
(structurally)i(with)f(a)g(curriculum-free)e(lab)i(course)f(that)h(can)
g(b)q(e)g(rep)q(eated)0 882 y(for)h(credit;)k(in)o(terested)d(studen)o
(ts)f(ma)o(y)f(enroll)j(in)f(the)g(lab)g(throughout)f(half)h(a)g(dozen)
f(semesters.)0 946 y(\(One)g(problem)f(with)i(the)g(\\bac)o(k)f(to)h
(basics")f(mo)o(v)o(emen)n(t)e(is)j(that)g(it)g(has)f(encouraged)f(a)i
(uniform)0 1010 y(set)c(of)f(courses)g(for)g(all)i(studen)o(ts.)j(One)
16 b(semester)f(of)h(programm)o(ing)e(is)j(more)d(than)j(man)o(y)d
(studen)o(ts)0 1073 y(need,)20 b(but)g(not)f(nearly)i(enough)d(for)i
(man)o(y)e(others.\))31 b(If)20 b(the)g(sc)o(ho)q(ol)g(will)i(allo)o(w)
f(the)f(course)f(to)h(b)q(e)0 1137 y(taugh)o(t)d(without)h(assigning)f
(grades,)f(so)h(m)o(uc)o(h)e(the)i(b)q(etter.)25 b(The)17
b(teac)o(her's)f(role)i(at)g(the)f(b)q(eginning)0 1201
y(of)d(the)g(semester)e(is)i(to)g(ensure)e(that)i(eac)o(h)g(studen)o(t)
e(tak)o(es)i(on)f(a)h(pro)s(ject)f(that)i(is)f(c)o(hallenging)h(but)e
(not)0 1264 y(o)o(v)o(erwhelming;)j(later,)i(the)f(teac)o(her)g(serv)o
(es)f(as)h(a)g(consultan)o(t,)g(lo)q(oking)i(o)o(v)o(er)d(shoulders)g
(when)h(that)0 1328 y(feels)g(appropriate.)k(It)c(is)g(also)g
(appropriate)e(to)i(mak)o(e)e(concrete)h(suggestions)g(ab)q(out)g
(programm)o(ing)0 1392 y(st)o(yle,)h(p)q(oin)o(ting)f(out)g(ho)o(w)e(a)
i(particular)g(studen)o(t)f(program)d(could)k(b)q(e)g(organized)f(more)
f(clearly)l(,)j(but)0 1455 y(I)g(think)g(teac)o(hers)f(should)g(not)g
(insist)i(on)e(univ)o(ersal)h(adherence)f(to)g(broad)g
Fa(a)i(priori)23 b Fb(rules.)100 1522 y(F)l(or)d(most)h(high)h(sc)o(ho)
q(ol)g(studen)o(ts,)g(this)h(second)e(stage)h(can)f(last)i(through)e
(the)h(senior)g(y)o(ear.)0 1585 y(If)d(the)f(programm)o(ing)e(pro)s
(jects)i(are)g(selected)h(w)o(ell,)h(eac)o(h)e(studen)o(t)g(will)j
(learn)e(certain)g(univ)o(ersally)0 1649 y(imp)q(ortan)o(t)i(ideas)h
(\(suc)o(h)f(as)g(recursion\),)i(and)e(also)h(eac)o(h)f(studen)o(t)g
(will)k(learn)c(man)o(y)f(other)i(ideas)0 1713 y(that)17
b(happ)q(en)g(to)g(b)q(e)g(relev)m(an)o(t)h(to)f(his)g(or)g(her)f(pro)s
(jects)h(but)f(are)h(di\013eren)o(t)g(from)e(another)h(studen)o(t's)0
1776 y(learning.)22 b(This)15 b(pro)s(ject)f(lab)q(oratory)h(will)i(b)q
(e)e(excellen)o(t)h(preparation)e(for)g(a)h(more)d(rigorously)j(struc-)
0 1840 y(tured)22 b(computer)e(science)j(curriculum)e(in)i(college.)42
b(Some)21 b(studen)o(ts,)h(ho)o(w)o(ev)o(er,)h(will)i(ev)o(en)o(tually)
0 1904 y(get)d(tired)f(of)h(pro)s(jects)e(and)h(will)i(ask)e(for)g
(more)f(formal)g(instruction)i(ab)q(out)f(meatier)f(ideas.)36
b(F)l(or)0 1967 y(them,)14 b(a)h(third-stage)f(course)g(can)h(in)o(tro)
q(duce)g(computer)d(science)k(topics)g(suc)o(h)d(as)i(automata)e
(theory)0 2031 y(or)k(compiler)g(construction;)h(alternativ)o(ely)l(,)i
(a)e(true)f(Adv)m(anced)h(Placemen)o(t)f(course)f(can)i(b)q(e)g
(o\013ered)0 2095 y(using)e(the)h(Ab)q(elson)g(and)f(Sussman)e(text.)
100 2161 y(I)e(ha)o(v)o(e)f(written)j(a)e(series)g(of)g(three)h(texts,)
g(using)f(Logo,)h(to)g(supp)q(ort)e(these)h(three)g(stages)g([Harv)o
(ey)l(,)0 2224 y(1985,)19 b(1986,)h(1987].)30 b(The)19
b(\014rst)f(\(in)o(tro)q(ducing)i(the)g(language\))f(and)g(the)g(third)
h(\(computer)d(science)0 2288 y(topics\))k(are)e(mean)o(t)g(to)h(b)q(e)
g(read)f(sequen)o(tially)l(,)k(lik)o(e)f(most)c(texts.)33
b(The)20 b(second)f(is)h(a)g(collection)j(of)0 2352 y(pro)s(jects,)14
b(in)h(no)f(particular)h(order,)f(in)o(tended)g(to)h(serv)o(e)f(as)g
(an)g(inspiration)h(and)f(to)h(pro)o(vide)f(starting)0
2415 y(p)q(oin)o(ts)19 b(for)f(studen)o(t)g(pro)s(jects)f(rather)h
(than)g(to)h(b)q(e)g(read)f(from)e(co)o(v)o(er)i(to)h(co)o(v)o(er.)27
b(A)19 b(series)f(lik)o(e)i(this)0 2479 y(has)15 b(the)h(adv)m(an)o
(tage)f(of)h(a)g(uniform)e(st)o(yle)i(and)f(the)h(abilit)o(y)i(to)e
(rely)h(on)e(earlier)i(learning)f(in)g(the)g(later)0
2543 y(v)o(olumes,)d(but)h(alternativ)o(es)i(are)e(a)o(v)m(ailable)j
(for)d(eac)o(h)g(of)g(the)h(three)f(stages.)21 b(In)14
b(particular,)h(there)f(are)0 2606 y(man)o(y)i(collections)k(of)e
(programm)o(ing)d(pro)s(jects)i(a)o(v)m(ailable,)j(and)e(the)g
(computer)d(lab)k(should)e(ha)o(v)o(e)g(a)0 2670 y(wide)12
b(assortmen)o(t.)18 b(In)12 b(the)g(third)g(stage,)g(ev)o(en)g(a)g(P)o
(ascal-based)e(text)j(co)o(v)o(ering)f(the)g(o\016cial)h(Adv)m(anced)
963 2790 y(8)p eop
%%Page: 9 9
9 8 bop 0 50 a Fb(Placemen)o(t)19 b(curriculum)f(w)o(ouldn't)h(b)q(e)h
(to)q(o)g(harmful;)f(m)o(y)f(concern)h(is)h(that)g(that)g(curriculum)e
(has)0 113 y(b)q(ecome,)d(b)o(y)i(default,)g(the)g(only)g(programm)n
(ing)d(exp)q(erience)k(for)e(man)o(y)f(high)i(sc)o(ho)q(ol)f(studen)o
(ts.)0 237 y Fc(Conclusion)100 360 y Fb(T)l(o)i(summ)o(ar)o(ize,)f(I)h
(am)f(presen)o(ting)g(for)h(computer)e(science)j(an)e(argumen)o(t)f
(that)i(has)g(come)f(up)0 424 y(b)q(efore)h(in)h(man)o(y)d(other)i
(areas)g(of)g(science)h(and)f(mathematics)e(education.)27
b(Our)18 b(o\016cial)h(curricula,)0 488 y(I)g(think,)i(run)d(the)i
(same)d(risk)j(as)f(the)g(o\016cial)i(ph)o(ysics)d(curriculum)g(that)i
(caused)e(Alb)q(ert)j(Einstein)0 551 y(to)h(drop)e(out)i(of)g(sc)o(ho)q
(ol.)37 b(Suc)o(h)20 b(rigidit)o(y)k(w)o(ould)d(b)q(e)h(particularly)h
(regrettable)f(in)g(a)g(sub)s(ject)f(lik)o(e)0 615 y(computer)14
b(programm)n(ing,)g(whic)o(h)i(lends)g(itself)i(so)e(readily)h(to)f(a)g
(\015exible,)i(exp)q(erimen)o(tal)e(approac)o(h.)0 738
y Fc(References)0 897 y Fb(Ab)q(elson,)25 b(Harold,)g(and)e(Gerald)h
(Ja)o(y)e(Sussman.)39 b Fa(Structur)m(e)23 b(and)i(Interpr)m(etation)g
(of)f(Computer)100 960 y(Pr)m(o)m(gr)m(ams)p Fb(,)18
b(MIT)e(Press,)g(1985.)0 1059 y(Co)q(op)q(er,)g(Doug,)g(and)g(Mic)o
(hael)i(Clancy)l(.)k Fa(Oh!)i(Pasc)m(al!)30 b Fb(Second)16
b(Edition,)h(Norton,)f(1985.)0 1157 y(Harv)o(ey)l(,)g(Brian.)23
b Fa(Computer)17 b(Scienc)m(e)h(L)m(o)m(go)i(Style)p
Fb(,)c(MIT)g(Press.)100 1221 y(V)l(olume)g(1:)21 b Fa(Interme)m(diate)e
(Pr)m(o)m(gr)m(amming)p Fb(,)f(1985.)100 1285 y(V)l(olume)e(2:)21
b Fa(Pr)m(oje)m(cts,)f(Styles,)e(and)g(T)l(e)m(chniques)p
Fb(,)f(1986.)100 1348 y(V)l(olume)f(3:)21 b Fa(A)m(dvanc)m(e)m(d)g(T)l
(opics)p Fb(,)c(1987.)963 2790 y(9)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF