Chapter 12 Programming Concepts and Languages © Paradigm Publishing Inc. 12-1 Presentation Overview • • • • Programming Concepts Problem-Solving Techniques The Evolution of Programming Approaches Programming Development and Documentation Tools • Programming Errors • The Software Development Life Cycle • Major Programming Languages © Paradigm Publishing Inc. 12-2 Programming Concepts What makes up a programming language? – Program – instructions telling a computer how to perform tasks – Programming languages – languages that communicate with the computer to create programs – Source code – text files that make up a programming language – Four main computer language programming elements are variables, executable statements, looping, and decision statements. © Paradigm Publishing Inc. 12-3 Programming Concepts High-Level versus Low-Level Languages – Low-level language (machine code) is a binary language consisting of 1s and 0s; runs faster and takes up less disk space. – High-level language is similar to natural languages, making it easier to learn and use. © Paradigm Publishing Inc. 12-4 Programming Concepts Each generation of programs builds on the contributions of the group of languages that preceded it. © Paradigm Publishing Inc. 12-5 Programming Concepts Classic Programming Elements – Variable – data value stored in computer memory – Executable statement –performs an action and then proceeds to the next statement in sequence – Looping – allows a program to return to a previously executed instruction and repeat it – Decision statement – point in a program where different actions may be performed depending on specific conditions © Paradigm Publishing Inc. 12-6 Programming Concepts Looping allows a computer program to continuously repeat the same steps, such as a program designed to direct a traffic light to display yellow, red, and green lights at a consistent rate. © Paradigm Publishing Inc. 12-7 Programming Concepts Using an if-then statement based on a particular action, such as pushing the crosswalk button, a program can interrupt the looping pattern, making the program more useful. © Paradigm Publishing Inc. 12-8 Problem-Solving Techniques Top-down design approach helps programmers break a large project into manageable parts. Breakdown process continues until there are no more steps. © Paradigm Publishing Inc. 12-9 Problem-Solving Techniques Problem-Solving Steps 1. 2. 3. 4. 5. 6. Identify the problem. Analyze the problem. Brainstorm solutions and choose the best one. Write the algorithm. Prototype the solution. Implement and test the solution. © Paradigm Publishing Inc. 12-10 ProblemSolving Techniques Step-by-step pseudocode algorithm for changing a lightbulb. © Paradigm Publishing Inc. 12-11 The Evolution of Programming Approaches Structured Programming – Creates groups of instructions as independent elements. – Structured groups of instructions are built on a routine, which is a section of a program to handle a function. – A routine is broken down into steps to accomplish the function. © Paradigm Publishing Inc. 12-12 The Evolution of Programming Approaches Modules – Code modules handle separate components of a program. – Each module is a solid portion of a larger structure. – Modules are reusable, and modularity helps in tracking down errors. – A macro is a recording of steps to perform a repetitive task. © Paradigm Publishing Inc. 12-13 The Evolution of Programming Approaches Object-Oriented Programming – Object-oriented programming (OOP) defines each module (object) with definite rules for interfacing and a protected set of variables. – Protected variables allow a programmer to prevent data from being altered during program execution. © Paradigm Publishing Inc. 12-14 The Evolution of Programming Approaches Rapid Application Development Rapid application development (RAD) reduces cost by decreasing time needed to develop a project. Programmers using RAD follow guidelines • Use visual development (4GL) tools when possible • Rapidly prototype new projects • Approach coding with these priorities – Use existing code first. – Buy someone else’s code second. – Write new code last. © Paradigm Publishing Inc. 12-15 Programming Development and Documentation Tools Compilers and Interpreters – Compiler – program that translates programming language source code into machine code – Interpreter – translates instructions one-by-one as source code is being executed; identifies errors as they are encountered, including the line containing the error © Paradigm Publishing Inc. 12-16 Programming Development and Documentation Tools Debuggers – Debugger – a software tool that helps programmers find errors quickly. – Allows programmers to examine closely what is happening when a program runs. – Usually an integral component of compilers and interpreters. © Paradigm Publishing Inc. 12-17 Programming Development and Documentation Tools Document Tools – Flowchart – provides a visual diagram of an algorithm – CASE tools – help programming team schedule and coordinate its operations – Comment – informal message inserted into a program usually to explain source code to later users © Paradigm Publishing Inc. 12-18 Programming Development and Documentation Tools These symbols are used in flowcharts to represent the logic of a program. © Paradigm Publishing Inc. 12-19 Programming Development and Documentation Tools Flowcharts help programmers visualize the steps in a software program. © Paradigm Publishing Inc. 12-20 Programming Development and Documentation Tools Flowcharts help programmers visualize the steps in a software program. © Paradigm Publishing Inc. 12-21 Programming Errors What programming errors are in programs? – Syntax errors – typing errors or misunderstanding of rules of the language – Logic errors – program instructs computer to perform an action incorrectly – Run-time errors – mistakes that occur when an application is running (crash or infinite loop) – Style errors – poorly written programming code that may cause dissatisfaction with program © Paradigm Publishing Inc. 12-22 The Software Development Life Cycle What are the steps in the software development life cycle? The software development life cycle involves planning, designing, implementing, testing, and release of application software. © Paradigm Publishing Inc. 12-23 Major Programming Languages Commonly used programming languages © Paradigm Publishing Inc. 12-24 Major Programming Languages Machine Code – programming language that computers actually read and interpret – machine code written in a binary string of 1s and 0s – difficult to memorize the long binary strings that comprise the machine code © Paradigm Publishing Inc. 12-25 Major Programming Languages Assembly Language – uses symbols and words to represent elements of machine code – must be converted to machine code by a compiler – runs fastest and uses least memory – programs are difficult to write and development times are lengthened © Paradigm Publishing Inc. 12-26 Major Programming Languages COBOL – used chiefly for business applications by large institutions and companies – is slow and cumbersome language, but has large body of existing code and many programmers know the language © Paradigm Publishing Inc. 12-27 Major Programming Languages RPG – commonly used in business environments – inefficient, but simplifies coding of database applications – is familiar to many programmers – often used on midrange and mainframe computers © Paradigm Publishing Inc. 12-28 Major Programming Languages FORTRAN – for many years, the language of choice for math, science, and engineering projects – still in use today in factories and laboratories © Paradigm Publishing Inc. 12-29 Major Programming Languages BASIC – high-level language that is friendlier and more natural than COBOL or FORTRAN. – runs slowly, but faster to develop for programmers. This sequence of code will print the numbers 1 to 10. © Paradigm Publishing Inc. 12-30 Major Programming Languages Visual Basic (VB) – language of choice for developing software prototypes or for developing interfaces for Windows platforms – quick and easy to develop, but run slowly and is demanding of RAM and disk space – supports graphic interfaces © Paradigm Publishing Inc. 12-31 Major Programming Languages C – compromise between high-level and low-level languages, containing components of BASIC and assembly language – not as easy to read as BASIC, but runs considerably faster and uses less space © Paradigm Publishing Inc. 12-32 Major Programming Languages C++ – superset of C; any C program should run in C++. – added features such as object-oriented programming. This sequence of code will print the numbers 1 to 10. © Paradigm Publishing Inc. 12-33 Major Programming Languages C# – modern object-oriented language derived from C++ and Java – combines productivity of Visual Basic with power of C++ – allows use of features in Microsoft.NET framework, C, and Microsoft’s Component Object Model (COM) © Paradigm Publishing Inc. 12-34 Major Programming Languages Scripting Languages – interpreted language that is relatively easy to learn and use – explains what a computer should do in English-like terms but not precisely how the computer should do it – Hypertext Markup Language (HTML), JavaScript, VBScript, and perl are scripting languages © Paradigm Publishing Inc. 12-35 Major Programming Languages This sequence of code directs a browser to display buttons users can click to change the background color within the Web browser window. © Paradigm Publishing Inc. 12-36 On the Horizon Based on the information presented in this chapter and your own experience, what do you think is on the horizon? © Paradigm Publishing Inc. 12-37