Lecter Java: Program design - Chapter 1: Introduction
Goal Teach you how to program effectively Skills and information to be acquired Mental model of computer and network behavior Problem solving Object-oriented design Java
Bạn đang xem trước 20 trang tài liệu Lecter Java: Program design - Chapter 1: Introduction, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
IntroductionCopyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.Let’s beginGoalTeach you how to program effectivelySkills and information to be acquiredMental model of computer and network behaviorProblem solvingObject-oriented designJavaComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardComputer OrganizationComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network Card3.06 billion operationsper secondComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network Card512 million bytes ofmemory that can betransferred at doublethe normal rateA byte is 8 bitsA bit is a 0 or a 1Computer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardStores 200 billionbytes of data. You want high RPM andlow seek time.0.009 seconds isaverageComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network Card17” on the diagonal.Resolution up to1,280 by 1,024pixelsComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardMicroprocessor fordisplaying images with64 million bytes ofmemory. More memorysupports more colorsand higher resolutionComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardReads DVDs 16 timesfaster than a basic DVDdrive. Can hold up to8 billion bytes of dataComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardCan read and writeCDs. Can hold 650million bytes of dataReads at 48 timesfaster and writes24 times faster thana basic driveComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardCan send or receiveup to 56 thousandbits per secondComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardComputer operatingsystem using agraphical interfaceComputer OrganizationComputer advertisement specificationIntel® Pentium 4 Processorat 3.06GHz with 512K cache512MB DDR SDRAM200GB ATA-100 Hard Drive(7200 RPM, 9.0 ms seek time)17” LCD Monitor64MB NVIDIA GeForce4MX Graphics Card®16x Max DVD-ROM Drive48x/24x/48x CD-RW Drive56K PCI Telephony ModemWindows XP Home Edition SP2 ®10/100 Fast Ethernet Network CardCan send or receivedata at two rates – 10 or 100 million bytesper secondHome networkBackbonesNetwork communicationCommunication protocolSet of rules that govern how data is sent and receivedTCP/IPExchanging packets of information over the InternetFTPExchanging files between computesSMTPExchanging email over the InternetPOPExchanging email between mail reader and the ISPHTTPExchanging files over the WWWSSLHow information is to be encryptedSoftwareProgramSequence of instruction that tells a computer what to doExecutionPerforming the instruction sequenceProgramming languageLanguage for writing instructions to a computerMajor flavorsMachine language or object codeAssembly languageHigh-levelSoftwareProgramSequence of instruction that tells a computer what to doExecutionPerforming the instruction sequenceProgramming languageLanguage for writing instructions to a computerMajor flavorsMachine language or object codeAssembly languageHigh-levelProgram to which computer can responddirectly. Each instructionis a binary code thatcorresponds to anative instructionSoftwareProgramSequence of instruction that tells a computer what to doExecutionPerforming the instruction sequenceProgramming languageLanguage for writing instructions to a computerMajor flavorsMachine language or object codeAssembly languageHigh-levelSymbolic languagefor coding machinelanguage instructionsSoftwareProgramSequence of instruction that tells a computer what to doExecutionPerforming the instruction sequenceProgramming languageLanguage for writing instructions to a computerMajor flavorsMachine language or object codeAssembly languageHigh-levelDetailed knowledge ofthe machine is notrequired. Uses avocabulary andstructure closer to theproblem being solvedSoftwareProgramSequence of instruction that tells a computer what to doExecutionPerforming the instruction sequenceProgramming languageLanguage for writing instructions to a computerMajor flavorsMachine language or object codeAssembly languageHigh-levelJava is a high-levelprogramminglanguageSoftwareProgramSequence of instruction that tells a computer what to doExecutionPerforming the instruction sequenceProgramming languageLanguage for writing instructions to a computerMajor flavorsMachine language or object codeAssembly languageHigh-levelFor program to beexecuted it must betranslatedTranslationTranslatorAccepts a program written in a source language and translates it to a program in a target languageCompilerStandard name for a translator whose source language is a high-level languageInterpreterA translator that both translates and executes a source programJava translationTwo-step processFirst stepTranslation from Java to bytecodesBytecodes are architecturally neutral object codeBytecodes are stored in a file with extension .classSecond stepAn interpreter translates the bytecodes into machine instructions and executes themInterpreter is known a Java Virtual Machine or JVMTaskDisplay the forecastI think there is a world market for maybe five computers. Thomas Watson, IBM, 1943.Sample outputDisplayForecast.java// Authors: J. P. Cohoon and J. W. Davidson // Purpose: display a quotation in a console window public class DisplayForecast { // method main(): application entry point public static void main(String[] args) { System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } }DisplayForecast.java// Authors: J. P. Cohoon and J. W. Davidson // Purpose: display a quotation in a console window public class DisplayForecast { // method main(): application entry point public static void main(String[] args) { System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } }Three statements make up the action of method main()Method main() is part of class DisplayForecastDisplayForecast.java// Authors: J. P. Cohoon and J. W. Davidson // Purpose: display a quotation in a console window public class DisplayForecast { // method main(): application entry point public static void main(String[] args) { System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } }A method is a named piece of code that performs some action or implements a behaviorDisplayForecast.java// Authors: J. P. Cohoon and J. W. Davidson // Purpose: display a quotation in a console window public class DisplayForecast { // method main(): application entry point public static void main(String[] args) { System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } }An application program is required to have a public static void method named main().Java and the InternetEngineering softwareComplexity of software grows as attempts are made to make it easier to useRise of wizardsSoftware engineeringGoalProduction of software that is effective and reliable, understandable, cost effective, adaptable, and reusableSoftware engineeringGoalProduction of software that is effective and reliable, understandable, cost effective, adaptable, and reusableWork correctly and not failSoftware engineeringGoalProduction of software that is effective and reliable, understandable, cost effective, adaptable, and reusableBecause of the long lifetime many people will be involvedCreationDebuggingMaintenance EnhancementTwo-thirds of the cost is typically beyond creationSoftware engineeringGoalProduction of software that is effective and reliable, understandable, cost effective, adaptable, and reusableCost to develop and maintain should not exceed expected benefitSoftware engineeringGoalProduction of software that is effective and reliable, understandable, cost effective, adaptable, and reusableDesign software so that new features and capabilities can be addedSoftware engineeringGoalProduction of software that is effective and reliable, understandable, cost effective, adaptable, and reusableMakes sense due to the great costs involved to have flexible components that can be used in other softwarePrinciplesAbstractionEncapsulationModularityHierarchyPrinciplesAbstractionEncapsulationModularityHierarchyDetermine the relevant properties and features while ignoring nonessential detailsPrinciplesAbstractionEncapsulationModularityHierarchySeparate components into external and internal aspectsPrinciplesAbstractionEncapsulationModularityHierarchyConstruct a system fromcomponents and packagesPrinciplesAbstractionEncapsulationModularityHierarchyRanking or ordering of objectsObject-oriented designPurposePromote thinking about software in a way that models the way we think and interact with the physical wordIncluding specializationObjectProperties or attributesBehaviorsProgrammingClass Term for a type of software objectObjectAn instance of a class withspecific properties andattributesProgrammingProblem solving through the use of a computer systemMaximYou cannot make a computer do something if you do not know how to do it yourselfProblem SolvingWhy do you care?We are all assigned tasks to doAt workAt homeAt schoolWhy not do themRightEfficientlyProblem SolvingWhy care about computer-based problem solving (i.e., programming)?NeatFrontier of scienceProfitableNecessaryQuality of lifeProblem SolvingRememberThe goal is not a clever solution but a correct solutionProblem SolvingAcceptThe process is iterativeIn solving the problem increased understanding might require restartingProblem SolvingSolutionsOften require both concrete and abstract thinkingTeamworkProblem Solving ProcessWhat is it?Problem Solving ProcessWhat is it?AnalysisDesignImplementationTestingProblem Solving ProcessWhat is it?AnalysisDesignImplementationTestingDetermine the inputs, outputs, and other components of the problemDescription should be sufficiently specific to allow you to solve the problemProblem Solving ProcessWhat is it?AnalysisDesignImplementationTestingDescribe the components and associated processes for solving the problemStraightforward and flexibleMethod – processObject – component and associated methodsProblem Solving ProcessWhat is it?AnalysisDesignImplementationTestingDevelop solutions for the components and use those components to produce an overall solutionStraightforward and flexibleProblem Solving ProcessWhat is it?AnalysisDesignImplementationTestingTest the components individually and collectivelyProblem Solving ProcessProblem Solving MethodologiesHow to do it?Depends upon your mode of thinkingBricolage approachPlanned approachProblem Solving MethodologiesHow to do it?Depends upon your mode of thinkingBricolage approachPlanned approachProblem features and aspects are repeatedly tried and manipulated according to your personal way of organizing informationA mistake is not an error, but a correction waiting to be made in the natural course of solving the problemProblem Solving MethodologiesHow to do it?Depends upon your mode of thinkingBricolage approachPlanned approachUses logic, formalism, and engineering coupled with a structured methodologyInherent structure of the planned approach offers makes it easier to show correctness of solutionDominant method in terms of teachingTipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems into subproblemsTipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems into subproblemsFind out what is known about the problemTalk to the presenterDetermine what attempts have succeeded and what attempts have failedTipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems into subproblemsResearch can require significant time and generate questionsThe effort is worthwhile because the result is a better understandingTrue understanding of the problem makes it easier to solve TipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems into subproblemsConsiderSketching a solution and then repeatedly refine its components until the entire process is specifiedTipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems into subproblemsYour time is valuableCorrectness is probably even more valuableUse existing infrastructure that is known to workTipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems into subproblemsBe open to indirect use of existing materialsTipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems into subproblemsMake as few assumptions as necessaryMaximizes the likelihood that your effort can be used in future situationsTipsFind out as much as you canReuse what has been done beforeExpect future reuseBreak complex problems intosubproblemsDivide-and-conquerSolve subproblems and combine into an overall solution