COMPUTER PROGRAMMING PROCESS LEADS ORIGINAL FORMULATION COMPUTING PROBLEM EXECUTABLE COMPUTER PROGRAM PROGRAMMING ALGORITHM VERIFICATION REQUIREMENTS ALGORITHMS CORRECTNESS RESOURCES IMPLEMENTATION TARGET PROGRAMMING LANGUAGE SOURCE CODE WRITTEN IN PURPOSE FIND SEQUENCE AUTOMATE PERFORMING TASK THE PROCESS THUS EXPERTISE APPLICATION DOMAIN FORMAL LOGIC RELATED TESTING DEBUGGING MAINTAINING THE SOURCE CODE IMPLEMENTATION OF BUILD SYSTEM MANAGEMENT DERIVED ARTIFACTS MACHINE CODE MIGHT BE TERM SOFTWARE DEVELOPMENT CODING THE ACTUAL WRITING SOFTWARE ENGINEERING ENGINEERING TECHNIQUES AS ONE PHASE SOFTWARE DEVELOPMENT PROCESS ONGOING DEBATE EXTENT CRAFT GOOD MEASURED APPLICATION THE GOAL EFFICIENT EVOLVABLE SOFTWARE SOLUTION DISCIPLINE TECHNICAL PROGRAMMER DO NOT NEED TO LICENSED PASS STANDARDIZED GOVERNMENTALLY CERTIFICATION ORDER CALL THEMSELVES PROGRAMMERS COVERS CRITICAL DEBATABLE WHETHER LICENSING THE PROFESSION SOMETIMES STRICT ENVIRONMENTS DEFINED UNITED STATES AIR FORCE SECURITY CLEARANCE REPRESENTING ONESELF PROFESSIONAL SOFTWARE ENGINEER LICENSE INSTITUTION ILLEGAL PARTS THE WORLD COMPUTER PROGRAMS PROGRAM ANALOGOUS HYPOTHESIS LINGUISTICS COGNITIVE SCIENCE POSTULATES PARTICULAR SPOKEN LANGUAGES NATURE THOUGHT LANGUAGE PATTERNS YIELD IDEA CHALLENGES THE POSSIBILITY CONDITION THOUGHTS SPEAKER ANCIENT CULTURES CONCEPTION BEYOND ARITHMETIC ALGEBRA GEOMETRY COMPUTATIONAL SYSTEMS ELEMENTS CALCULUS THE METHOD THE ONLY MECHANICAL DEVICE EXISTED NUMERICAL COMPUTATION AT THE BEGINNING HUMAN HISTORY ABACUS INVENTED SUMER CIRCA THE ANTIKYTHERA MECHANISM ANCIENT GREECE MECHANICAL CALCULATOR GEARS CONFIGURATION PERFORM TRACKED METONIC CYCLE CONSISTENT CALCULATING DATES OLYMPIAD KURDISH MEDIEVAL SCIENTIST AUTOMATA SYSTEM EMPLOYED WOODEN DRUM TRIGGER LEVER TURN PERCUSSION INSTRUMENT OUTPUT DEVICE DRUMMER PLAYING RHYTHMS JACQUARD LOOM JOSEPH MARIE JACQUARD DEVELOPED USES CARDS HOLES THE HOLE PATTERN THE PATTERN THE LOOM HAD TO FOLLOW WEAVING PRODUCE WEAVES CHARLES BABBAGE CONTROL ANALYTICAL ENGINE MATHEMATICIAN ADA LOVELACE FRIEND TRANSLATED ARTICLE ITALIAN MILITARY LUIGI MENABREA SIMPLY NOTES BERNOULLI NUMBERS CONTROVERSY SCOPE CONSIDER FIRST COMPUTER HERMAN HOLLERITH RECORDING DATA MEDIUM READ PRIOR MACHINE READABLE MEDIA LISTS DRIVE MACHINES MUSICAL INSTRUMENTS INITIAL TRIALS PAPER SETTLED PUNCHED CARD HOLLERITH CARDS KEYPUNCH RECORD FOUNDATION DATA PROCESSING TABULATING MACHINE COMPANY THE CORE IBM ADDITION CONTROL PANEL TYPE TO DO JOBS PHYSICALLY WHOSE OPERATIONS INVENTION VON NEUMANN ARCHITECTURE COMPUTER MEMORY CRAFTED BINARY NOTATION MODEL COMPUTER MACHINE LANGUAGE ASSEMBLY LANGUAGE INSTRUCTION TEXT ENTERING ABBREVIATIONS FOR EACH OPERATION CODE NUMBER LESS PRONE HUMAN ERROR LITTLE MORE NOTATION INSTRUCTION SETS ASSEMBLY LANGUAGES SYNTHESIS NUMERICAL CALCULATION PREDETERMINED OPERATION ORGANIZE INPUT MANNER EASY HUMANS CONCEIVE THE MODERN DEVELOPMENT OF FORTRAN HIGH LEVEL PROGRAMMING FUNCTIONAL DESIGN GENERAL WRITE TERMS ABSTRACT LEVEL OF ABSTRACTION HIGHER CALCULATIONS FORMULA THE PROGRAM CONVERTED MACHINE SPECIAL COMPILER TRANSLATES IN FACT NAME FORMULA TRANSLATION LANGUAGES COMMERCIAL COBOL TAPE COMPUTER PROGRAMMING IN THE PUNCH DATA STORAGE DEVICE COMPUTER TERMINAL INEXPENSIVE ENOUGH TYPING TEXT EDITOR CHANGES CORRECTIONS MUCH MORE ERROR PUNCHING THE CARD REPLACE PROGRESSED COMPUTERS GIANT LEAPS PROCESSING PROGRAMMING LANGUAGES ABSTRACTED UNDERLYING POPULAR ACTIONSCRIPT C HASKELL JAVA JAVASCRIPT PERL PHP PYTHON RUBY SQL VISUAL BASIC DOZENS GREATER OVERHEAD INCREASE SPEED MODERN PRACTICAL INCREASINGLY EASIER LEARN DEVELOP APPLICATIONS HARDWARE NECESSARY MAXIMUM PROCESSING SPEED CAREER DEVELOPED WORLD PARTICULARLY THE UNITED THE HIGH LABOR COST SUBJECT TO OUTSOURCING DECISIONS DEVELOPED COUNTRIES INCREASING ECONOMIC OPPORTUNITIES DEVELOPED AREAS CHINA AND INDIA WHATEVER THE APPROACH DEVELOPMENT MUST SATISFY PROPERTIES RESULTS DEPENDS MINIMIZATION RESOURCE MANAGEMENT BUFFER OVERFLOW RACE CONDITION LOGIC ERRORS DIVISION BY ZERO ROBUSTNESS ANTICIPATES PROBLEMS SITUATIONS CORRUPT UNAVAILABILITY OPERATING SYSTEM SERVICES NETWORK CONNECTIONS USER ERROR UNEXPECTED POWER OUTAGES USABILITY ERGONOMICS EASE PERSON CASES BREAK SUCCESS WIDE RANGE GRAPHICAL IMPROVE THE CLARITY COHESIVENESS USER PORTABILITY THE RANGE COMPUTER HARDWARE PLATFORMS COMPILED INTERPRETED DIFFERENCES SYSTEM RESOURCES BEHAVIOR AVAILABILITY PLATFORM SPECIFIC COMPILERS THE LANGUAGE MAINTAINABILITY PRESENT FUTURE IMPROVEMENTS BUGS SECURITY HOLES ADAPT MAKE THE DIFFERENCE QUALITY TO THE END AFFECT FATE EFFICIENCY PERFORMANCE MEASURE MEMORY SPACE SLOW NETWORK BANDWIDTH EXAMPLE CLEANING UP TEMPORARY FILE MEMORY LEAK HUMAN READER CONTROL FLOW SPEND THE MAJORITY TRYING UNDERSTAND EXISTING RATHER UNREADABLE STUDY SIMPLE TRANSFORMATIONS SHORTER REDUCED PROGRAMMING STYLE LITTLE NOTHING ABILITY THE COMPUTER COMPILE EXECUTE FACTORS INDENTATION STYLE COMMENTS DECOMPOSITION NAMING CONVENTIONS FOR VISUAL PROGRAMMING LANGUAGE INTENT RESOLVE ADOPTING STRUCTURE CODE