- 1 ComputersandPrograms
- 1.1 TheUniversalMachine.
- 1.2 ProgramPower
- 1.3 Whatis ComputerScience?.
- 1.4 HardwareBasics
- 1.5 ProgrammingLanguages
- 1.6 TheMagicofPython
- 1.7 Insidea PythonProgram
- 1.8 ChaosandComputers.
- 1.9 Exercises
- 2 WritingSimplePrograms
- 2.1 TheSoftwareDevelopmentProcess
- 2.2 ExampleProgram:TemperatureConverter.
- 2.3 ElementsofPrograms.
- 2.3.1 Names
- 2.3.2 Expressions.
- 2.4 OutputStatements.
- 2.5 AssignmentStatements.
- 2.5.1 SimpleAssignment.
- 2.5.2 AssigningInput.
- 2.5.3 SimultaneousAssignment
- 2.6 DefiniteLoops
- 2.7 ExampleProgram:FutureValue
- 2.8 Exercises
- 3 ComputingwithNumbers
- 3.1 NumericDataTypes
- 3.2 UsingtheMathLibrary.
- 3.3 AccumulatingResults:Factorial
- 3.4 TheLimitsofInt
- 3.5 HandlingLargeNumbers:LongInts.
- 3.6 TypeConversions.
- 3.7 Exercises
- 4 ComputingwithStrings
- 4.1 TheStringDataType.
- 4.2 SimpleStringProcessing
- 4.3 StringsandSecretCodes
- 4.3.1 StringRepresentation.
- 4.3.2 ProgramminganEncoder
- 4.3.3 Programminga Decoder
- 4.3.4 OtherStringOperations
- 4.3.5 FromEncodingtoEncryption ii CONTENTS
- 4.4 OutputasStringManipulation
- 4.4.1 ConvertingNumberstoStrings.
- 4.4.2 StringFormatting.
- 4.4.3 BetterChangeCounter
- 4.5 FileProcessing
- 4.5.1 Multi-LineStrings
- 4.5.2 FileProcessing
- 4.5.3 ExampleProgram:BatchUsernames
- 4.5.4 ComingAttraction:Objects
- 4.6 Exercises
- 5 ObjectsandGraphics
- 5.1 TheObjectofObjects.
- 5.2 GraphicsProgramming
- 5.3 UsingGraphicalObjects
- 5.4 GraphingFutureValue
- 5.5 ChoosingCoordinates.
- 5.6 Interactive Graphics.
- 5.6.1 GettingMouseClicks
- 5.6.2 HandlingTextualInput.
- 5.7 GraphicsModuleReference
- 5.7.1 GraphWinObjects
- 5.7.2 GraphicsObjects
- 5.7.3 EntryObjects.
- 5.7.4 DisplayingImages
- 5.7.5 GeneratingColors
- 5.8 Exercises
- 6 DefiningFunctions
- 6.1 TheFunctionofFunctions
- 6.2 Functions,Informally.
- 6.3 FutureValuewitha Function.
- 6.4 FunctionsandParameters:TheGoryDetails.
- 6.5 FunctionsthatReturnValues.
- 6.6 FunctionsandProgramStructure.
- 6.7 Exercises
- 7 ControlStructures,Part
- 7.1 SimpleDecisions
- 7.1.1 Example:TemperatureWarnings.
- 7.1.2 FormingSimpleConditions
- 7.1.3 Example:ConditionalProgramExecution.
- 7.2 Two-WayDecisions.
- 7.3 Multi-WayDecisions
- 7.4 ExceptionHandling.
- 7.5 StudyinDesign:MaxofThree.
- 7.5.1 Strategy1:CompareEachtoAll
- 7.5.2 Strategy2:DecisionTree
- 7.5.3 Strategy3:SequentialProcessing
- 7.5.4 Strategy4:UsePython.
- 7.5.5 SomeLessons
- 7.6 Exercises
- 7.1 SimpleDecisions
- 8 ControlStructures,Part CONTENTS iii
- 8.1 ForLoops:A QuickReview
- 8.2 IndefiniteLoops.
- 8.3 CommonLoopPatterns.
- 8.3.1 Interactive Loops.
- 8.3.2 SentinelLoops
- 8.3.3 FileLoops
- 8.3.4 NestedLoops.
- 8.4 ComputingwithBooleans
- 8.4.1 BooleanOperators
- 8.4.2 BooleanAlgebra
- 8.5 OtherCommonStructures
- 8.5.1 Post-TestLoop
- 8.5.2 Loopanda Half
- 8.5.3 BooleanExpressionsasDecisions.
- 8.6 Exercises
- 9 SimulationandDesign
- 9.1 SimulatingRacquetball.
- 9.1.1 A SimulationProblem
- 9.1.2 ProgramSpecification
- 9.2 RandomNumbers.
- 9.3 Top-DownDesign.
- 9.3.1 Top-Level Design.
- 9.3.2 SeparationofConcerns.
- 9.3.3 Second-Level Design.
- 9.3.4 DesigningsimNGames.
- 9.3.5 Third-Level Design.
- 9.3.6 FinishingUp
- 9.3.7 SummaryoftheDesignProcess
- 9.4 Bottom-UpImplementation.
- 9.4.1 UnitTesting.
- 9.4.2 SimulationResults
- 9.5 OtherDesignTechniques.
- 9.5.1 PrototypingandSpiralDevelopment.
- 9.5.2 TheArtofDesign
- 9.6 Exercises
- 9.1 SimulatingRacquetball.
- 10 DefiningClasses
- 10.1 QuickReview ofObjects
- 10.2 ExampleProgram:Cannonball.
- 10.2.1 ProgramSpecification
- 10.2.2 DesigningtheProgram.
- 10.2.3 ModularizingtheProgram
- 10.3 DefiningNew Classes.
- 10.3.1 Example:Multi-SidedDice
- 10.3.2 Example:TheProjectileClass.
- 10.4 ObjectsandEncapsulation
- 10.4.1 EncapsulatingUsefulAbstractions.
- 10.4.2 PuttingClassesinModules.
- 10.5 WidgetObjects
- 10.5.1 ExampleProgram:DiceRoller.
- 10.5.2 BuildingButtons
- 10.5.3 BuildingDice.
- 10.5.4 TheMainProgram iv CONTENTS
- 10.6 Exercises
- 11 DataCollections
- 11.1 ExampleProblem:SimpleStatistics
- 11.2 ApplyingLists
- 11.2.1 ListsareSequences.
- 11.2.2 Listsvs.Strings.
- 11.2.3 ListOperations.
- 11.3 StatisticswithLists
- 11.4 CombiningListsandClasses.
- 11.5 CaseStudy:PythonCalculator
- 11.5.1 A CalculatorasanObject
- 11.5.2 ConstructingtheInterface
- 11.5.3 ProcessingButtons
- 11.6 Non-SequentialCollections.
- 11.6.1 DictionaryBasics.
- 11.6.2 DictionaryOperations
- 11.6.3 ExampleProgram:WordFrequency
- 11.7 Exercises
- 12 Object-OrientedDesign
- 12.1 TheProcessofOOD
- 12.2 CaseStudy:RacquetballSimulation
- 12.2.1 CandidateObjectsandMethods
- 12.2.2 ImplementingSimStats.
- 12.2.3 ImplementingRBallGame
- 12.2.4 ImplementingPlayer
- 12.2.5 TheCompleteProgram.
- 12.3 CaseStudy:DicePoker.
- 12.3.1 ProgramSpecification
- 12.3.2 IdentifyingCandidateObjects
- 12.3.3 ImplementingtheModel.
- 12.3.4 A Text-BasedUI
- 12.3.5 Developinga GUI
- 12.4 OOConcepts
- 12.4.1 Encapsulation.
- 12.4.2 Polymorphism
- 12.4.3 Inheritance
- 12.5 Exercises
- 13 AlgorithmAnalysisandDesign
- 13.1 Searching
- 13.1.1 A SimpleSearchingProblem.
- 13.1.2 Strategy1:LinearSearch.
- 13.1.3 Strategy2:BinarySearch
- 13.1.4 ComparingAlgorithms.
- 13.2 Recursive Problem-Solving.
- 13.2.1 Recursive Definitions.
- 13.2.2 Recursive Functions
- 13.2.3 Recursive Search.
- 13.3 SortingAlgorithms
- 13.3.1 Naive Sorting:SelectionSort
- 13.3.2 DivideandConquer:MergeSort.
- 13.3.3 ComparingSorts CONTENTS v
- 13.1 Searching
- 13.4 HardProblems
- 13.4.1 TowersofHanoi
- 13.4.2 TheHaltingProblem.
- 13.4.3 Conclusion
nora
(Nora)
#1