Python Programming: An Introduction to Computer Science

(Nora) #1

  • 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



  • 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



  • 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.4 HardProblems

    • 13.4.1 TowersofHanoi

    • 13.4.2 TheHaltingProblem.

    • 13.4.3 Conclusion



Free download pdf