%!PS-Adobe-2.0 %%Title: computer 6 %%Creator: PageMaker 4.01 %%CreationDate: 6-5-1992, 9:30:54 %%For: Station PS %%BoundingBox: 0 0 612 792 %%Pages: 56 0 %%DocumentPrinterRequired: "" "" %%DocumentFonts: (atend) %%DocumentSuppliedFonts: (atend) %%DocumentNeededFonts: (atend) %%DocumentNeededProcSets: %%DocumentSuppliedProcSets: AldusDict2 209 55 %%DocumentPaperSizes: Letter %%EndComments %%BeginFile: PatchFile userdict /AldusDict known {(A previous version PageMaker header is loaded.) = flush} if %%EndFile %%BeginProcSet: AldusDict2 209 55 % 209 55 AldusVersion/AldRevision: This record must be first!! % Copyright (C) 1987 Aldus Corporation. All rights reserved. /AldusDict2 325 dict def AldusDict2 begin /AldusVersion 209 def /AldusRev 55 def /bdef { bind def } bind def systemdict /currentpacking known {/AD_OldPacking currentpacking def true setpacking } if /AD_PrevMatrix matrix def /AD_SomethingOnPage false def /AD_OutlineWidth 30 def /AD_ShadOffset 0.06 def /AD_OLShadOffset 0.06 def /AD_OLSmearFact 0.03 def /AD_BoldSmearFact 0.03 def /AD_ObliqueAngle -0.21 def /AD_TrueSetscreen /setscreen load def /AD_NestedMirror false def /AD_TextCutout false def /BEGJOB { /AD_Invert exch def dup AD_NestedMirror xor /AD_NestedMirror exch def /AD_MirrorFlag exch def /AD_WideFlag exch def /paperwid exch def /paperht exch def /AD_Resolution 1440 def /AD_PointsToUCS AD_Resolution 72 div def AD_PrevMatrix currentmatrix pop /AD_PrevScreen [currentscreen] def /AD_PrevTransfer currenttransfer def /AD_StdScreen true def /STD_SCREEN { AD_StdScreen not { AD_PrevScreen cvx exec setscreen /AD_PrevTransfer load settransfer /AD_StdScreen true assign }if } def true _SetCoordSys version (23.) anchorsearch { pop pop /truesetgray /setgray load def /setgray { mark AD_Invert {.0 .0 .06 .1 .28 .48 .56 .68 .82 .9 .98 1.0 } {1.0 1.0 .98 .9 .82 .68 .56 .48 .28 .1 .06 .0 } ifelse counttomark dup 3 add -1 roll exch 2 sub mul dup floor cvi dup 3 1 roll sub exch dup 3 add index exch 2 add index dup 4 1 roll sub mul add counttomark 1 add 1 roll cleartomark truesetgray } def } { pop } ifelse /screenAdjust 1 0 dtransform exch atan def /mirrorScreen AD_NestedMirror {/neg load} {{}} ifelse def /setscreen {exch screenAdjust add mirrorScreen exch AD_TrueSetscreen} def } def /_SetCoordSys { /AD_OldSys exch def AD_WideFlag { AD_OldSys { 90 rotate 1 AD_PointsToUCS div dup neg scale } { 1 AD_PointsToUCS div dup neg scale paperht paperwid neg translate 90 rotate } ifelse } { 1 AD_PointsToUCS div dup neg scale 0 paperht neg translate } ifelse AD_MirrorFlag { paperwid 0 translate -1 1 scale } if /AD_DeviceScale 1 1 transform pop 0 0 transform pop sub abs def } bdef /SETRES { /AD_Resolution exch def /AD_PointsToUCS AD_Resolution 72 div def AD_PrevMatrix setmatrix false _SetCoordSys _DefinePatterns } bdef /SETOVERPRINT { setoverprint } bdef /SETTEXTCUTOUT { /AD_TextCutout exch def } bdef /BEGPAGE { /AD_SomethingOnPage false def } bdef /ENDPAGE { AD_SomethingOnPage { save showpage restore } if } def /MUST_PRINT_PAGE { /AD_SomethingOnPage true def } bdef /ENDJOB { AD_PrevMatrix setmatrix } bdef /S_PSCRIPT { /AD_SomethingOnPage true def } bdef /S_TEXTSEGBEG { /here save def /TX_RunDrawn false def newpath } bdef /S_TEXTSEGEND { TX_RunDrawn { here restore /AD_SomethingOnPage true def } { here restore } ifelse } bdef /S_WORKING { /AD_WorkingMemory exch def } bdef /S_LOADFONT { AldusDict2 /AD_TopOfFonts known exch { { AD_TopOfFonts restore } if } { not { save /AD_TopOfFonts exch def } if } ifelse } bdef /SURSTR { AD_SomethingOnPage SUsv restore } bdef /SUSAVE { AldusDict2 /AD_TopOfFonts known vmstatus exch sub exch pop AD_WorkingMemory lt { dup { AD_TopOfFonts restore } if } if not { save /AD_TopOfFonts exch def } if save /SUsv exch def /AD_SomethingOnPage exch def } bdef /_ftName 66 string def /_AutoRecode { /recode exch def _ftName cvs dup length 7 gt { dup 0 7 getinterval (|______) eq { dup length 7 exch 7 sub getinterval recode { FTRECODE } { FTRENAME } ifelse } { pop } ifelse } { pop } ifelse } bdef /SYM_SAV { save /SYMsv exch def } bdef /SYM_RSTR { AD_SomethingOnPage SYMsv restore /AD_SomethingOnPage exch def } bdef /AD_save_xform null def /SET_TX_XFORM { /m_x exch def /r_angle exch def /ref_y exch def /ref_x exch def /AD_save_xform save def ref_x ref_y translate m_x { -1 1 scale } if r_angle neg rotate ref_x neg ref_y neg translate } bind def /CLEAR_TX_XFORM { AD_SomethingOnPage AD_save_xform restore /AD_SomethingOnPage exch def } bind def /SHADOWFLAG 16#1 def /OUTLINEFLAG 16#2 def /BOLDSMEAR 16#4 def /OUTLINESMEAR 16#8 def /ReENCODED 16#10 def /BOLDPSBUMP 16#20 def /ITALICOBLIQUE 16#40 def /SET { count 5 eq not{6 array astore}if /AD_textcolor exch def /AD_fontbits exch def /AD_20EMS exch def 1 index FontDirectory exch known not { 1 index ReENCODED AD_fontbits _iand _AutoRecode } if BOLDPSBUMP AD_fontbits _iand { 1 add } if dup _ActivateFont ITALICOBLIQUE AD_fontbits _iand { _ActivateObliqueFont } if /AD_width_factor_internal AD_width_factor def AD_width_factor 1 ne { currentfont [AD_width_factor 0 0 1 0 0] makefont setfont } if /AD_EmNotMatch AD_20EMS 20 div (M) _ADStringWidth pop sub abs 1 gt def false SETTEXTCUTOUT } bdef /S_SETUPRUN /SET load def /OUT { /here save def /runwidth exch def /nspaces exch def /nchars exch def /textrun exch def /letterspace exch def /wordspace exch def /y1 exch def /x1 exch def nchars 0 gt { AD_textcolor dup _Gray? {setgray} {aload pop {PREGISCOLOR}{PCOLOR}ifelse } ifelse /letterspace AD_EmNotMatch { runwidth textrun _ADStringWidth pop nchars dup 1 gt {1 sub} if letterspace mul add nspaces wordspace mul add sub nchars dup 1 gt {1 sub} if div } { 0 } ifelse letterspace add def SHADOWFLAG AD_fontbits _iand { save OUTLINEFLAG AD_fontbits _iand { _OLShadowOffset } { AD_textcolor _Gray?{_ShadowScreen}if AD_textcolor _ShadowColor _ShadowOffset } ifelse OUTLINEFLAG AD_fontbits _iand OUTLINESMEAR AD_fontbits _iand not and { _ActivateSolidFont _SetTextWidth } if AD_TextCutout {1 setgray} if _ShowRun BOLDSMEAR AD_fontbits _iand { _BoldSmearOffset _ShowRun } if restore } if OUTLINEFLAG AD_fontbits _iand OUTLINESMEAR AD_fontbits _iand and { _OLSmearRun } { OUTLINEFLAG AD_fontbits _iand { save _ActivateSolidFont _SetTextWidth AD_textcolor _Gray? AD_textcolor _White? or { AD_textcolor _White? {0} {_TextFillColor} ifelse setgray } { 1 setgray }ifelse _ShowRun restore } if _ShowRun BOLDSMEAR AD_fontbits _iand { _BoldSmearOffset _ShowRun } if } ifelse } if here restore /AD_SomethingOnPage true def } bdef /S_OUTPUTRUN /OUT load def /_ADStringWidth { gsave closepath clip stringwidth grestore } bdef /_OLSmearRun { gsave _OLSmearOffset translate _ShowRun grestore gsave _OLSmearOffset exch neg exch translate _ShowRun grestore gsave _OLSmearOffset neg translate _ShowRun grestore gsave _OLSmearOffset neg exch neg exch translate _ShowRun grestore gsave AD_textcolor _Gray? AD_textcolor _White? or { AD_textcolor _White? {0} { _TextFillColor} ifelse setgray } { 1 setgray }ifelse _ShowRun grestore } bdef /_TextFillColor { AD_TextCutout {1} {1 AD_textcolor sub} ifelse } bdef /_ShowRun { x1 y1 moveto wordspace 0 8#040 letterspace 0 textrun awidthshow } bdef /AD_width_factor_internal 1 def /_SetTextWidth { AD_width_factor_internal 1 ne { currentfont [AD_width_factor_internal 0 0 1 0 0] makefont setfont } if } bdef /AD_save_textwidth null def /SET_TEXT_WIDTH { /AD_width_factor_internal exch def /AD_save_textwidth save def _SetTextWidth } bdef /RESTORE_TEXT_WIDTH { AD_SomethingOnPage AD_save_textwidth restore /AD_SomethingOnPage exch def /AD_width_factor_internal 1 def } bdef /AD_width_factor 1 def /SET_TX_WIDTH { /AD_width_factor exch def } bdef /CLEAR_TX_WIDTH { /AD_width_factor 1 def } bdef /S_UNDERLINE { /here save def count 7 eq not{6 array astore}if /color exch def /pointsize exch def /width exch def /deltay exch def /baseline exch def /rightx exch def /leftx exch def currentfont /FontInfo known { currentfont /FontInfo get /UnderlinePosition known { /deltay currentfont /FontInfo get /UnderlinePosition get currentfont /FontMatrix get 3 get mul pointsize AD_fontscale AD_PointsToUCS div div mul def } if currentfont /FontInfo get /UnderlineThickness known { /width currentfont /FontInfo get /UnderlineThickness get currentfont /FontMatrix get 3 get abs mul pointsize AD_fontscale AD_PointsToUCS div div mul def } if } if /underliney 0 baseline deltay add transform round exch round exch itransform exch pop def color dup _Gray? {setgray}{aload pop {PREGISCOLOR}{PCOLOR}ifelse }ifelse width setlinewidth SHADOWFLAG AD_fontbits _iand { save OUTLINEFLAG AD_fontbits _iand { _OLShadowOffset } { color _Gray?{_ShadowScreen}if color _ShadowColor _ShadowOffset } ifelse leftx underliney rightx underliney _ShowUnderline restore } if leftx underliney rightx underliney _ShowUnderline OUTLINEFLAG AD_fontbits _iand OUTLINESMEAR AD_fontbits _iand not and { save color _Gray?{1 color sub setgray} {0 0 0 0 setcmykcolor }ifelse /AD_OutlineWidth AD_OutlineWidth 1000 div AD_fontscale mul def width 3 AD_OutlineWidth mul ge { width 2 AD_OutlineWidth mul sub } { width 3 div } ifelse setlinewidth leftx AD_OutlineWidth add underliney rightx AD_OutlineWidth sub underliney _ShowUnderline restore } if here restore /AD_SomethingOnPage true def } bdef /_ShowUnderline { newpath moveto lineto stroke } bdef /S_STRIKETHRU { /here save def count 4 eq not{6 array astore}if /color exch def /y exch def /rightx exch def /leftx exch def /y 0 y transform round exch round exch itransform exch pop def color _Gray? {color setgray}{color aload pop {PREGISCOLOR}{PCOLOR}ifelse }ifelse _StrikeThruWidth setlinewidth newpath leftx y moveto rightx y lineto stroke here restore /AD_SomethingOnPage true def } bdef /DV_DRAW_TEXT { /here save def /text exch def /y exch def /x exch def Black setgray (Helvetica-Bold) FTRECODE /|______Helvetica-Bold 9 dup _ActivateFont x y moveto text show here restore /AD_SomethingOnPage true def } bdef /DV_DRAW_BOX { /here save def /draftflag exch def /shadowflag exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def AD_PointsToUCS 2 div setlinewidth newpath x1 y1 moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto closepath shadowflag { gsave STD_SCREEN 0.5 setgray fill grestore} { gsave 1.0 setgray fill grestore 0.0 setgray stroke } ifelse draftflag { x1 y1 moveto x2 y2 lineto stroke x2 y1 moveto x1 y2 lineto stroke } if here restore /AD_SomethingOnPage true def } bdef /DV_DRAW_LINE { /here save def /lw exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 transform round exch round exch itransform /y1 exch def /x1 exch def x2 y2 transform round exch round exch itransform /y2 exch def /x2 exch def 0 lw transform round exch round exch itransform /lw exch def pop lw setlinewidth 0 setseparationgray newpath x1 y1 moveto x2 y2 lineto stroke here restore /AD_SomethingOnPage true def } def /DV_DRAW_CIRCLE { /here save def /lw exch def /r exch def /y exch def /x exch def x y transform round exch round exch itransform /y exch def /x exch def 0 r transform round exch round exch itransform /r exch def pop 0 lw transform round exch round exch itransform /lw exch def pop lw setlinewidth Black setgray newpath x y r 0 360 arc stroke here restore /AD_SomethingOnPage true def } bdef /_ActivateFont { /AD_fontscale exch AD_PointsToUCS mul def /AD_fontscaleX exch AD_PointsToUCS mul def /AD_fontname exch def AD_fontname findfont [ AD_fontscaleX 0 0 AD_fontscale neg 0 0 ] makefont setfont } bdef /_ActivateObliqueFont { AD_fontname findfont [ AD_fontscaleX 0 0 AD_fontscale neg 0 0 ] [ 1 0 AD_ObliqueAngle 1 0 0 ] matrix concatmatrix makefont setfont } bdef /_ActivateSolidFont { AD_solidfont AD_fontscaleX AD_PointsToUCS div AD_fontscale AD_PointsToUCS div _ActivateFont } bdef /_ShadowOffset { AD_ShadOffset AD_fontscaleX mul AD_ShadOffset AD_fontscale mul translate } bdef /_OLShadowOffset { AD_OLShadOffset AD_fontscaleX mul AD_OLShadOffset AD_fontscale mul translate } bdef /_ShadowScreen { 100 AD_PrevScreen 1 get AD_PrevScreen 2 get setscreen } bdef /_ShadowColor { dup _Gray? exch dup _White? 3 -1 roll or { dup _White? {pop 1 }if 0.6 mul 0.8 exch sub setgray} {_ShadeColor }ifelse } bdef /_ShadeColor { /AldusTint .2 def aload pop {PREGISCOLOR}{PCOLOR}ifelse /AldusTint 1 def } bdef /_Gray? { dup type 0 type eq exch type 0.0 type eq or } bdef /_White? { dup type [] type eq {aload pop pop pop add add add 0 eq {true}{false }ifelse }{pop false }ifelse } bdef /PCOLOR { findcmykcustomcolor AD_NonSepPat {1 currentgray sub setcustomcolor} {AldusTint setcustomcolor}ifelse } def /ndf { 1 index where {pop pop pop}{dup xcheck {bind }if def }ifelse } bdef /setoverprint { AldusDict2 begin /AD_Overprint exch def end }ndf /currentoverprint { AldusDict2 /AD_Overprint get }ndf /setcmykcoloroverprint { 4{dup -1 eq{pop 0}if 4 1 roll}repeat setcmykcolor }ndf /findcmykcustomcolor { 5 /packedarray where {pop packedarray}{array astore readonly }ifelse }ndf /setcustomcolor { exch aload pop pop 4 {4 index mul 4 1 roll } repeat setcmykcolor pop }ndf /setcmykcolor { 1 exch sub _Ccmyk _Ccmyk _Ccmyk pop setrgbcolor }ndf /customcolorimage { pop image }ndf /separationimage { image }ndf /setseparationgray { setgray }ndf /_Ccmyk { dup 5 -1 roll sub 0 _Max exch }bdef /_Max { 2 copy lt {exch }if pop } bdef /_OLSmearOffset { AD_OLSmearFact AD_fontscaleX mul AD_OLSmearFact AD_fontscale mul } bdef /_BoldSmearOffset { AD_BoldSmearFact AD_fontscaleX mul AD_BoldSmearFact AD_fontscale mul translate } bdef /_StrikeThruWidth { AD_fontscale 16 div } bdef /_iand { and 0 ne } bdef /FTRENAME { dup (|______) exch ftMakeName cvn /NewName local FontDirectory NewName known {pop} {cvn findfont dup maxlength dict false copyDict dup /FontName known {dup /FontName NewName put} if NewName exch definefont pop } ifelse } bdef /FTRECODE { dup (|______) exch ftMakeName cvn /NewName local FontDirectory NewName known {pop} {cvn findfont dup maxlength dict false copyDict dup /FontName known {dup /FontName NewName put} if dup /Encoding MacEncoding put NewName exch definefont pop } ifelse } bdef /AD_encode_vector_size 256 def /AD_encode_vector null def /AD_doing_recoding false def /BEG_RECODE { dup (|______) exch ftMakeName cvn /NewName local FontDirectory NewName known { pop /AD_doing_recoding false def /AD_encode_vector null def } {cvn findfont dup maxlength dict false copyDict dup /FontName known {dup /FontName NewName put} if /AD_encode_vector AD_encode_vector_size array def dup begin Encoding AD_encode_vector copy pop end dup /Encoding AD_encode_vector put NewName exch definefont pop /AD_doing_recoding true def AD_encode_vector dup } ifelse } bdef /ENCODE_CHAR { AD_doing_recoding { put dup } { pop pop } ifelse } bdef /END_RECODE { AD_doing_recoding { pop pop } if /AD_doing_recoding false def /AD_encode_vector null def } bdef /FTOUTLINE { ReENCODED FTOLINE } bdef /FTOLINE { /AD_fontbits exch def cvn /OlineName local dup /AD_solidfont exch def AD_solidfont FontDirectory exch known not { AD_solidfont ReENCODED AD_fontbits _iand _AutoRecode } if FontDirectory OlineName known {pop} {cvn findfont dup maxlength 2 add dict true copyDict dup /FontName known {dup /FontName OlineName put} if dup /PaintType 2 put dup /StrokeWidth AD_OutlineWidth put OlineName exch definefont pop } ifelse } bdef /AD_nameString1 66 string def /ftMakeName { 1 index length /PrefixLen local dup length PrefixLen add AD_nameString1 exch 0 exch getinterval dup PrefixLen 4 -1 roll putinterval dup 0 4 -1 roll putinterval } bdef /copyDict { /NoUnique local begin { 1 index /FID ne NoUnique {2 index /UniqueID ne and} if { def } { pop pop } ifelse } forall currentdict end } bdef /MacEncoding 256 array def MacEncoding 0 /Times-Roman findfont /Encoding get 0 128 getinterval putinterval MacEncoding 16#27 /quotesingle put MacEncoding 16#60 /grave put /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /degree /cent /sterling /section /bullet /paragraph /germandbls /registersans /copyrightsans /trademarksans /acute /dieresis /notequal /AE /Oslash /infinity /plusminus /lessequal /greaterequal /yen /mu /partialdiff /summation /product /pi /integral /ordfeminine /ordmasculine /Omega /ae /oslash /questiondown /exclamdown /logicalnot /radical /florin /approxequal /Delta /guillemotleft /guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /lozenge /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /apple /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron MacEncoding 128 128 getinterval astore pop /getAnInt{2 getinterval dup 0 get 16#100 mul exch 1 get add cvi}def /CharBitStr 30 string def /BuildCharDict 16 dict def /AFONT { gsave /FName local /BMFSize local 1 add /LastChar local /FirstChar local /DefChar LastChar FirstChar sub 2 mul def 20 dict dup begin 10 1 roll /LocTableLen local /OWTableLen local /BMRowLen local /PixelHeight local /FontWidth local /MaxWidth local /MaxKern local /Descent local /Ascent local /Bits BMRowLen PixelHeight mul string currentfile exch readhexstring pop def /LocTable LocTableLen string currentfile exch readhexstring pop def /OWTable OWTableLen string currentfile exch readhexstring pop def /FontType 3 def /FontMatrix matrix def /FontBBox[MaxKern Descent neg MaxWidth MaxKern add Ascent]def /Encoding 256 array def Encoding 0 MacEncoding 0 256 getinterval putinterval /Mummble 257 array def 0 1 256{Mummble exch DefChar put}for FirstChar 1 LastChar{Mummble exch dup FirstChar sub 2 mul put}for /BuildChar { BuildCharDict begin /1Char local /FDict local FDict /Mummble get 1Char get /2Char local FDict /OWTable get 2Char getAnInt 16#FFFF eq {/2Char DefChar assign}if FDict /LocTable get 2Char getAnInt /BitLoc local FDict /LocTable get 2Char 2 add getAnInt BitLoc sub /BitWidth local BitLoc 8 mod /ShiftVal local 16#FF 8 ShiftVal sub dup neg /RemShift local bitshift 16#FF and /BMask local 16#FF 8 BitLoc BitWidth add 8 mod sub dup 8 ge{pop 0}if BitWidth 0 eq{pop 8}if bitshift /AMask local BitWidth ShiftVal add 7 add 8 idiv dup 0 eq{pop 1}if /ByteWidth local BitLoc 8 idiv /WhichRow local FDict /OWTable get 2Char get cvi /Offset local FDict /OWTable get 2Char 1 add get cvi /Charwidth local Charwidth 0 BMFSize divPoint FDict /MaxKern get FDict /Descent get neg BMFSize divPoint BitWidth Offset add FDict /MaxKern get add FDict /Ascent get BMFSize divPoint setcachedevice gsave ByteWidth 8 mul FDict /PixelHeight get true [FDict /PixelHeight get FDict /Descent get sub 1 add 0 0 FDict /PixelHeight get FDict /Descent get sub 1 add neg Offset neg 0.5 add FDict /PixelHeight get FDict /Descent get sub 0.5 add] { FDict /Bits get WhichRow ByteWidth getinterval CharBitStr copy /ThisRow local 16#100 ByteWidth 1 sub 1 neg 0 { /iV local ThisRow iV get 1 index 16#100 eq{AMask and}if dup BMask and RemShift bitshift 3 1 roll ShiftVal bitshift add 16#FF and cvi ThisRow iV 3 -1 roll put }for pop ThisRow /WhichRow WhichRow FDict /BMRowLen get add assign } imagemask grestore end }def end FontDirectory FName cvn known {pop} {FName cvn exch definefont pop} ifelse grestore }def /AldusTint 1 def /AD_Overprint false def /AD_NonSepPat false def /const /def load def /var /def load def /local[/exch load /def load]cvx def /assign /def load def /incr{dup cvx exec 1 add assign}bdef /postIncr{dup cvx exec exch incr}bdef /SpaceChar 16#20 const /cvPA{2 array astore cvx}bdef /point{cvPA def}bdef /locPoint{3 1 roll point}bdef /pointXpoint{3 -1 roll mul 3 1 roll mul exch}bdef /pointDpoint{3 -1 roll exch div 3 1 roll div exch}bdef /setPoint{load astore pop}bdef /dupPoint{2 copy}bdef /addPoint{exch 4 -1 roll add 3 1 roll add}bdef /subPoint{exch 3 1 roll sub 3 1 roll sub exch}bdef /mulPoint{dup pointXpoint}bdef /divPoint{dup pointDpoint}bdef /exchPoint{4 2 roll}bdef /overPoint{3 index 3 index}bdef /anyStatD systemdict /statusdict known const /thisProduct anyStatD {statusdict /product known{statusdict /product get}{()}ifelse} {()}ifelse const /PerCentChg 1.0 -1.0 point /boxPath{/y2 local /x2 local /y1 local /x1 local x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath}bdef /dump{4{pop}repeat}bdef /rBoxPath{/r local /y2 local /x2 local /y1 local /x1 local x1 r add y1 moveto x2 y1 x2 y2 r arcto dump x2 y2 x1 y2 r arcto dump x1 y2 x1 y1 r arcto dump x1 y1 x2 y1 r arcto dump closepath}bdef /SaveMatrix matrix var /ButtCap 0 const /SquareCap 2 const /MiterJoin 0 const /BevelJoin 2 const /Black 0 const /White 1 const /Wide 0 const /Narrow 1 const /PictPostScript false var /isHairline false var /PBEGIN{ dup not {save /PSave exch def} if /isLBO exch def /PBotRight locPoint /PTopLeft locPoint isLBO not {newpath PTopLeft PBotRight boxPath clip} if newpath isLBO {ButtCap}{SquareCap} ifelse setlinecap MiterJoin setlinejoin 3 setmiterlimit AD_PointsToUCS setlinewidth /deviceRound { dup AD_DeviceScale mul round AD_DeviceScale div dup 0 eq { pop } { exch pop } ifelse } def /HairWidth AD_PointsToUCS 4 div AD_DeviceScale mul deviceRound dup 1.5 lt { pop 0 } if const Black setgray /LineScale 1 var /LineWidth AD_PointsToUCS var /LineHeight AD_PointsToUCS var /DoingWedge false var /DoingArc false var AldusDict2 /PatternShade known not { /psb {} bdef /pse {} bdef /PatternShade Black var /DeclaredPattern <00> var /PCurPat <01> var } if }bdef /PEND{ newpath isLBO not {PSave restore} if /AD_SomethingOnPage true def }bdef /SetPattern { dup /PatternShade exch def setgray } bdef /bitison{ /ybit local /xbit local PCurPat ybit PatWidth mul xbit 8 idiv add get 1 7 xbit 8 mod AD_NestedMirror {exch pop}{sub} ifelse bitshift and 0 ne}bdef /PSHADE{ STD_SCREEN 100 div dup /PatternShade exch def /AD_NonSepPat true def setgray <01> /PCurPat local } def /BK { /AD_NonSepPat true def Black setgray } bdef /WT { /AD_NonSepPat true def White setgray } bdef /PBLACK /BK load def /PWHITE /WT load def /PREGISCOLOR { pop AD_NonSepPat { pop currentgray}{AldusTint mul 1 exch sub}ifelse setseparationgray pop pop pop } bdef /PUSETHISPATTERN { dup PCurPat eq {pop}{ PPATTERN } ifelse PatternShade /AD_NonSepPat true def setgray /VerifyUsedPattern false def } bdef /PUSEPATTERN { VerifyUsedPattern {DeclaredPattern PCurPat ne {DeclaredPattern PPATTERN} if } if PatternShade setgray /VerifyUsedPattern false def } bdef /PDECLAREPATTERN { /DeclaredPattern exch def /VerifyUsedPattern true def /AD_NonSepPat true def } bdef /PatWidth 1 const /PatSide 8 const /PFreq 300 32 div const /PPATTERN{/PCurPat local /AD_NonSepPat true def /VerifyUsedPattern false def 0 /Onbits local 0 /Offbits local AD_Invert {{1 exch sub} settransfer} {{} settransfer} ifelse PFreq PerCentChg pop dup 0.96 eq {pop}{div}ifelse 0 { 1 1 addPoint 2 divPoint PatSide mulPoint cvi exch cvi exch bitison AD_Invert xor {/Onbits incr 1} {/Offbits incr 0}ifelse } setscreen Offbits dup Onbits add div AD_Invert {1 exch sub} if SetPattern /AD_StdScreen false assign}def /vertLines{pop dup mul -2 mul 1 add}bdef /sPat { AD_Invert {{1 exch sub} settransfer} {{} settransfer} ifelse setscreen setgray }def /PALDUSSHADE { <11> /PCurPat local /AD_NonSepPat true def /AD_StdScreen false assign Wide eq { 0.774 20 45 {vertLines} sPat } { 0.643 30 45 {vertLines} sPat } ifelse } bdef /PHAIRWIDTH { HairWidth setlinewidth /isHairline true def } bdef /LW { LineScale mul deviceRound /LineHeight exch def LineScale mul deviceRound dup /LineWidth exch def setlinewidth /isHairline false def }bdef /PLNWIDTH /LW load def /PLNSCALE{div /LineScale exch def} bdef /roundCoord { 0.5 add round 0.5 sub } bdef /roundPoint { transform round exch round exch itransform } bdef /adjCoord { dup 1 AD_DeviceScale div gt { deviceRound 2 div } { pop .5 AD_DeviceScale div } ifelse } bdef /pULAdj{ roundPoint currentlinewidth adjCoord LineHeight adjCoord addPoint }bdef /pLRAdj{ roundPoint currentlinewidth adjCoord LineHeight adjCoord subPoint }bdef /QD_LINE { /qd_save save def /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 x2 gt { x1 y1 x2 y2 /y1 exch def /x1 exch def /y2 exch def /x2 exch def } if newpath y1 y2 gt { x1 y1 moveto x2 y2 lineto x2 LineWidth add dup y2 lineto y2 LineHeight add lineto x1 LineWidth add y1 LineHeight add lineto x1 y1 LineHeight add lineto x1 y1 lineto } { x1 y1 moveto x1 LineWidth add y1 lineto x2 LineWidth add dup y2 lineto y2 LineHeight add lineto x2 y2 LineHeight add lineto x1 y1 LineHeight add lineto x1 y1 lineto } ifelse closepath eofill qd_save restore } bdef /PLINETO { PictPostScript { moveto lineto } { /y2 exch def /x2 exch def /y1 exch def /x1 exch def currentlinecap ButtCap setlinecap newpath x1 x2 eq y1 y2 eq and { LineWidth 1 le LineHeight 1 le and { x1 y1 moveto } { x1 y1 x1 LineWidth add y1 LineHeight add boxPath fill} ifelse } { y1 y2 eq { LineWidth x1 x2 lt { x2 add /x2 exch def } { x1 add /x1 exch def } ifelse LineHeight setlinewidth x1 y1 LineHeight 2 div add roundPoint moveto x2 y2 LineHeight 2 div add roundPoint lineto mayStroke } { x1 x2 eq { LineHeight y1 y2 lt { y2 add /y2 exch def } { y1 add /y1 exch def } ifelse x1 LineWidth 2 div add y1 roundPoint moveto x2 LineWidth 2 div add y2 roundPoint lineto mayStroke } { x1 y1 pULAdj moveto x2 y2 pULAdj lineto mayStroke } ifelse } ifelse } ifelse setlinecap } ifelse }bdef /HairRect { save /here exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def PHAIRWIDTH newpath x1 x2 sub abs y1 y2 sub abs lt { x1 x2 add 2 div dup y1 roundPoint moveto y2 roundPoint lineto stroke} { y1 y2 add 2 div dup x1 exch roundPoint moveto x2 exch roundPoint lineto stroke} ifelse here restore } bdef /PHAIRLINE { count 4 gt { newpath PHAIRWIDTH addPoint 2 divPoint roundPoint moveto addPoint 2 divPoint roundPoint lineto pop pop stroke } { HairRect } ifelse } bdef /PHANGLINE { roundPoint /yb exch def /xr exch def roundPoint /yt exch def /xl exch def deviceRound /delta exch def { {yt delta sub /yt exch def} {yb delta add /yb exch def} ifelse } { {xl delta sub /xl exch def} {xr delta add /xr exch def} ifelse } ifelse newpath 1 AD_DeviceScale div 2 div dup dupPoint xl yt addPoint exchPoint xr yb exchPoint subPoint boxPath fill } bdef /PCURVETO { curveto } bdef /PMOVETO { moveto } bdef /PRECT{newpath pLRAdj exchPoint pULAdj exchPoint boxPath}bdef /PRRECT { pLRAdj /Botts locPoint pULAdj /Tops locPoint currentlinewidth dup subPoint /Diams locPoint newpath SaveMatrix currentmatrix pop Botts Tops subPoint /Sides locPoint Sides pop abs Diams pop ge{Diams}{Sides}ifelse pop Sides exch pop abs Diams exch pop ge{Diams}{Sides}ifelse exch pop /Diams locPoint Diams 2 div /YRad local 0 gt {Diams exch pop 0 eq {1} {Diams div} ifelse } {1}ifelse 1 /PRRscale locPoint Tops translate PRRscale scale 0 0 Sides PRRscale pointDpoint Diams 0 gt exch 0 gt and{YRad rBoxPath}{boxPath}ifelse SaveMatrix setmatrix}bdef /POVAL{newpath SaveMatrix currentmatrix pop 0 359 false pArc closepath SaveMatrix setmatrix}bdef /PARC{ newpath SaveMatrix currentmatrix pop /DoingArc true assign false pArc SaveMatrix setmatrix }bdef /PWEDGE{newpath SaveMatrix currentmatrix pop /DoingWedge true assign true pArc closepath SaveMatrix setmatrix }bdef /modAdj{ dup 360 gt{360 sub}if dup 0 lt{360 add}if}bdef /pArc{/Fill local /ArcAng local /BegAng local pLRAdj /PLR locPoint pULAdj /PUL locPoint 360 BegAng ArcAng add sub 90 add modAdj /StartAng local StartAng ArcAng add /EndAng local PLR PUL subPoint 2 divPoint /Rad locPoint PUL Rad addPoint translate Rad neg scale Fill{0 0 moveto}if 0 0 1 StartAng EndAng dupPoint eq {pop pop 0 359 arc closepath} {ArcAng 0 lt {arcn}{arc}ifelse } ifelse }bdef /PBEGPOLY{ newpath pULAdj moveto }bdef /PBEGSMOOTHPOLY { newpath } bdef /PPOLYPOINT { pULAdj lineto } bdef /PENDPOLY{ /Closed local Closed{closepath}if }bdef /PENDSMOOTHPOLY { PENDPOLY } bdef /PBEGRGN{mark}bdef /PREGION{PRECT cleartomark}bdef /PTXBEG {/PTSave1 save const} bdef /PROTATE { currentdict /PRotateSave known not {save /PRotateSave exch def} if 3 1 roll dupPoint neg exch neg exch 5 2 roll translate rotate translate } bdef /PHFLIP { currentdict /PRotateSave known not {save /PRotateSave exch def} if dupPoint neg exch neg exch 4 2 roll translate -1 1 scale translate } bdef /PVFLIP { currentdict /PRotateSave known not {save /PRotateSave exch def} if dupPoint neg exch neg exch 4 2 roll translate 1 -1 scale translate } bdef /PROTATE_END { PRotateSave restore } bdef /PSCALETEXT { AD_PointsToUCS mul div /Xscale exch def AD_PointsToUCS mul div /Yscale exch def currentfont [ Xscale 0 0 Yscale 0 0 ] makefont setfont /AD_fontscaleX AD_fontscaleX Xscale mul def /AD_fontscale AD_fontscale Yscale mul def } bdef /PSTBEG { userdict /md known not { userdict begin /md 0 def end } if PBLACK /PictPostScript true def } bdef /PSTEND { /PictPostScript false def } bdef /mayStroke{ currentlinewidth 0 gt isHairline or { gsave /s_matrix null def /stroke_xform false def DoingWedge {MiterJoin setlinejoin} if currentlinewidth 1 AD_DeviceScale div sub setlinewidth LineWidth LineHeight ne { /s_matrix matrix currentmatrix def 1 LineHeight LineWidth div scale /stroke_xform true def } if stroke stroke_xform {s_matrix setmatrix} if grestore } if /DoingWedge false assign } bdef /RESET_PAT_SEP { /AD_NonSepPat false def } bdef /PFRAME{mayStroke RESET_PAT_SEP}bdef /PPAINT { mayStroke gsave eofill grestore RESET_PAT_SEP }bdef /PERASE { mayStroke gsave eofill grestore RESET_PAT_SEP }bdef /PFILL { mayStroke gsave eofill grestore RESET_PAT_SEP }bdef /PTINT { 100 exch sub 100 div /AldusTint exch def } bdef /PRESETTINT { AldusTint 1 eq not {/AldusTint 1 def }if } bdef /PHORZSHADE { 0 eq {/widehorz}{/narrowhorz }ifelse findfont _OpaquePatternfill } bdef /PVERTSHADE { 0 eq {/widevert}{/narrowvert }ifelse findfont _OpaquePatternfill } bdef /PHATCHSHADE { 0 eq {/widehatch}{/narrowhatch }ifelse findfont _OpaquePatternfill } bdef /PDIAGSHADE { 0 eq {/widediag}{/narrowdiag }ifelse findfont _OpaquePatternfill } bdef /_SetCoords { /y2 local /x2 local /y1 local /x1 local } bdef /_DefinePattern { 7 dict begin /FontDict 9 dict def FontDict begin /cache exch def /key exch def /proc exch cvx def /mtx exch matrix invertmatrix def /height exch def /width exch def /ctm matrix currentmatrix def /ptm matrix identmatrix def /str (12345678901234567890123456789012) def end /FontBBox [ 0 0 FontDict /width get FontDict /height get ] def /FontMatrix FontDict /mtx get def /Encoding StandardEncoding def /FontType 3 def /BuildChar { pop begin FontDict begin width 0 cache { 0 0 width height setcachedevice }{ setcharwidth } ifelse 0 0 moveto width 0 lineto width height lineto 0 height lineto closepath clip newpath gsave proc grestore end end } def FontDict /key get currentdict definefont end } bind def /_Patternpath { dup type /dicttype eq { begin FontDict /ctm get setmatrix }{ exch begin FontDict /ctm get setmatrix concat } ifelse currentdict setfont FontDict begin FontMatrix concat width 0 dtransform round width div exch round width div exch 0 height dtransform round height div exch round height div exch 0 0 transform round exch round exch ptm astore setmatrix pathbbox height div ceiling height mul 4 1 roll width div ceiling width mul 4 1 roll height div floor height mul 4 1 roll width div floor width mul 4 1 roll 2 index sub height div ceiling cvi exch 3 index sub width div ceiling cvi exch 4 2 roll moveto FontMatrix ptm invertmatrix pop { gsave ptm concat dup str length idiv { str show } repeat dup str length mod str exch 0 exch getinterval show grestore 0 height rmoveto } repeat pop end end } bind def /_Patternfill { gsave clip _Patternpath grestore newpath } bind def /_OpaquePatternfill { gsave 0 0 0 0 setcmykcolor fill grestore _Patternfill } bind def /_DefinePatterns { /AD_PatternLW .009375 AD_Resolution mul def /narrowdiagunit .046666 AD_Resolution mul def narrowdiagunit narrowdiagunit [1 0 0 1 0 0] { SquareCap setlinecap 0 narrowdiagunit 2 div moveto narrowdiagunit 2 div 0 lineto narrowdiagunit 2 div narrowdiagunit moveto narrowdiagunit narrowdiagunit 2 div lineto AD_PatternLW setlinewidth stroke } bind /narrowdiag true _DefinePattern pop /widediagunit .073333 AD_Resolution mul def widediagunit widediagunit [1 0 0 1 0 0] { SquareCap setlinecap 0 widediagunit 2 div moveto widediagunit 2 div 0 lineto widediagunit 2 div widediagunit moveto widediagunit widediagunit 2 div lineto AD_PatternLW setlinewidth stroke } bind /widediag true _DefinePattern pop /narrowhorzunit .053333 AD_Resolution mul def narrowhorzunit narrowhorzunit [1 0 0 1 0 0] { SquareCap setlinecap 0 narrowhorzunit 2 div moveto narrowhorzunit narrowhorzunit 2 div lineto AD_PatternLW setlinewidth stroke } bind /narrowhorz true _DefinePattern pop /widehorzunit .106666 AD_Resolution mul def widehorzunit widehorzunit [1 0 0 1 0 0] { SquareCap setlinecap 0 widehorzunit 2 div moveto widehorzunit widehorzunit 2 div lineto AD_PatternLW setlinewidth stroke } bind /widehorz true _DefinePattern pop /narrowvertunit .053333 AD_Resolution mul def narrowvertunit narrowvertunit [1 0 0 1 0 0] { SquareCap setlinecap narrowvertunit 2 div 0 moveto narrowvertunit 2 div narrowvertunit lineto AD_PatternLW setlinewidth stroke } bind /narrowvert true _DefinePattern pop /widevertunit .106666 AD_Resolution mul def widevertunit widevertunit [1 0 0 1 0 0] { SquareCap setlinecap widevertunit 2 div 0 moveto widevertunit 2 div widevertunit lineto AD_PatternLW setlinewidth stroke } bind /widevert true _DefinePattern pop /narrowhatchunit .053333 AD_Resolution mul def narrowhatchunit narrowhatchunit [1 0 0 1 0 0] { SquareCap setlinecap narrowhatchunit 2 div 0 moveto narrowhatchunit 2 div narrowhatchunit lineto 0 narrowhatchunit 2 div moveto narrowhatchunit narrowhatchunit 2 div lineto AD_PatternLW setlinewidth stroke } bind /narrowhatch true _DefinePattern pop /widehatchunit .106666 AD_Resolution mul def widehatchunit widehatchunit [1 0 0 1 0 0] { SquareCap setlinecap widehatchunit 2 div 0 moveto widehatchunit 2 div widehatchunit lineto 0 widehatchunit 2 div moveto widehatchunit widehatchunit 2 div lineto AD_PatternLW setlinewidth stroke } bind /widehatch true _DefinePattern pop } version (23.) anchorsearch {pop pop def}{pop bdef} ifelse systemdict /currentpacking known {AD_OldPacking setpacking} if /AldusDone AldusVersion def end %%EndProcSet %%EndProlog AldusDict2 begin %%BeginSetup letter mark { mark 1.0 1.0 .92 .76 .64 .54 .44 .36 .28 .2 .1 .0 counttomark dup 3 add -1 roll exch 2 sub mul dup floor cvi dup 3 1 roll sub exch dup 3 add index exch 2 add index dup 4 1 roll sub mul add counttomark 1 add 1 roll cleartomark } bind %%Feature: NormalizedTransfer settransfer erasepage cleartomark /#copies 1 def (Station PS; document: computer 6) statusdict /jobname 3 -1 roll put statusdict /waittimeout 300 put 13970 10795 false false false BEGJOB 1270 SETRES 45000 S_WORKING save /SUsv exch def %%EndSetup %%Page: 161 1 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse true S_LOADFONT %%IncludeFont: Palatino-Italic (Palatino-Italic) FTRECODE SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (161) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse true S_LOADFONT %%IncludeFont: Palatino-Roman (Palatino-Roman) FTRECODE SUSAVE /|______Palatino-Roman 180 100 mul 1000 div 6000 16 0.00 0.00 0.00 1.00 (Black) false SET 4817 3757 16.1353 7.9367 (P) 1 0 200 OUT 4987 3757 16.1353 7.9367 (AR) 2 0 475 OUT 5451 3757 16.1353 7.9367 (T II) 4 1 528 OUT ENDPAGE %%Page: 162 2 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (162) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT ENDPAGE %%Page: 163 3 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (163) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 5283 11853 0.0000 -0.0787 (163) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 180 100 mul 1000 div 6000 16 0.00 0.00 0.00 1.00 (Black) false SET 5318 2634 0.0000 0.0000 (6) 1 0 159 OUT 3424 3339 15.9686 7.9367 (What Is Computer Science) 24 3 3946 OUT 4093 3692 16.0569 7.9367 (and Engineering?) 16 1 2608 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 6773 13.6348 4.4092 (Chapter 1 provided a brief sketch of computer science and engi-) 63 10 5397 OUT 2540 6985 13.0566 4.4092 (neering as an intellectual discipline. This chapter elaborates on that) 71 10 5715 OUT 2540 7197 29.1688 4.4092 (discussion, discusses some key structural features of the field, and) 68 9 5715 OUT 2540 7408 12.1511 4.4092 (provides some history on some of the major intellectual accomplish-) 67 9 5715 OUT 2540 7620 27.4848 4.4092 (ments of the field in a few selected areas. For the readerÕs conve-) 68 13 5715 OUT 2540 7832 4.5815 4.4092 (nience, the Chapter 1 section ÒComputer Science and EngineeringÓ is) 67 9 5715 OUT 2540 8043 8.7429 4.4092 (reproduced in its entirety here.) 32 4 2587 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse true S_LOADFONT %%IncludeFont: Palatino-Bold (Palatino-Bold) FTRECODE SUSAVE /|______Palatino-Bold 100 100 mul 1000 div 3520 16 0.00 0.00 0.00 1.00 (Black) false SET 3452 8572 8.7928 4.4092 (COMPUTER SCIENCE AND ENGINEERING) 32 3 3890 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 8890 39.4606 4.4092 (Computational powerÑhowever measuredÑhas increased dra-) 55 4 5397 OUT 2540 9102 20.5059 4.4092 (matically in the last several decades. What is the source of this in-) 70 13 5715 OUT 2540 9313 0.0000 4.4422 (crease?) 7 0 585 OUT 2857 9525 0.4077 4.4092 (The contributions of solid-state physicists and materials scientists) 68 7 5397 OUT 2540 9737 13.0702 4.4092 (to the increase of computer power are undeniable; their efforts have) 68 10 5715 OUT 2540 9948 20.7990 4.4092 (made successive generations of electronic components ever smaller,) 66 7 5715 OUT 2540 10160 8.1818 4.4092 (faster, lighter, and cheaper. But the ability to organize these compo-) 71 11 5715 OUT 2540 10372 36.2804 4.4092 (nents into useful computer hardware \(e.g., processors, storage de-) 66 8 5715 OUT 2540 10583 0.0000 4.1160 (vices, displays\) and to write the software required \(e.g., spreadsheets,) 72 9 5715 OUT 2540 10795 7.7865 4.4092 (electronic mail packages, databases\) to exploit this hardware are pri-) 70 9 5715 OUT 2540 11007 7.5044 4.4092 (marily the fruits of CS&E. Further advances in computer power and) 66 11 5715 OUT 2540 11218 6.0106 4.4092 (usability will also depend in large part on pushing back the frontiers) 70 11 5715 OUT 2540 11430 8.5947 4.4092 (of CS&E.) 8 1 745 OUT ENDPAGE %%Page: 164 4 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (164) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 2540 26.3845 4.4092 (Intellectually, the ÒscienceÓ in Òcomputer science and engineer-) 64 7 5397 OUT 2539 2752 0.4707 4.4092 (ingÓ connotes understanding of computing activities, through mathe-) 67 7 5715 OUT 2539 2963 33.9917 4.4092 (matical and engineering models and based on theory and abstrac-) 63 9 5715 OUT 2539 3175 4.4762 4.4092 (tion. The term ÒengineeringÓ in Òcomputer science and engineeringÓ) 67 9 5715 OUT 2539 3387 0.1445 4.4092 (refers to the practical application, based on abstraction and design, of) 72 10 5715 OUT 2539 3598 23.0922 4.4092 (the scientific principles and methodologies to the development and) 66 8 5715 OUT 2539 3810 22.7919 4.4092 (maintenance of computer systemsÑbe they composed of hardware,) 61 7 5715 OUT 2539 4022 20.2779 4.4092 (software, or both.) 18 2 1493 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 70 100 mul 1000 div 2340 16 0.00 0.00 0.00 1.00 (Black) false SET 4032 3963 0.0000 3.0853 (1) 1 0 65 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 4127 4022 20.2771 4.4093 ( Thus both science and engineering characterize) 48 7 4127 OUT 2539 4233 8.8731 4.4092 (the approach of CS&E professionals to their object of study.) 60 9 4981 OUT 2857 4445 4.1681 4.4092 (What is the object of study? For the physicist, the object of study) 68 13 5397 OUT 2539 4657 29.7834 4.4092 (may be an atom or a star. For the biologist, it may be a cell or a) 67 17 5715 OUT 2539 4868 22.9074 4.4092 (plant. But computer scientists and engineers focus on information,) 67 9 5715 OUT 2539 5080 14.4516 4.4092 (on the ways of representing and processing information, and on the) 66 10 5715 OUT 2539 5292 8.8555 4.4092 (machines and systems that perform these tasks.) 46 6 3960 OUT 2857 5503 0.7964 4.4092 (The key intellectual themes in CS&E are algorithmic thinking, the) 65 9 5397 OUT 2539 5715 42.8592 4.4092 (representation of information, and computer programs. An algo-) 63 8 5715 OUT 2539 5927 21.1694 4.4092 (rithm is an unambiguous sequence of steps for processing informa-) 65 9 5715 OUT 2539 6138 42.5350 4.4092 (tion, and computer scientists and engineers tend to believe in an) 65 10 5715 OUT 2539 6350 20.9257 4.4092 (algorithmic approach to solving problems. In the words of Donald) 65 10 5715 OUT 2539 6562 8.8639 4.4092 (Knuth, one of the leaders of CS&E:) 34 6 2910 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 90 100 mul 1000 div 3000 16 0.00 0.00 0.00 1.00 (Black) false SET 3016 6850 12.9162 3.9683 (CS&E is a field that attracts a different kind of thinker. I believe) 69 13 4921 OUT 2857 7044 13.2454 3.9683 (that one who is a natural computer scientist thinks algorithmically.) 68 9 5080 OUT 2857 7238 31.6231 3.9683 (Such people are especially good at dealing with situations where) 64 9 5080 OUT 2857 7433 2.0231 3.9683 (different rules apply in different cases; they are individuals who can) 70 10 5080 OUT 2857 7627 30.1729 3.9683 (rapidly change levels of abstraction, simultaneously seeing things) 66 7 5080 OUT 2857 7821 8.5351 3.9683 (Òin the largeÓ and Òin the small.Ó) 34 6 2499 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 63 100 mul 1000 div 2100 16 0.00 0.00 0.00 1.00 (Black) false SET 5356 7768 0.0000 0.0000 (2) 1 0 56 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 8131 12.0330 4.4092 (The second key theme is the selection of appropriate representa-) 64 9 5397 OUT 2539 8343 29.6521 4.4092 (tions of information; indeed, designing data structures is often the) 68 9 5715 OUT 2539 8555 25.9003 4.4092 (first step in designing an algorithm. Much as with physics, where) 66 11 5715 OUT 2539 8766 26.4259 4.4092 (picking the right frame of reference and right coordinate system is) 67 10 5715 OUT 2539 8978 32.4789 4.4092 (critical to a simple solution, picking one data structure or another) 68 10 5715 OUT 2539 9190 8.7853 4.4092 (can make a problem easy or hard, its solution slow or fast.) 59 11 4884 OUT 2857 9401 10.5170 4.4092 (The issues are twofold: \(1\) how should the abstraction be repre-) 65 11 5397 OUT 2539 9613 3.1777 4.4092 (sented, and \(2\) how should the representation be properly structured) 68 9 5715 OUT 2539 9825 17.9122 4.4092 (to allow efficient access for common operations? A classic example) 67 10 5715 OUT 2539 10036 7.6383 4.4092 (is the problem of representing parts, suppliers, and customers. Each) 69 10 5715 OUT 2539 10248 2.2923 4.4092 (of these entities is represented by its attributes \(e.g., a customer has a) 74 12 5715 OUT 2539 10460 9.6532 4.4092 (name, an address, a billing number, and so on\). Each supplier has a) 68 13 5715 OUT 2539 10671 13.6860 4.4092 (price list, and each customer has a set of outstanding orders to each) 69 12 5715 OUT 2539 10883 8.5067 4.4092 (supplier. Thus there are five record types: parts, suppliers, custom-) 71 11 5715 OUT 2539 11095 10.7687 4.4092 (ers, price, and orders. The problem is to organize the data so that it) 71 14 5715 OUT 2539 11306 3.4678 4.4092 (is easy to answer questions like: Which supplier has the lowest price) 70 12 5715 OUT ENDPAGE %%Page: 165 5 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (165) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2540 5.3489 4.4092 (on part P?, or, Who is the largest customer of supplier S? By cluster-) 71 14 5715 OUT 2540 2752 31.5344 4.4092 (ing related data together, and by constructing auxiliary indices on) 67 9 5715 OUT 2540 2963 10.3228 4.4092 (the data, it becomes possible to answer such questions quickly with-) 68 10 5715 OUT 2540 3175 8.8488 4.4092 (out having to search the entire database.) 41 6 3373 OUT 2857 3387 10.5037 4.4092 (The two examples below also illustrate the importance of proper) 63 9 5397 OUT 2540 3598 8.8789 4.4092 (representation of information:) 30 2 2492 OUT 2857 3951 0.0000 0.0000 (¥) 1 0 107 OUT 3069 3951 0.0000 -2.2950 (A Òwhite pagesÓ telephone directory is arranged by name: knowing) 65 10 5186 OUT 2540 4163 8.6445 4.4092 (the name, it is possible to look up a telephone number. But a Òcriss-) 70 14 5715 OUT 2540 4374 24.3407 4.4092 (crossÓ directory that is arranged by number is necessary when one) 65 10 5715 OUT 2540 4586 30.4337 4.4092 (needs to identify the caller associated with a given number. Each) 66 11 5715 OUT 2540 4798 2.3488 4.4092 (directory contains the same information, but the different structuring) 70 8 5715 OUT 2540 5009 8.7913 4.4092 (of the information makes each directory useful in its own way.) 62 10 5238 OUT 2857 5221 0.0000 0.0000 (¥) 1 0 107 OUT 3069 5221 0.0000 4.0574 (A circle can be represented by an equation or by a set of points.) 65 13 5186 OUT 2540 5433 17.0326 4.4092 (A circle to be drawn on a display screen may be more conveniently) 65 12 5715 OUT 2540 5644 18.6016 4.4092 (represented as a set of points, whereas an equation may be a better) 67 12 5715 OUT 2540 5856 8.1270 4.4092 (representation if a problem calls for determining if a given point lies) 71 11 5715 OUT 2540 6068 8.8001 4.4092 (inside or outside the circle.) 29 4 2253 OUT 2857 6420 20.7012 4.4092 (A computer program expresses algorithms and structures infor-) 61 7 5397 OUT 2540 6632 27.6537 4.4092 (mation using a programming language. Such languages provide a) 62 9 5715 OUT 2540 6844 22.9140 4.4092 (way to represent an algorithm precisely enough that a Òhigh-levelÓ) 66 9 5715 OUT 2540 7055 37.8695 4.4092 (description \(i.e., one that is easily understood by humans\) can be) 66 10 5715 OUT 2540 7267 13.2397 4.4092 (mechanically translated \(ÒcompiledÓ\) into a Òlow-levelÓ version that) 68 7 5715 OUT 2540 7479 20.7949 4.4092 (the computer can carry out \(ÒexecuteÓ\); the execution of a program) 66 10 5715 OUT 2540 7690 0.8445 4.4092 (by a computer is what allows the algorithm to come alive, instructing) 69 11 5715 OUT 2540 7902 20.4797 4.4092 (the computer to perform the tasks the person has requested. Com-) 65 11 5715 OUT 2540 8114 20.1734 4.4092 (puter programs are thus the essential link between intellectual con-) 68 9 5715 OUT 2540 8325 26.3381 4.4092 (structs such as algorithms and information representations and the) 66 8 5715 OUT 2540 8537 8.8930 4.4092 (computers that enable the information revolution.) 49 5 4154 OUT 2857 8749 21.9524 4.4092 (Computer programs enable the computer scientist and engineer) 60 7 5397 OUT 2540 8960 38.0246 4.4092 (to feel the excitement of seeing something spring to life from the) 66 11 5715 OUT 2540 9172 16.6804 4.4092 (ÒmindÕs eyeÓ and of creating information artifacts that have consid-) 68 9 5715 OUT 2540 9384 2.4837 4.4092 (erable practical utility for people in all walks of life. Fred Brooks has) 74 13 5715 OUT 2540 9595 8.7203 4.4092 (captured the excitement of programming:) 39 4 3459 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 90 100 mul 1000 div 3000 16 0.00 0.00 0.00 1.00 (Black) false SET 3016 9937 5.0071 3.9683 (The programmer, like the poet, works only slightly removed from) 63 9 4921 OUT 2857 10131 38.9072 3.9683 (pure thought-stuff. He builds castles in the air, creating by the) 66 11 5080 OUT 2857 10325 15.9208 3.9683 (exertion of the imagination. . . . Yet the program construct, unlike) 69 12 5080 OUT 2857 10519 13.8416 3.9683 (the poetÕs words, is real in the sense that it moves and works, pro-) 68 13 5080 OUT 2857 10713 23.0586 3.9683 (ducing visible outputs separate from the construct itself. . . . The) 69 12 5080 OUT 2857 10907 4.1458 3.9683 (magic of myth and legend has come true in our time. One types the) 66 14 5080 OUT 2857 11101 30.8250 3.9683 (correct incantation on a keyboard, and a display screen comes to) 64 10 5080 OUT 2857 11295 8.4154 3.9683 (life, showing things that never were nor could be.) 50 8 3748 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 63 100 mul 1000 div 2100 16 0.00 0.00 0.00 1.00 (Black) false SET 6605 11242 0.0000 0.0000 (3) 1 0 56 OUT ENDPAGE %%Page: 166 6 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (166) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 2540 38.2697 4.4092 (Programmers are in equal portions playwright and puppeteer,) 59 7 5397 OUT 2539 2752 8.4925 4.4092 (working as a novelist would if he could make his characters come to) 67 12 5715 OUT 2539 2963 19.3502 4.4092 (life simply by touching the keys of his typewriter. As Ivan Suther-) 68 12 5715 OUT 2539 3175 8.8009 4.4092 (land, the father of computer graphics, has said,) 48 7 3931 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 90 100 mul 1000 div 3000 16 0.00 0.00 0.00 1.00 (Black) false SET 3016 3464 3.8669 3.9683 (Through computer displays I have landed an airplane on the deck) 63 10 4921 OUT 2857 3658 9.0057 3.9683 (of a moving carrier, observed a nuclear particle hit a potential well,) 70 11 5080 OUT 2857 3852 17.9254 3.9683 (flown in a rocket at nearly the speed of light, and watched a com-) 66 13 5080 OUT 2857 4046 8.8515 3.9683 (puter reveal its innermost workings.) 36 4 2733 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 63 100 mul 1000 div 2100 16 0.00 0.00 0.00 1.00 (Black) false SET 5590 3993 0.0000 0.0000 (4) 1 0 56 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 4357 19.4160 4.4092 (Programming is an enormously challenging intellectual activity.) 63 6 5397 OUT 2539 4568 19.1158 4.4092 (Apart from deciding on appropriate algorithms and representations) 65 7 5715 OUT 2539 4780 33.0225 4.4092 (of information, perhaps the most fundamental issue in developing) 64 8 5715 OUT 2539 4992 35.5593 4.4092 (computer programs arises from the fact that the computer \(unlike) 64 9 5715 OUT 2539 5203 10.4025 4.4092 (other similar devices such as non-programmable calculators\) has the) 67 8 5715 OUT 2539 5415 31.5557 4.4092 (ability to take different courses of action based on the outcome of) 67 11 5715 OUT 2539 5627 36.0867 4.4092 (various decisions. Here are three examples of decisions that pro-) 66 10 5715 OUT 2539 5838 8.7219 4.4092 (grammers convey to a computer:) 30 4 2735 OUT 2857 6156 0.0000 0.0000 (¥) 1 0 107 OUT 3069 6156 7.4665 4.4092 (Find a particular name in a list and dial the telephone number) 62 11 5186 OUT 2539 6368 9.0121 4.4092 (associated with it.) 19 2 1498 OUT 2857 6579 0.0000 0.0000 (¥) 1 0 107 OUT 3069 6579 3.6834 4.4092 (If this point lies within this circle then color it black; otherwise) 68 11 5186 OUT 2539 6791 8.8982 4.4092 (color it white.) 15 2 1155 OUT 2857 7003 0.0000 0.0000 (¥) 1 0 107 OUT 3069 7003 0.2421 4.4092 (While the input data are greater than zero, display them on the) 63 11 5186 OUT 2539 7214 0.0000 4.3582 (screen.) 7 0 564 OUT 2857 7532 25.9888 4.4092 (When a program does not involve such decisions, the exact se-) 61 10 5397 OUT 2539 7743 5.8363 4.4092 (quence of steps \(i.e., the Òexecution pathÓ\) is known in advance. But) 70 12 5715 OUT 2539 7955 42.3488 4.4092 (in a program that involves many such decisions, the sequence of) 63 10 5715 OUT 2539 8167 16.7597 4.4092 (steps cannot be known in advance. Thus the programmer must an-) 63 11 5715 OUT 2539 8378 4.5503 4.4092 (ticipate all possible execution paths. The problem is that the number) 70 11 5715 OUT 2539 8590 2.3101 4.4092 (of possible paths grows very rapidly with the number of decisions: a) 69 12 5715 OUT 2539 8802 31.5227 4.4092 (program with only 10 ÒyesÓ or ÒnoÓ decisions can have over 1000) 63 11 5715 OUT 2539 9013 15.4867 4.4092 (possible paths, and one with 20 such decisions can have over 1 mil-) 67 12 5715 OUT 2539 9225 0.0000 4.4415 (lion.) 5 0 363 OUT 2857 9437 18.8929 4.4092 (Algorithmic thinking, information representation, and computer) 62 5 5397 OUT 2539 9648 16.9846 4.4092 (programs are themes central to all subfields of CS&E research. Box) 67 11 5715 OUT 2539 9860 32.0655 4.4092 (6.1 illustrates a typical taxonomy of these subfields. Consider the) 68 10 5715 OUT 2539 10072 14.9779 4.4092 (subarea of computer architecture. Computer engineers must have a) 65 9 5715 OUT 2539 10283 27.2544 4.4092 (basic understanding of the algorithms that will be executed on the) 66 10 5715 OUT 2539 10495 6.2506 4.4092 (computers they design, as illustrated by todayÕs designers of parallel) 70 9 5715 OUT 2539 10707 39.3711 4.4092 (and concurrent computers. Indeed, computer engineers are faced) 63 8 5715 OUT 2539 10918 23.9361 4.4092 (with many decisions that involve the selection of appropriate algo-) 67 9 5715 OUT 2539 11130 34.9915 4.4092 (rithms, since any programmable algorithm can be implemented in) 62 8 5715 OUT 2539 11342 12.9206 4.4092 (hardware. Through a better understanding of algorithms, computer) 65 8 5715 OUT ENDPAGE %%Page: 167 7 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (167) 3 0 264 OUT 0. 0. 10795. 13970. true PBEGIN 0. 0. LW 90. PTINT 2549. 2408. 8246. 7558. PRECT 0.00 0.00 0.00 1.00 (Black) PCOLOR PPAINT PRESETTINT 9. 9. LW 2540. 2399. 8255. 7567. PRECT 0.00 0.00 0.00 1.00 (Black) PCOLOR PFRAME PRESETTINT PEND AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse true S_LOADFONT %%IncludeFont: Optima (Optima) FTRECODE SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3486 2864 8.8319 4.4101 (BOX 6.1) 7 1 631 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse true S_LOADFONT %%IncludeFont: Optima-Bold (Optima-Bold) FTRECODE SUSAVE /|______Optima-Bold 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 4117 2864 8.8319 4.4089 ( ) 1 1 57 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 4174 2864 8.8314 4.4101 ( A TAXONOMY OF SUBFIELDS IN CS&E) 34 8 3135 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3016 3199 0.0000 0.0000 (¥) 1 0 96 OUT 3175 3199 8.7541 4.4101 (Algorithms and data structures) 30 3 2227 OUT 3016 3393 0.0000 0.0000 (¥) 1 0 96 OUT 3175 3393 8.8451 4.4101 (Programming languages) 21 1 1737 OUT 3016 3587 0.0000 0.0000 (¥) 1 0 96 OUT 3175 3587 8.7869 4.4101 (Computer architecture) 21 1 1632 OUT 3016 3781 0.0000 0.0000 (¥) 1 0 96 OUT 3175 3781 8.7144 4.4101 (Numeric and symbolic computation) 32 3 2633 OUT 3016 3975 0.0000 0.0000 (¥) 1 0 96 OUT 3175 3975 8.9093 4.4101 (Operating systems) 17 1 1332 OUT 3016 4169 0.0000 0.0000 (¥) 1 0 96 OUT 3175 4169 8.7012 4.4101 (Software engineering) 20 1 1530 OUT 3016 4363 0.0000 0.0000 (¥) 1 0 96 OUT 3175 4363 8.7613 4.4101 (Databases and information retrieval) 35 3 2611 OUT 3016 4557 0.0000 0.0000 (¥) 1 0 96 OUT 3175 4557 8.6736 4.4101 (Artificial intelligence and robotics) 36 3 2491 OUT 3016 4751 0.0000 0.0000 (¥) 1 0 96 OUT 3175 4751 8.7503 4.4101 (Human-computer interaction) 26 1 2112 OUT 3016 5087 27.3647 4.4101 (Each of these areas involves elements of theory, abstraction, and) 65 9 4921 OUT 2857 5281 10.9633 4.4101 (design. Theory is based on mathematics and follows the mathemati-) 66 10 5080 OUT 2857 5475 18.2296 4.4101 (cianÕs methodology \(defining objects, proving theorems\); abstraction) 68 6 5080 OUT 2857 5669 6.7255 4.4101 (is based on the investigative approach of the scientist \(hypothesizing,) 71 9 5080 OUT 2857 5863 14.1082 4.4101 (making predictions, collecting data\); design is based on the method-) 68 9 5080 OUT 2857 6057 21.4140 4.4101 (ology of the engineer \(defining requirements and specifications, im-) 68 8 5080 OUT 2857 6251 8.7902 4.4101 (plementing a system, testing a system\).) 39 5 2849 OUT 2857 6639 22.9868 4.4101 (SOURCE: Peter Denning, Douglas E. Comer, David Gries, Michael) 62 9 5080 OUT 2857 6833 7.4092 4.4101 (C. Mulder, Allen Tucker, Joe Turner, and Paul R. Young, ÒComputing) 66 10 5080 OUT 2857 7027 1.3681 4.4100 (as a Discipline,Ó ) 18 3 1248 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse true S_LOADFONT %%IncludeFont: Optima-Oblique (Optima-Oblique) FTRECODE SUSAVE /|______Optima-Oblique 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 4105 7027 1.3681 4.4101 (Communications of the ACM,) 26 3 2157 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 6261 7027 1.3681 4.4101 ( Volume 32\(1\), January) 22 3 1676 OUT 2857 7221 9.0198 4.4101 (1989, pp. 9-23.) 15 2 1147 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 8167 6.8657 4.4092 (engineers can better optimize the match between their hardware and) 66 9 5715 OUT 2540 8378 8.7765 4.4092 (the programs that will run on them.) 35 6 2999 OUT 2857 8590 1.5184 4.4092 (Those who design computer languages \(item two in Box 6.1\) with) 62 10 5397 OUT 2540 8802 0.0000 2.8404 (which people write programs also concern themselves with algorithms) 67 8 5715 OUT 2540 9013 4.8619 4.4092 (and information representation. Computer languages often differ in) 68 9 5715 OUT 2540 9225 34.3933 4.4092 (the ease with which various types of algorithms can be expressed) 64 10 5715 OUT 2540 9437 21.4899 4.4092 (and in their ability to represent different types of information. For) 70 11 5715 OUT 2540 9648 10.4285 4.4092 (example, a computer language such as Fortran is particularly conve-) 67 9 5715 OUT 2540 9860 41.9185 4.4092 (nient for implementing iterative algorithms for numerical calcula-) 66 7 5715 OUT 2540 10072 2.3568 4.4092 (tion, whereas Cobol may be much more convenient for problems that) 65 10 5715 OUT 2540 10283 10.9205 4.4092 (call for the manipulation and the input and output of large amounts) 67 11 5715 OUT 2540 10495 21.0091 4.4092 (of textual data. The language Lisp is useful for manipulating sym-) 67 11 5715 OUT 2540 10707 33.8850 4.4092 (bolic relations, while Ada is specifically designed for ÒembeddedÓ) 66 8 5715 OUT 2540 10918 8.8778 4.4092 (computing problems \(e.g., real-time flight control\).) 52 5 4226 OUT 2857 11130 0.7150 4.4092 (The themes of algorithms, programs, and information representa-) 63 7 5397 OUT 2540 11342 3.1262 4.4092 (tion also provide material for intellectual study in and of themselves,) 71 10 5715 OUT ENDPAGE %%Page: 168 8 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (168) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2539 6456 3.8556 4.4092 (often with important practical results. The study of algorithms with-) 70 10 5715 OUT 2539 6667 4.0635 4.4092 (in CS&E is as challenging as any area of mathematics; it has practical) 70 12 5715 OUT 2539 6879 30.1050 4.4092 (importance as well, since improperly chosen algorithms may solve) 64 8 5715 OUT 2539 7091 18.6417 4.4092 (problems in a highly inefficient manner, and problems can have in-) 66 10 5715 OUT 2539 7302 10.4217 4.4092 (trinsic limits on how many steps are needed to solve them \(Box 6.2\).) 68 12 5715 OUT 2539 7514 14.2701 4.4092 (The study of programs is a broad area, ranging from the highly for-) 67 12 5715 OUT 2539 7726 11.8324 4.4092 (mal study of mathematically proving programs correct to very prac-) 66 9 5715 OUT 2539 7937 12.3417 4.4092 (tical considerations regarding tools with which to specify, write, de-) 70 9 5715 OUT 2539 8149 32.9741 4.4092 (bug, maintain, and modify very large software systems \(otherwise) 64 8 5715 OUT 2539 8361 16.2442 4.4092 (called software engineering\). Information representation is the cen-) 69 8 5715 OUT 2539 8572 11.5769 4.4092 (tral theme underlying the study of data structures \(how information) 67 9 5715 OUT 2539 8784 26.7539 4.4092 (can best be represented for computer processing\) and much of hu-) 64 10 5715 OUT 2539 8996 14.1820 4.4092 (man-computer interaction \(how information can best be represented) 65 7 5715 OUT 2539 9207 8.7822 4.4092 (to maximize its utility for human beings\).) 42 6 3466 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Bold 100 100 mul 1000 div 3520 16 0.00 0.00 0.00 1.00 (Black) false SET 3466 9737 8.9047 4.4092 (ABSTRACTIONS IN COMPUTER SYSTEMS) 32 3 3862 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 10054 0.7365 4.4092 (While algorithmic thinking, computer programs, and information) 62 6 5397 OUT 2539 10266 15.3440 4.4092 (representation are the key intellectual themes in the study of CS&E,) 68 10 5715 OUT 2539 10477 12.9648 4.4092 (the design, construction, and operation of computer systems require) 67 8 5715 OUT 2539 10689 9.2623 4.4092 (talents from a wide range of fields, such as electrical engineering for) 71 11 5715 OUT 2539 10901 0.5841 4.4092 (hardware, logic and mathematical analysis for writing programs, and) 67 8 5715 OUT 2539 11112 33.0198 4.4092 (psychology for the design of better user interfaces, to name just a) 67 11 5715 OUT 2539 11324 9.6701 4.4092 (few. This breadth reflects the fact that computer systems are among) 68 11 5715 OUT 0. 0. 10795. 13970. true PBEGIN 0. 0. LW 90. PTINT 2548. 2408. 8245. 5777. PRECT 0.00 0.00 0.00 1.00 (Black) PCOLOR PPAINT PRESETTINT 9. 9. LW 2539. 2399. 8254. 5786. PRECT 0.00 0.00 0.00 1.00 (Black) PCOLOR PFRAME PRESETTINT PEND AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3512 2811 8.8163 4.4102 (BOX 6.2) 7 1 631 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima-Bold 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 4143 2811 8.8163 4.4091 ( ) 1 1 57 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 4200 2811 8.8160 4.4102 ( ABOUT THE STUDY OF ALGORITHMS) 32 7 3082 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3016 3146 36.4404 4.4101 (How many steps are necessary to solve a given problem? This) 60 11 4921 OUT 2857 3340 9.1455 4.4101 (question led to the development of the area known as computational) 66 10 5080 OUT 2857 3534 5.1355 4.4101 (complexity. Consider alphabetizing a list of 1000 names. A straight-) 70 11 5080 OUT 2857 3728 30.4094 4.4101 (forward algorithm \(Òinsertion sortÓ\) takes on the order of a million) 68 10 5080 OUT 2857 3922 32.2482 4.4102 (\(i.e., 1000 ) 12 2 859 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse false S_LOADFONT (Symbol) FTRENAME SUSAVE /|______Symbol 90 100 mul 1000 div 2820 0 0.00 0.00 0.00 1.00 (Black) false SET 3716 3922 0.0000 3.9703 (´) 1 0 91 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3807 3922 32.2488 4.4102 ( 1000\) one-to-one comparisons of names in the worst) 51 8 4130 OUT 2857 4116 39.6273 4.4101 (case, but a clever algorithm \(Òheap sortÓ\) would take just 10,000) 65 10 5080 OUT 2857 4310 8.5397 2.5061 (comparisons in the worst case \(1000 ) 36 6 2682 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Symbol 90 100 mul 1000 div 2820 0 0.00 0.00 0.00 1.00 (Black) false SET 5539 4310 0.0000 2.0653 (´) 1 0 89 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 5628 4310 8.5394 2.5061 ( log) 4 1 274 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 63 100 mul 1000 div 1980 16 0.00 0.00 0.00 1.00 (Black) false SET 5903 4363 0.0000 1.7550 (2) 1 0 64 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 5966 4310 8.5397 2.5061 ( 1000 or about 1000 ) 20 5 1549 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Symbol 90 100 mul 1000 div 2820 0 0.00 0.00 0.00 1.00 (Black) false SET 7515 4310 0.0000 2.0653 (´) 1 0 89 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 7604 4310 8.5394 2.5084 ( ) 1 1 55 OUT 7659 4310 0.0000 4.4108 (10\).) 4 0 278 OUT 2857 4504 31.5269 4.4101 (Further, this is the best possible result, for it has been shown that) 69 12 5080 OUT 2857 4698 3.7929 4.4100 (sorting a list of ) 18 4 1135 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima-Oblique 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3992 4698 0.0000 4.4103 (n) 1 0 93 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 4085 4698 3.7930 4.4100 ( items requires ) 16 3 1123 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima-Oblique 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 5208 4698 0.0000 4.4103 (n) 1 0 93 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 5300 4698 3.7927 4.4103 ( log) 4 1 277 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 63 100 mul 1000 div 1980 16 0.00 0.00 0.00 1.00 (Black) false SET 5578 4751 0.0000 3.0877 (2) 1 0 65 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 5642 4698 3.7927 4.4103 ( ) 1 1 52 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima-Oblique 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 5695 4698 0.0000 4.4103 (n) 1 0 93 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 5787 4698 3.7929 4.4102 ( pair-wise comparisons in the) 29 4 2150 OUT 2857 4892 33.4688 4.4101 (worst case, no matter what algorithm is used. Theoreticians have) 65 10 5080 OUT 2857 5087 11.3827 4.4101 (found arguments that apply to whole classes of algorithms and prob-) 67 10 5080 OUT 2857 5281 43.4721 4.4101 (lems, opening questions about computing that have not yet been) 62 9 5080 OUT 2857 5475 0.0000 4.3860 (solved.) 7 0 512 OUT ENDPAGE %%Page: 169 9 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (169) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2540 41.0483 4.4092 (the most complicated objects ever created by human beings. For) 63 10 5715 OUT 2540 2752 0.7451 4.4092 (example, the fastest computers today have around 100 billion transis-) 69 9 5715 OUT 2540 2963 17.8215 4.4092 (tors, while the personal computer on oneÕs desk may have ÒonlyÓ a) 65 11 5715 OUT 2540 3175 15.0631 4.4092 (few million. People routinely use computer programs that are hun-) 66 10 5715 OUT 2540 3387 30.1999 4.4092 (dreds of thousands of lines long, and the largest software systems) 66 10 5715 OUT 2540 3598 18.6082 4.4092 (involve tens of millions of lines; printed at 50 lines per paper page,) 70 12 5715 OUT 2540 3810 8.7952 4.4092 (such a system might weigh several tons.) 39 6 3357 OUT 2857 4022 1.8461 4.4092 (One of the most effective ways to cope with such complexity is to) 65 12 5397 OUT 2540 4233 20.8673 4.4092 (use abstractions. Abstraction is a generic technique that allows the) 69 10 5715 OUT 2540 4445 26.4077 4.4092 (human scientist or engineer to focus only on certain features of an) 67 11 5715 OUT 2540 4657 15.8703 4.4092 (object or artifact while hiding the others. However, while scientists) 70 10 5715 OUT 2540 4868 31.3119 4.4092 (in other disciplines typically use abstractions as a way to simplify) 68 10 5715 OUT 2540 5080 28.6032 4.4092 (calculations for purposes of analysis, those in CS&E are concerned) 66 9 5715 OUT 2540 5292 20.5305 4.4092 (with abstractions for purposes of synthesis: to build working com-) 67 10 5715 OUT 2540 5503 3.8103 4.4092 (puter systems. Other engineering disciplines also use abstractions as) 70 9 5715 OUT 2540 5715 0.0000 4.1465 (the basis of synthesis, but the ÒstuffÓ of these disciplinesÑengineered) 71 9 5715 OUT 2540 5927 19.4491 4.4092 (and created artifactsÑis ultimately governed by the tangible reality) 68 8 5715 OUT 2540 6138 3.5412 4.4092 (of nature, which itself imposes structure on these abstractions. Com-) 70 10 5715 OUT 2540 6350 17.8960 4.4092 (puter programs are not similarly limited; instead, they are built out) 69 10 5715 OUT 2540 6562 31.7152 4.4092 (of ideas and information whose structuring is constrained only by) 65 9 5715 OUT 2540 6773 15.8405 4.4092 (human imagination. This extraordinary flexibility in structuring in-) 69 8 5715 OUT 2540 6985 8.7645 4.4092 (formation has no analog in the material world.) 46 7 3895 OUT 2857 7197 37.3687 4.4092 (The focus of the computer scientist or engineer in creating an) 62 10 5397 OUT 2540 7408 31.4789 4.4092 (abstraction is to hide the complexity of operation Òunderneath the) 66 9 5715 OUT 2540 7620 30.8442 4.4092 (abstractionÓ while offering a simple and useful set of services Òon) 67 10 5715 OUT 2540 7832 9.0524 4.4092 (top of it.Ó Using such abstractions is CS&EÕs principal technique for) 70 11 5715 OUT 2540 8043 42.3362 4.4092 (organizing and constructing very sophisticated computer systems.) 64 6 5715 OUT 2540 8255 17.4930 4.4092 (One particularly useful abstraction uses hardware, system software,) 67 7 5715 OUT 2540 8467 21.2728 4.4092 (and application software as successive layers on which useful com-) 66 9 5715 OUT 2540 8678 8.8882 4.4092 (puter systems can be built.) 27 4 2230 OUT 2857 8890 20.2963 4.4092 (At the center of all computer systems is hardware, i.e., the por-) 65 11 5397 OUT 2540 9102 14.7373 4.4092 (tion of a computer system that one can see and touch. Hardware is) 66 13 5715 OUT 2540 9313 8.9189 4.4092 (divided into three principal components:) 40 4 3403 OUT 2857 9631 0.0000 0.0000 (¥) 1 0 107 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 3069 9631 0.0000 4.4093 (Processors.) 11 0 840 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 3909 9631 3.5497 4.4092 ( Processors perform the arithmetic and logical oper-) 53 8 4346 OUT 2540 9842 18.1972 4.4092 (ations, much like the arithmetic operations available in a hand-held) 68 9 5715 OUT 2540 10054 37.4314 4.4092 (calculator. Processors also handle conditional behavior, executing) 67 7 5715 OUT 2540 10266 15.3669 4.4092 (one or another set of operations depending on the outcome of some) 65 11 5715 OUT 2540 10477 0.0000 4.3755 (decision.) 9 0 726 OUT 2857 10689 0.0000 0.0000 (¥) 1 0 107 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 3069 10689 27.3943 4.4093 (Memory \(short term and long term\).) 34 5 2883 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 5952 10689 27.3943 4.4092 ( Memory hardware is like) 25 5 2303 OUT 2540 10901 8.2606 4.4092 (the memory function of a calculator, since it can be used to save and) 69 13 5715 OUT 2540 11112 3.5075 4.4092 (later retrieve information. Such information may be lost in a calcula-) 71 11 5715 OUT 2540 11324 2.5171 4.4092 (tor when the power is turned off, as it is in the short-term memory of) 70 14 5715 OUT ENDPAGE %%Page: 170 10 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (170) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2539 2540 30.3906 4.4092 (most computer systems. Computer systems also need a long-term) 62 9 5715 OUT 2539 2752 8.7896 4.4092 (memory that doesnÕt forget when the power is lost.) 50 8 4277 OUT 2857 2963 0.0000 0.0000 (¥) 1 0 107 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 3069 2963 40.3820 4.4093 (Communication \(user-machine and machine-machine\).) 49 3 4240 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 7309 2963 40.3820 4.4091 ( For com-) 10 3 946 OUT 2539 3175 18.4699 4.4092 (puters to be useful, they must be able to communicate with people,) 66 11 5715 OUT 2539 3387 20.7460 1.0584 (and so display screens and keyboards are critical components of com-) 68 10 5715 OUT 2539 3598 0.0000 1.0584 (puter) 5 0 429 OUT 2968 3598 10.9740 4.4092 ( systems. For maximum usefulness, computers must be able to) 60 10 5286 OUT 2539 3810 0.0000 -0.9389 (communicate with other computers, and so computers are often equipped) 69 9 5715 OUT 2539 4022 36.4769 4.4092 (with modems or other network connections that can transmit and) 62 9 5715 OUT 2539 4233 8.8328 4.4092 (receive data to and from other computers.) 41 6 3504 OUT 2857 4551 19.3461 4.4092 (Readers familiar with personal computers are likely to have en-) 63 9 5397 OUT 2539 4762 17.0182 4.4092 (countered the technical names or brand names for these three types) 66 10 5715 OUT 2539 4974 5.5875 4.4092 (of hardware. Personal computers might use an Intel 80486 processor) 67 10 5715 OUT 2539 5186 2.1933 4.4092 (as the processor hardware, dynamic random access memory \(DRAM\)) 62 8 5715 OUT 2539 5397 0.0000 0.4693 (as the short-term memory hardware, and disks as the long-term memory) 68 10 5715 OUT 2539 5609 1.1238 4.4092 (hardware. The user-computer communication hardware for personal) 64 7 5715 OUT 2539 5821 4.1623 4.4092 (computers is the keyboard, mouse, and video screen, while examples) 66 9 5715 OUT 2539 6032 0.0000 4.0298 (of machine-machine communication hardware are telephone modems) 62 6 5715 OUT 2539 6244 8.7562 4.4092 (and networks such as Appletalk and Ethernet.) 44 6 3850 OUT 2857 6456 37.2552 4.4092 (While the characteristics of the underlying hardware are what) 61 8 5397 OUT 2539 6667 0.7584 4.4092 (ultimately determine the computational power of a computer system,) 66 8 5715 OUT 2539 6879 0.0000 3.6625 (direct manipulation of hardware would be cumbersome, difficult, and) 67 8 5715 OUT 2539 7091 9.3883 4.4092 (error-prone, a lesson learned in the earliest days of computing when) 68 10 5715 OUT 2539 7302 2.8321 4.4092 (programmers literally connected wires to program a computer. Thus) 66 9 5715 OUT 2539 7514 19.4604 4.4092 (computer scientists and engineers construct a layer of Òsystem soft-) 68 9 5715 OUT 2539 7726 8.8230 4.4092 (wareÓ around the hardware.) 26 3 2364 OUT 2857 7937 12.4081 4.4092 (System software hides the details of machine operation from the) 63 9 5397 OUT 2539 8149 19.5160 4.4092 (user, while providing services that most users will require, services) 69 9 5715 OUT 2539 8361 18.2654 4.4092 (such as displaying information on a screen, reading and writing in-) 67 10 5715 OUT 2539 8572 22.3860 4.4092 (formation to and from a disk drive, and so on. System software is) 66 13 5715 OUT 2539 8784 8.9007 4.4092 (commonly divided into three components:) 39 4 3529 OUT 2857 9102 0.0000 0.0000 (¥) 1 0 107 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 3069 9102 11.6453 4.4092 (Operating systemÑ) 17 1 1532 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 4601 9102 11.6457 4.4093 (software that controls the hardware and or-) 43 6 3654 OUT 2539 9313 4.9566 4.4092 (chestrates how other programs work together. The operating system) 66 9 5715 OUT 2539 9525 2.3029 4.4092 (may also include network software that allows computers to commu-) 65 9 5715 OUT 2539 9737 8.8837 4.4092 (nicate with one another.) 24 3 2010 OUT 2857 9948 0.0000 0.0000 (¥) 1 0 107 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 3069 9948 0.0000 4.4091 (ToolsÑ) 6 0 585 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 3654 9948 24.3181 4.4092 (the software \(e.g., compilers, debuggers, linkers, data-) 56 6 4601 OUT 2539 10160 34.3778 4.4092 (base management systems\) that allows programmers to write pro-) 62 8 5715 OUT 2539 10372 5.6230 4.4092 (grams that will perform a specific task. Compilers and linkers trans-) 70 11 5715 OUT 2539 10583 9.1951 4.4092 (late Òhigh-levelÓ languages into machine language, i.e., the ones and) 69 9 5715 OUT 2539 10795 13.1193 4.4092 (zeros that govern machine operation at the lowest level. Debuggers) 67 10 5715 OUT 2539 11007 27.9511 4.4092 (help programmers to find errors in their work. Database manage-) 64 10 5715 OUT 2539 11218 8.8502 4.4092 (ment systems store, organize, and retrieve data conveniently.) 61 7 5099 OUT 2857 11430 0.0000 0.0000 (¥) 1 0 107 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 3069 11430 38.1575 4.4092 (User interfaceÑ) 15 1 1278 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 4347 11430 38.1575 4.4092 (the software that enables the user to interact) 46 7 3907 OUT 2539 11642 8.9342 4.4092 (with the machine.) 17 2 1487 OUT ENDPAGE %%Page: 171 11 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (171) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 2540 22.3834 4.4092 (Once again, personal computer users are likely already familiar) 63 8 5397 OUT 2540 2752 1.8069 4.4092 (with the brand names of these pieces of system software. MS-DOS in) 67 12 5715 OUT 2540 2963 23.0842 4.4092 (IBM Personal Computers and the System in Macintoshes are exam-) 62 9 5715 OUT 2540 3175 19.7070 4.4092 (ples of operating system software; Novell is the brand name of one) 66 11 5715 OUT 2540 3387 12.7346 4.4092 (type of widely used networking software; Dbase IV is a popular da-) 66 11 5715 OUT 2540 3598 2.3555 4.4092 (tabase management system; Microsoft Basic and Borland C are exam-) 65 9 5715 OUT 2540 3810 29.6662 4.4092 (ples of compiler system software; and Microsoft Windows and the) 63 9 5715 OUT 2540 4022 8.8671 4.4092 (Macintosh Desktop are examples of user interface system software.) 65 8 5587 OUT 2857 4233 25.8122 4.4092 (While the services provided by system software are usually re-) 62 9 5397 OUT 2540 4445 19.4557 4.4092 (quired by all users, they are not in themselves sufficient to provide) 69 11 5715 OUT 2540 4657 36.3936 4.4092 (computing that is useful in solving the problems of the end user,) 65 11 5715 OUT 2540 4868 32.6546 4.4092 (such as the secretary or the accountant or the pilot. Software de-) 67 12 5715 OUT 2540 5080 13.5857 4.4092 (signed to solve specific problems is called applications software; ex-) 70 9 5715 OUT 2540 5292 29.1988 4.4092 (amples include word processors, spreadsheets, climate models, au-) 65 7 5715 OUT 2540 5503 21.5338 4.4092 (tomatic teller machines, electronic mail, airline reservation systems,) 70 7 5715 OUT 2540 5715 36.6693 4.4092 (engineering structural analysis programs, real-time aircraft control) 68 6 5715 OUT 2540 5927 7.0413 4.4092 (systems, and so on. Such software makes use of the services provid-) 68 12 5715 OUT 2540 6138 4.2561 4.4092 (ed by system software as fundamental building blocks linked togeth-) 67 9 5715 OUT 2540 6350 25.5653 4.4092 (er in such a way that useful computing can be done. Examples of) 64 13 5715 OUT 2540 6562 6.4616 4.4092 (applications software include WordPerfect and Word \(word-process-) 65 6 5715 OUT 2540 6773 0.0000 3.1112 (ing applications\) and Lotus 1-2-3 and Excel \(spreadsheet applications\),) 71 8 5715 OUT 2540 6985 12.2524 4.4092 (and there are as many varieties of applications software as there are) 69 11 5715 OUT 2540 7197 8.8512 4.4092 (different computing problems to solve.) 38 4 3242 OUT 2857 7408 25.9019 4.4092 (The frequent use of system software services by all varieties of) 64 10 5397 OUT 2540 7620 0.0000 4.1477 (applications software underscores an important economic point: pro-) 68 8 5715 OUT 2540 7832 33.7009 4.4092 (viding these services in system software means that developers of) 65 9 5715 OUT 2540 8043 16.0718 4.4092 (applications software need not spend their time and effort in devel-) 68 10 5715 OUT 2540 8255 0.5747 4.4092 (oping these services, but rather can concentrate on programming that) 68 9 5715 OUT 2540 8467 29.5874 4.4092 (is specifically related to solving the problem of interest to the end) 69 11 5715 OUT 2540 8678 21.0584 4.4092 (user. The result is that it becomes much easier to develop applica-) 68 12 5715 OUT 2540 8890 0.0000 3.2388 (tions, leading to more and higher-quality computing applications than) 69 8 5715 OUT 2540 9102 8.7050 4.4092 (might otherwise be expected.) 28 3 2431 OUT 2857 9313 33.5087 4.4092 (This description of layering a computer system into hardware,) 61 8 5397 OUT 2540 9525 32.1554 4.4092 (system software, and applications software is a simple example of) 65 9 5715 OUT 2540 9737 0.0000 4.4091 (abstraction.) 12 0 959 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 70 100 mul 1000 div 2340 16 0.00 0.00 0.00 1.00 (Black) false SET 3499 9678 0.0000 3.0876 (5) 1 0 65 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 3594 9737 8.0711 4.4092 ( \(Box 6.3 explains why abstraction is so powerful a tool) 57 11 4661 OUT 2540 9948 15.3288 4.4092 (for the computer scientist and engineer.\) But it suffices to illustrate) 72 11 5715 OUT 2540 10160 36.8394 4.4092 (one very important use of abstraction in computer systems: each) 64 10 5715 OUT 2540 10372 20.8700 4.4092 (layer provides the capability to specify that certain tasks be carried) 70 10 5715 OUT 2540 10583 23.7293 4.4092 (out without specifying ) 23 3 1987 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 4527 10583 0.0000 4.4094 (how) 3 0 307 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 4834 10583 23.7301 4.4093 ( they should be carried out. In general,) 41 8 3421 OUT 2540 10795 6.7272 4.4092 (computing artifacts embody many different abstractions that capture) 67 7 5715 OUT 2540 11007 8.7697 4.4092 (many different levels of detail.) 32 4 2553 OUT 2857 11218 8.8428 4.4092 (A good abstraction is one that captures the important features of) 65 10 5397 OUT 2540 11430 28.9749 4.4092 (an artifact and allows the user to ignore the irrelevant ones. \(The) 68 12 5715 OUT 2540 11642 15.4454 4.4092 (features decided to be important collectively constitute the interface) 70 8 5715 OUT ENDPAGE %%Page: 172 12 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (172) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT 0. 0. 10795. 13970. true PBEGIN 0. 0. LW 90. PTINT 2548. 2408. 8245. 11227. PRECT 0.00 0.00 0.00 1.00 (Black) PCOLOR PPAINT PRESETTINT 9. 9. LW 2539. 2399. 8254. 11236. PRECT 0.00 0.00 0.00 1.00 (Black) PCOLOR PFRAME PRESETTINT PEND AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3702 2793 8.8134 4.4101 (BOX 6.3 WHY IS ABSTRACTION POSSIBLE?) 38 7 3391 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 3016 3182 17.5400 4.4101 (Although abstractions are pervasive in the construction of modern) 65 8 4921 OUT 2857 3376 34.6951 4.4101 (computer systems, it is not obvious that abstractions should work.) 66 9 5080 OUT 2857 3570 11.6786 4.4101 (How is it that the abstractions between the user and the machine do) 67 12 5080 OUT 2857 3764 8.8470 4.4101 (not reduce the available computational capability?) 50 5 3718 OUT 3016 3958 38.3033 4.4101 (Results from the theory of computation provide the answer. In) 62 10 4921 OUT 2857 4152 20.8635 4.4101 (1936, the British mathematician Alan Turing explored the computa-) 65 8 5080 OUT 2857 4346 30.2629 4.4101 (tional capabilities of an abstract computing device, now known as) 65 9 5080 OUT 2857 4540 9.1239 4.4101 (the Turing machine. This work laid the scientific foundations for the) 70 11 5080 OUT 2857 4734 1.2639 4.4101 (age of computing and led directly to modern computers with internal-) 68 10 5080 OUT 2857 4928 5.2529 4.4101 (ly stored programs. Turing showed that there exist universal comput-) 69 10 5080 OUT 2857 5122 31.2945 4.4102 (ing machines that can simulate the performance of ) 50 8 3973 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima-Oblique 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 6830 5122 0.0000 4.4100 (any) 3 0 260 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Optima 90 100 mul 1000 div 2820 16 0.00 0.00 0.00 1.00 (Black) false SET 7090 5122 31.2956 4.4100 ( computing) 10 1 847 OUT 2857 5316 36.6613 4.4101 (machine, provided the universal machine has a description of the) 64 9 5080 OUT 2857 5510 0.0000 0.6023 (instruction set of the machine being simulated and has sufficient memory.) 73 10 5080 OUT 3016 5704 1.3724 4.4101 (This crucial insight underlies much of computing, and is fundamen-) 66 9 4921 OUT 2857 5898 8.7113 4.4101 (tal to:) 7 1 423 OUT 3016 6286 0.0000 0.0000 (¥) 1 0 96 OUT 3174 6286 15.9257 4.4101 (the interchangeability of hardware and software, since a univer-) 64 8 4762 OUT 2857 6480 29.2460 4.4101 (sal machine with a very small instruction set \(i.e., very little hard-) 70 11 5080 OUT 2857 6674 18.1008 4.4101 (ware\) can simulate, with adequate programming, a computer with a) 64 9 5080 OUT 2857 6868 8.7874 4.4101 (much larger instruction set.) 28 3 2006 OUT 3016 7062 0.0000 0.0000 (¥) 1 0 96 OUT 3174 7062 10.9347 4.4101 (the existence of high-level computer languages. Such languages) 63 8 4762 OUT 2857 7256 5.5863 4.4101 (are much more easily understood by human beings than are the Òma-) 65 11 5080 OUT 2857 7450 7.1521 4.4101 (chine languageÓ of ones and zeroes that machines can execute. Pro-) 67 11 5080 OUT 2857 7644 2.1298 4.4101 (grams written in these languages can be translated into the equivalent) 70 10 5080 OUT 2857 7838 3.2621 4.4101 (machine language programs, yielding the desired result without sacri-) 69 8 5080 OUT 2857 8032 8.7465 4.4101 (ficing expressive power.) 24 2 1768 OUT 3016 8226 0.0000 0.0000 (¥) 1 0 96 OUT 3174 8226 0.0000 4.3372 (the ubiquity of computer Òbugs,Ó i.e., mistakes in programs. Bugs) 66 10 4762 OUT 2857 8420 29.0621 4.4101 (are possible because a computer that is universal can perform any) 65 10 5080 OUT 2857 8614 12.0442 4.4101 (possible computation, the wrong ones as well as the right ones. But) 68 12 5080 OUT 2857 8808 21.1745 4.4101 (the difference between a program that does the right thing and one) 66 11 5080 OUT 2857 9002 4.3722 4.4101 (that does the wrong thing may be as small as one bit; a small mistake) 69 14 5080 OUT 2857 9196 21.2047 4.4101 (in a program can lead the computer to execute a computation very) 64 11 5080 OUT 2857 9390 8.7159 4.4101 (different from the one intended.) 32 4 2342 OUT 3016 9778 26.4189 4.4101 (In general, the different layers of the computing system tame the) 65 10 4921 OUT 2857 9973 15.8010 4.4101 (raw universal power of the hardware by hiding \(but not eliminating\)) 67 10 5080 OUT 2857 10167 15.7871 4.4101 (the sensitivity of the underlying machine to the exact formulation of) 69 10 5080 OUT 2857 10361 2.0017 4.4101 (its program. Successive layers make the computer much easier to use) 68 11 5080 OUT 2857 10555 33.4456 4.4101 (and permit the use of higher-level languages in which the desired) 65 10 5080 OUT 2857 10749 0.0000 4.3346 (computation can still be described very precisely but with less chance) 70 10 5080 OUT 2857 10943 8.9408 4.4101 (of error.) 9 1 591 OUT ENDPAGE %%Page: 173 13 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (173) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2540 3.0581 4.4092 (of the artifact to the outside world.\) By hiding details, an abstraction) 73 12 5715 OUT 2540 2752 28.8701 4.4092 (can make working with an artifact easier and less subject to error.) 67 11 5715 OUT 2540 2963 0.0000 0.0869 (But hiding details is not cost freeÑin a particular programming problem,) 72 10 5715 OUT 2540 3175 17.5656 4.4092 (access to a hidden detail might in fact be quite useful to the person) 69 13 5715 OUT 2540 3387 30.7719 4.4092 (who will use that abstraction. Thus deciding how to construct an) 65 11 5715 OUT 2540 3598 10.8905 4.4092 (abstraction \(i.e., deciding what is important and irrelevant\) is one of) 71 10 5715 OUT 2540 3810 8.7711 4.4092 (the most challenging intellectual issues in CS&E.) 49 6 4058 OUT 2857 4022 0.9741 4.4092 (A simple example of this issue is the writing of a system program) 65 12 5397 OUT 2540 4233 18.6130 4.4092 (that displays data on a screen. The program may allow the user to) 66 13 5715 OUT 2540 4445 10.2932 4.4092 (specify the size of the screen, or it may assume that Òone screen size) 70 13 5715 OUT 2540 4657 24.8954 4.4092 (fits all.Ó In the first case, the user is given control over the screen) 72 14 5715 OUT 2540 4868 20.2985 4.4092 (size, at the cost of having to remember to specify it every time this) 69 13 5715 OUT 2540 5080 0.0000 4.1317 (program is used. In the second case, the user does not need to choose) 70 14 5715 OUT 2540 5292 26.3789 4.4092 (the screen size, but also loses the flexibility to use the program on) 69 12 5715 OUT 2540 5503 8.8394 4.4092 (screens of different size.) 26 3 2011 OUT 2857 5715 28.4712 4.4092 (A second challenging issue is how to manage all of the details) 62 11 5397 OUT 2540 5927 14.6154 4.4092 (that are hidden. The fact that they are hidden beneath the interface) 69 12 5715 OUT 2540 6138 25.9198 4.4092 (does not mean that they are irrelevant, but only that the computer) 66 11 5715 OUT 2540 6350 10.5070 4.4092 (scientist or engineer must design and implement approaches to han-) 66 9 5715 OUT 2540 6562 14.7803 4.4092 (dle these details Òautomatically,Ó i.e., without external specification.) 72 7 5715 OUT 2540 6773 24.4659 4.4092 (Decisions about how best to handle these details are subject to nu-) 67 11 5715 OUT 2540 6985 0.0000 4.3437 (merous trade-offs. For example, a designer of computer systems may) 67 10 5715 OUT 2540 7197 3.9333 4.4092 (face the question of whether to implement a certain function in hard-) 69 11 5715 OUT 2540 7408 9.4485 4.4092 (ware or in software. By implementing the function in hardware, the) 67 11 5715 OUT 2540 7620 2.3768 4.4092 (designer gains speed of execution, but at the cost of making the func-) 70 12 5715 OUT 2540 7832 29.2224 4.4092 (tion very difficult to change. A function implemented in software) 66 10 5715 OUT 2540 8043 8.8188 4.4092 (executes more slowly, but is much easier to change.) 51 8 4309 OUT 2857 8255 0.0000 2.9915 (Abstractions enable computer scientists and engineers to deal with) 66 8 5397 OUT 2540 8467 16.7142 4.4092 (large differences of scale. At the highest level of abstraction, a per-) 72 12 5715 OUT 2540 8678 9.0876 4.4092 (son editing a document in a word-processing program needs only to) 65 10 5715 OUT 2540 8890 28.7937 4.4092 (mark the start and the end of the block of text and then press the) 66 14 5715 OUT 2540 9102 28.6732 4.4092 (DEL key to delete the block of text. But these few keystrokes can) 66 13 5715 OUT 2540 9313 19.5262 4.4092 (initiate the execution of thousands or tens of thousands of basic in-) 69 11 5715 OUT 2540 9525 5.2620 4.4092 (structions in the machineÕs hardware. Only by inserting abstractions) 69 9 5715 OUT 2540 9737 36.9628 4.4092 (intermediate between the userÕs keystrokes and the basic machine) 64 8 5715 OUT 2540 9948 27.1521 4.4092 (instructions can those keystrokes be predictably translated into the) 68 8 5715 OUT 2540 10160 41.8605 4.4092 (correct set of instructions. Thus the programmer who writes the) 64 10 5715 OUT 2540 10372 23.8673 4.4092 (word-processing program will provide one abstraction \(in this case) 66 8 5715 OUT 2540 10583 11.0097 4.4092 (called a subroutine\) that will delete the block from the screen, a sec-) 71 12 5715 OUT 2540 10795 4.6857 4.4092 (ond to reformat and redisplay the remaining text, and a third to save) 69 12 5715 OUT 2540 11007 1.2203 4.4092 (the changed document to disk. Within each of these abstractions will) 69 11 5715 OUT 2540 11218 25.2142 4.4092 (be lower-level abstractions that perform smaller tasks; each succes-) 68 8 5715 OUT ENDPAGE %%Page: 174 14 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (174) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2539 2540 4.5405 4.4092 (sive lower-level abstraction will control the execution of ever smaller) 71 9 5715 OUT 2539 2752 8.8485 4.4092 (numbers of basic machine instructions.) 38 4 3241 OUT 2857 2963 19.1510 4.4092 (Abstractions are also central to dealing with problems of differ-) 65 9 5397 OUT 2539 3175 0.0000 2.2807 (ent size \(e.g., searching a database with a thousand or a billion records\)) 74 12 5715 OUT 2539 3387 12.8059 4.4092 (or hardware of different capability \(e.g., a computer that performs a) 69 10 5715 OUT 2539 3598 5.1658 4.4092 (million or 10 billion calculations per second\). Ideally, the user ought) 72 11 5715 OUT 2539 3810 9.4729 4.4092 (to be presented with the same high-level abstraction in each of these) 69 11 5715 OUT 2539 4022 26.8453 4.4092 (cases, while the differences in problem size or hardware capability) 67 9 5715 OUT 2539 4233 19.6553 4.4092 (ought to be handled at lower levels of abstraction. In other words,) 68 12 5715 OUT 2539 4445 3.9694 4.4092 (the user ought not be obligated to change his or her approach simply) 68 12 5715 OUT 2539 4657 14.9588 4.4092 (because the problem changes in size or the hardware becomes more) 64 10 5715 OUT 2539 4868 0.0000 4.3540 (capable.) 8 0 669 OUT 2857 5080 0.0000 4.3692 (However, in practice today, users must often pay logical and con-) 65 10 5397 OUT 2539 5292 19.2359 4.4092 (ceptual attention to differences in hardware capability and problem) 67 8 5715 OUT 2539 5503 35.5606 4.4092 (size. Querying a database of a billion records requires a strategy) 67 11 5715 OUT 2539 5715 34.0429 4.4092 (different from one for querying a database of a thousand records,) 65 10 5715 OUT 2539 5927 13.1881 4.4092 (since narrowing the search is much more difficult in the larger case;) 69 11 5715 OUT 2539 6138 39.5285 4.4092 (writing a program to run on a computer that performs 10 billion) 63 11 5715 OUT 2539 6350 36.0112 4.4092 (calculations per second most likely requires an approach different) 66 8 5715 OUT 2539 6562 14.9153 4.4092 (from one for a program written to run on a computer that performs) 65 12 5715 OUT 2539 6773 8.8852 4.4092 (one million calculations per second, since the former is likely to be a) 71 12 5715 OUT 2539 6985 8.7706 4.4092 (parallel computer and the latter a serial computer.) 51 7 4193 OUT 2857 7197 1.6128 4.4092 (Bridging the gap between todayÕs practice and the idealÑmaking) 62 8 5397 OUT 2539 7408 28.9006 4.4092 (the Òought-to-beÕsÓ come trueÑis the goal of much CS&E research) 63 9 5715 OUT 2539 7620 0.0000 4.4568 (today.) 6 0 514 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Bold 100 100 mul 1000 div 3520 16 0.00 0.00 0.00 1.00 (Black) false SET 3899 8361 8.6659 4.4092 (SELECTED ACCOMPLISHMENTS) 24 1 2995 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 8678 13.8580 4.4092 (This section is intended to be partly tutorial \(describing some of) 66 10 5397 OUT 2539 8890 28.7565 4.4092 (the intellectual issues in the field\) and partly historical \(describing) 71 9 5715 OUT 2539 9102 3.4358 4.4092 (accomplishments that have had some impact on computing practice\).) 65 8 5715 OUT 2539 9313 21.7333 4.4092 (The committee also wishes to bring to the readerÕs attention a 1989) 67 11 5715 OUT 2539 9525 27.4011 4.4092 (report of the NSF advisory committee for computer research, ) 60 9 5310 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7849 9525 0.0000 4.4096 (Com-) 4 0 405 OUT 2539 9737 30.8580 4.4093 (puter Science: Achievements and Opportunities) 46 5 3796 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 6335 9737 30.8577 4.4092 (, that provides a good) 22 4 1919 OUT 2539 9948 18.5186 4.4092 (discussion of the accomplishments of CS&E from the perspective of) 65 9 5715 OUT 2539 10160 30.4008 4.4093 (the fieldÕs own internal logic and intellectual discipline.) 59 7 4798 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 70 100 mul 1000 div 2340 16 0.00 0.00 0.00 1.00 (Black) false SET 7337 10101 0.0000 3.0876 (6) 1 0 65 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 7433 10160 30.4020 4.4095 ( Further,) 10 2 821 OUT 2539 10372 15.1138 4.4092 (the committee stresses that this sampling of intellectual accomplish-) 69 8 5715 OUT 2539 10583 27.5083 4.4092 (ments does not differentiate between those made by academia and) 63 9 5715 OUT 2539 10795 19.9523 4.4092 (those made by industry; as the discussion in Chapters 1 and 2 sug-) 66 12 5715 OUT 2539 11007 34.9744 4.4092 (gests, the determination of ÒcreditÓ for any given accomplishment) 65 8 5715 OUT 2539 11218 8.8346 4.4092 (would be a difficult task indeed.) 33 5 2707 OUT ENDPAGE %%Page: 175 15 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (175) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Bold 100 100 mul 1000 div 3520 16 0.00 0.00 0.00 1.00 (Black) false SET 4268 2646 8.8243 4.4092 (Systems and Architectures) 25 2 2259 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 2963 2.8338 4.4092 (Computing-system architects and building architects play similar) 64 6 5397 OUT 2540 3175 15.4563 4.4092 (roles: both design structures that satisfy human needs and that can) 68 11 5715 OUT 2540 3387 0.0000 3.8714 (be constructed economically from available materials. Buildings have) 69 8 5715 OUT 2540 3598 24.3228 4.4092 (many sizes, shapes, styles, and purposes; similarly, computing sys-) 67 8 5715 OUT 2540 3810 11.8813 4.4092 (tems range from the single microelectronic chips that animate calcu-) 68 9 5715 OUT 2540 4022 9.7994 4.4092 (lators, fuel-injection controls, cardiac pacemakers, and telephone-an-) 70 6 5715 OUT 2540 4233 44.0969 6.0735 (swering machines, to the geographically distributed networks of) 63 7 5715 OUT 2540 4445 32.7725 4.4092 (thousands of computers. Just as buildings are constructed from a) 65 10 5715 OUT 2540 4657 6.2083 4.4092 (variety of materials, so also do computing systems incorporate many) 67 9 5715 OUT 2540 4868 11.3796 4.4092 (different manufacturing processes and technologies, from microelec-) 67 6 5715 OUT 2540 5080 18.8692 4.4092 (tronic chips, circuit boards, and magnetic disks to the software that) 69 10 5715 OUT 2540 5292 40.1958 4.4092 (tailors the machine to an application or for general programming) 64 9 5715 OUT 2540 5503 3.7470 4.4092 (use. Standardization yields economies both in buildings and in com-) 68 10 5715 OUT 2540 5715 10.9807 4.4092 (puters; for example, pre-cut 8-foot studs and pre-made windows are) 66 9 5715 OUT 2540 5927 5.8561 4.4092 (commonly used in residential houses, whereas 8-bit bytes, commodi-) 66 8 5715 OUT 2540 6138 11.5467 4.4092 (ty processor and memory chips, and standardized programming no-) 63 8 5715 OUT 2540 6350 8.4330 4.4092 (tations and system conventions may be used in many different mod-) 65 10 5715 OUT 2540 6562 8.6781 4.4092 (els of computing systems.) 25 3 2146 OUT 2857 6773 27.5498 4.4092 (For both computing systems and buildings, the conceptual dis-) 61 8 5397 OUT 2540 6985 30.2329 4.4092 (tance from the available materials and technologies to the require-) 67 9 5715 OUT 2540 7197 23.5772 4.4092 (ments established by society and the marketplace is so great that a) 67 11 5715 OUT 2540 7408 17.2431 4.4092 (diversity of designs might satisfy a given requirement, and the task) 68 10 5715 OUT 2540 7620 3.9942 4.4092 (of producing any complete design is extremely complex. How, start-) 67 10 5715 OUT 2540 7832 42.0053 4.4092 (ing with a Òblank slateÓ of silicon and access to computer-aided-) 65 10 5715 OUT 2540 8043 0.7532 4.4092 (design and programming tools, does someone create a system to play) 66 10 5715 OUT 2540 8255 37.6781 4.4092 (chess, to process radio-telescope signals into images, or to handle) 67 9 5715 OUT 2540 8467 13.9584 4.4092 (financial transactions in a bank? The complexity is managed by ap-) 67 11 5715 OUT 2540 8678 8.7027 4.4092 (plying the abstraction principles described above in ÒAbstractions in) 69 8 5715 OUT 2540 8890 8.5233 4.4092 (Computer Systems.Ó) 18 1 1699 OUT 2857 9102 19.2427 4.4092 (The foundation of nearly all computing systems today is micro-) 62 9 5397 OUT 2540 9313 36.4424 4.4092 (electronics. Even within the design of a microelectronic chip, the) 67 10 5715 OUT 2540 9525 15.9091 4.4092 (task is organized around such specialties as circuit design, logic de-) 70 10 5715 OUT 2540 9737 5.1386 4.4092 (sign, system organization, testing, and verification, and each of these) 71 9 5715 OUT 2540 9948 18.4288 4.4092 (specialties must deal with physical design and layout together with) 67 9 5715 OUT 2540 10160 30.4692 4.4092 (logical behavior. Design techniques similar to those employed for) 66 9 5715 OUT 2540 10372 9.6960 4.4092 (chips are applied at higher levels to assemble aggregates of chips on) 69 11 5715 OUT 2540 10583 2.2457 4.4092 (circuit boards, and to provide interfaces to disks, displays, communi-) 70 9 5715 OUT 2540 10795 8.8858 4.4092 (cation networks, and other electronic or electromechanical systems.) 67 7 5607 OUT 2857 11007 32.4870 4.4092 (Microelectronics technology has blurred the boundary between) 60 6 5397 OUT 2540 11218 28.4342 4.4092 (hardware and software. Programs written in specialized notations) 65 8 5715 OUT 2540 11430 24.8472 4.4092 (are commonly built into chips. Systems designed for a single pur-) 66 11 5715 OUT ENDPAGE %%Page: 176 16 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (176) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2539 2540 7.8764 4.4092 (pose may, for example, incorporate application software that is com-) 68 9 5715 OUT 2539 2752 10.0369 4.4092 (piled into such circuit structures as programmed logic arrays or into) 69 10 5715 OUT 2539 2963 20.5610 4.4092 (microprograms that reside in read-only memories. Computing sys-) 64 8 5715 OUT 2539 3175 13.3616 4.4092 (tems also employ built-in programs to provide for maintenance, ini-) 67 9 5715 OUT 2539 3387 8.6395 4.4092 (tialization, and start-up.) 26 2 2005 OUT 2857 3598 14.4306 4.4092 (General-purpose computing systems require additional layers of) 62 6 5397 OUT 2539 3810 11.4190 4.4092 (software to provide the standardized system services needed to exe-) 67 9 5715 OUT 2539 4022 39.1382 4.4092 (cute a variety of applications. The operating system allocates re-) 67 10 5715 OUT 2539 4233 6.1701 4.4092 (sources to run multiple programs, handles input and output devices,) 67 9 5715 OUT 2539 4445 42.3834 4.4092 (maintains the file system, and supports interprocess and network) 64 8 5715 OUT 2539 4657 25.2171 4.4092 (communications. Application programs may also require packages) 63 7 5715 OUT 2539 4868 1.9310 4.4092 (that provide standard interfaces for windows, graphics, databases, or) 69 8 5715 OUT 2539 5080 8.7767 4.4092 (computation, whether local or remote.) 37 4 3182 OUT 2857 5292 28.4319 4.4092 (The remarkable advances in the performance, performance-cost) 60 6 5397 OUT 2539 5503 0.0000 -1.6125 (ratio, and programmability of computing systems have been the combined) 70 9 5715 OUT 2539 5715 0.0000 3.8587 (result of achievements of CS&E within each of these layers. Although) 69 11 5715 OUT 2539 5927 6.4763 4.4092 (these advances have built on improvements in the base technologies,) 67 9 5715 OUT 2539 6138 41.1543 4.4092 (computing scientists and engineers have exploited these improve-) 64 7 5715 OUT 2539 6350 0.0000 4.4103 (m) 1 0 160 OUT 2699 6350 22.0817 1.0583 (ents extremely rapidly. The following subsections describe achieve-) 68 8 5555 OUT 2539 6562 0.0000 1.0584 (ments) 5 0 480 OUT 3019 6562 9.3897 4.4092 ( within these layers: microelectronics; the organization of pro-) 65 9 5235 OUT 2539 6773 3.2462 4.4092 (cessors, memories, and communication; operating systems; computer) 65 6 5715 OUT 2539 6985 8.7857 4.4092 (networks; and database systems.) 31 3 2715 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2539 7514 0.0000 4.4188 (Microelectronics) 16 0 1251 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 7832 4.3651 4.4092 (The history of microelectronics is one of increasing the density of) 67 10 5397 OUT 2539 8043 36.5002 4.4092 (circuitry on a chip; the smaller the transistors and wires within a) 67 11 5715 OUT 2539 8255 7.5802 4.4092 (chip, the faster they can work, and the less energy they require. The) 70 13 5715 OUT 2539 8467 11.5894 4.4092 (process by which a microelectronic chip is fabricated is independent) 68 9 5715 OUT 2539 8678 3.3882 4.4092 (of the particular circuitry that will ultimately reside on the chip. The) 73 12 5715 OUT 2539 8890 16.9360 4.4092 (chip designer creates information-processing, memory, and commu-) 64 6 5715 OUT 2539 9102 5.3768 4.4092 (nication structures within the chip by defining geometric patterns on) 69 9 5715 OUT 2539 9313 1.9053 4.4092 (a set of 10 to 15 photomasks; these patterns define the transistors and) 71 12 5715 OUT 2539 9525 5.0560 4.4092 (wires that will be embedded in the chip. Some of these wires lead to) 69 14 5715 OUT 2539 9737 39.7485 4.4092 (connections external to the chip that allow it to be hooked up to) 65 12 5715 OUT 2539 9948 8.6969 4.4092 (other chips and components.) 27 3 2394 OUT 2857 10160 7.0427 4.4092 (In the 1960s, early integrated circuits \(i.e., small-scale- and medi-) 69 9 5397 OUT 2539 10372 0.0000 1.3880 (um-scale-integration \(SSI and MSI\) chips\) implemented electronic gates,) 71 7 5715 OUT 2539 10583 41.8287 4.4092 (adders, selectors, decoders, register memories, and other modules) 65 7 5715 OUT 2539 10795 43.7659 4.4092 (that had previously required circuit boards of discrete transistors) 67 8 5715 OUT 2539 11007 7.5486 4.4092 (and other electronic components. Photomasks for SSI and MSI chips) 66 10 5715 OUT 2539 11218 2.9732 4.4092 (were simple enough that they could be cut by hand from large sheets) 67 12 5715 OUT 2539 11430 8.7598 4.4092 (of plastic film before being photographically reduced.) 54 6 4479 OUT ENDPAGE %%Page: 177 17 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 2540 2134 7.0322 3.5273 (WHAT IS COMPUTER SCIENCE AND ENGINEERING?) 41 5 3676 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 7991 2134 0.0000 -0.0787 (177) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 2540 0.0000 2.9343 (The large-scale-integration \(LSI\) chips of the 1970s contained thou-) 68 8 5397 OUT 2540 2752 8.0627 4.4092 (sands to tens of thousands of components and included the dynamic) 65 10 5715 OUT 2540 2963 14.6974 4.4092 (random-access memory \(DRAM\) chips that eventually displaced the) 63 7 5715 OUT 2540 3175 28.8250 4.4092 (magnetic-core memory, and the first single-chip processors. These) 66 8 5715 OUT 2540 3387 9.4603 4.4092 (LSI chips were too complex for their photomasks to be created with-) 67 11 5715 OUT 2540 3598 6.9729 4.4092 (out computer-aided-design \(CAD\) tools. However, the CAD tools of) 65 9 5715 OUT 2540 3810 29.1630 4.4092 (that era served principally as drawing aids, a computerized exten-) 66 9 5715 OUT 2540 4022 0.6744 4.4092 (sion of the drafting board. They did not otherwise assist designers in) 71 12 5715 OUT 2540 4233 8.8935 4.4092 (managing the complexity of their creations.) 43 5 3617 OUT 2857 4445 31.6844 4.4092 (By the late 1970s, it was widely recognized that continued ad-) 62 10 5397 OUT 2540 4657 20.4020 4.4092 (vances in microelectronics depended at least as much on streamlin-) 66 9 5715 OUT 2540 4868 19.7883 4.4092 (ing the design processes and on new system ideas as on improving) 64 11 5715 OUT 2540 5080 8.2506 4.4092 (the fabrication processes. The time required to design then-sophisti-) 70 9 5715 OUT 2540 5292 35.6270 4.4092 (cated chips had already grown from weeks to years. Few people) 62 11 5715 OUT 2540 5503 40.5134 4.4092 (were prepared to address the functions \(other than memory\) that) 63 9 5715 OUT 2540 5715 14.3569 4.4092 (more complex chips would serve. One of the great achievements of) 65 11 5715 OUT 2540 5927 44.0204 4.4092 (CS&E was to show how to design the now-current generation of) 60 10 5715 OUT 2540 6138 8.9554 4.4092 (very-large-scale-integration \(VLSI\) chips.) 42 2 3404 OUT 2857 6350 28.0630 4.4092 (Many advances in chip design resulted from the application of) 61 9 5397 OUT 2540 6562 39.1396 4.4092 (lessons learned from managing the complexity of large programs.) 63 8 5715 OUT 2540 6773 42.6268 4.4092 (Structured design disciplines based on a layout-cell hierarchy en-) 66 8 5715 OUT 2540 6985 27.0678 4.4092 (couraged designers to compose layouts flexibly and systematically,) 66 7 5715 OUT 2540 7197 12.3220 4.4092 (to focus on improvements at the high levels of algorithms and over-) 67 11 5715 OUT 2540 7408 13.9080 4.4092 (all organization, and to abstain from certain low-level optimizations) 69 8 5715 OUT 2540 7620 11.9108 4.4092 (\(analogous to ÒgotoÓ statements in programming\) that are known to) 65 9 5715 OUT 2540 7832 8.8961 4.4092 (be more troublesome than useful.) 32 4 2788 OUT 2857 8043 5.6257 4.4092 (These structured design approaches achieved significant success-) 64 6 5397 OUT 2540 8255 12.6936 4.4092 (es even when applied using only computer-aided layout tools; these) 66 9 5715 OUT 2540 8467 18.4500 4.4092 (achievements might be compared with writing structured programs) 63 7 5715 OUT 2540 8678 13.7611 4.4092 (in assembly language. The next step was to incorporate these disci-) 68 11 5715 OUT 2540 8890 22.0327 4.4092 (plines into high-level tools called silicon compilers. A silicon com-) 70 10 5715 OUT 2540 9102 22.5496 4.4092 (piler includes a Òfront endÓ that translates a behavioral description) 69 9 5715 OUT 2540 9313 5.5609 4.4092 (for a chip into an intermediate structural representation, and a Òback) 70 10 5715 OUT 2540 9525 18.1121 4.4092 (endÓ that translates the intermediate representation into layout that) 69 8 5715 OUT 2540 9737 10.3021 4.4092 (is tailored to the geometrical and electrical design rules of a particu-) 72 11 5715 OUT 2540 9948 4.6798 4.4092 (lar fabrication process. Designs produced in this way can according-) 69 10 5715 OUT 2540 10160 43.4659 4.4092 (ly be re-created easily for different fabrication processes. Today,) 68 9 5715 OUT 2540 10372 27.9649 4.4092 (many chips are designed entirely by silicon compilation; nearly all) 67 9 5715 OUT 2540 10583 12.6332 4.4092 (complex chips employ these procedural approaches for creating lay-) 66 8 5715 OUT 2540 10795 8.8404 4.4092 (outs of some of their major cells.) 34 6 2720 OUT 2857 11007 22.0141 4.4092 (Of course, chip designs may contain errors. To reduce the cost) 63 11 5397 OUT 2540 11218 22.8559 4.4092 (and effort required to debug chip designs, tools for simulation and) 67 10 5715 OUT 2540 11430 24.4002 4.4092 (verification are essential to the chip designer. The development of) 68 10 5715 OUT ENDPAGE %%Page: 178 18 BEGPAGE AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2557 2134 0.0000 -0.0787 (178) 3 0 264 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 80 100 mul 1000 div 2660 16 0.00 0.00 0.00 1.00 (Black) false SET 6396 2134 6.9510 3.5273 (COMPUTING THE FUTURE) 20 2 1876 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2539 2540 11.7987 4.4092 (algorithms and programs for multilevel simulation, including where) 66 7 5715 OUT 2539 2752 9.4325 4.4092 (necessary simulation down to the transistor-switch level, is the prin-) 70 9 5715 OUT 2539 2963 6.5616 4.4092 (cipal reason that todayÕs million-transistor chips more often than not) 70 9 5715 OUT 2539 3175 11.3324 4.4092 (function correctly the first time they are fabricated. Symbolic verifi-) 72 10 5715 OUT 2539 3387 22.6135 4.4092 (cation that a chipÕs behavior will conform to its specification is not) 70 11 5715 OUT 2539 3598 0.2733 4.4092 (yet universal, but these techniques have been employed, for example,) 68 9 5715 OUT 2539 3810 27.9245 4.4092 (to demonstrate that a floating-point element within a chip will be-) 67 10 5715 OUT 2539 4022 30.8999 4.4092 (have identically to software routines previously used for the same) 66 9 5715 OUT 2539 4233 13.0686 4.4092 (functions, and to verify the logical design of processors of moderate) 69 10 5715 OUT 2539 4445 0.0000 4.3855 (complexity.) 11 0 958 OUT 2857 4657 4.3480 4.4092 (The net result of these advances in design disciplines and tools is) 67 11 5397 OUT 2539 4868 11.9378 4.4092 (that todayÕs state-of-the-art chips, although they approach being 100) 69 8 5715 OUT 2539 5080 39.9435 4.4092 (times as complex as those of a decade ago, require a comparable) 63 11 5715 OUT 2539 5292 25.2967 4.4092 (design effort. Whereas a decade ago VLSI-design courses were of-) 65 10 5715 OUT 2539 5503 25.7524 4.4092 (fered in only a few universities, today they are offered in approxi-) 68 11 5715 OUT 2539 5715 20.9073 4.4092 (mately 200 colleges and universities and have supplied the increas-) 67 9 5715 OUT 2539 5927 0.0000 4.0185 (ing demand for chip designers. Students in these courses use modern) 68 11 5715 OUT 2539 6138 10.2715 4.4092 (design and simulation tools to produce projects in a single term that) 69 11 5715 OUT 2539 6350 33.9125 4.4092 (are substantially more complex than state-of-the-art chips of a de-) 67 9 5715 OUT 2539 6562 8.7783 4.4092 (cade ago.) 9 1 773 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Italic 100 100 mul 1000 div 3320 16 0.00 0.00 0.00 1.00 (Black) false SET 2539 7091 8.9623 4.4092 (Processor and Memory Design) 27 3 2334 OUT AldusDict2 /SUsv known {SURSTR} {AD_SomethingOnPage} ifelse SUSAVE /|______Palatino-Roman 100 100 mul 1000 div 3340 16 0.00 0.00 0.00 1.00 (Black) false SET 2857 7408 25.6048 4.4092 (In recent years, it has become clear on theoretical grounds that) 64 10 5397 OUT 2539 7620 42.6601 4.4092 (for computations performed in VLSI chips and other high-perfor-) 63 8 5715 OUT 2539 7832 29.1545 4.4092 (mance digital technologies that press against the physical limits of) 68 9 5715 OUT 2539 8043 0.4867 4.4092 (intrachip communication, it is less costly to perform many operations) 69 9 5715 OUT 2539 8255 1.6635 4.4092 (at once \(in parallel or concurrently\) than it is to perform an operation) 72 12 5715 OUT 2539 8467 2.0874 4.4092 (correspondingly faster; see Box 6.4. For example, performing a given) 69 10 5715 OUT