43
Objectives Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Profilers Overview Computational thinking Algorithms Pseudocode Basic elements Computing and compilers Comp Sci 1570 Introduction to C++

Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Computing and compilers

Comp Sci 1570 Introduction to C++

Page 2: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 3: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Objectives

• Evaluate the difference between hardware and software

• Find out about the various types of software

• Get a high level understanding of how program code istransformed into working software applications

Page 4: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 5: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

What is a computer program?

• A sequence of instructions that dictate the flow ofelectrical impulses in a computer system.

• Can perform useful tasks, solve high-level problems, playgames.

• We can be oblivious to the lower-level activity

• Most programmers write software at this higher, moreabstract level also.

• An accomplished computer programmer can developsophisticated software with little or no interest orknowledge of the actual computer system upon which itruns.

• Software construction tools hide the lower-level detailsfrom programmers, allowing them to solve problems inhigher-level terms.

Page 6: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

What is a computer system?

• Hardware (only sometimes important to CS)

• Software (CS!)

Page 7: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 8: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Hardware

• Peripheral devices: Input/Output devices, Printers,Monitor, Speakers, Mic, The power supply,

• Internals: The ”motherboard” with memory chips, TheCPU (central processing unit), Hard drive, A lot of wires,etc

• What is a CPU?

Page 9: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

What is a transistor?

Page 10: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 11: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

What is software?

Page 12: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 13: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Machine code

• Computers understand language that consists of sets ofinstructions made of ones and zeros.

• This computer language is often called machine code.

• Programming a computer directly in machine languageusing only ones and zeros is very tedious and error prone.

Page 14: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 15: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

High level languages

• To make programming easier, high level languages can beused.

• A computer can only understand machine language

• Humans wish to write in high level languages

• High level languages have to be re-written (translated)into machine language

• Done by special programs called compilers, interpreters, orassemblers

Page 16: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 17: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Interpreted versus compiled languages

Page 18: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 19: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

C++

• C++ is a human readable high level language

• The higher-level language code is called source code.

• C++ is designed to be a compiled language

• Generated program is often highly efficient.

• Machine translated code is also called object code or anexecutable.

• A compiler translates your C++ code into machinereadable low level language

• The set of tools is sometimes known as the developmenttool-chain, whose core are a compiler and its linker.

Page 20: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 21: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Simplified steps of a compiler

1 Checking the syntax:• Compiler will check that you are using the language

(C++) correctly• If you make a mistake, the compiler will issue an error

message.

2 Produce the executable file:• Produces a file containing the machine code that the

computer can execute.• You ”run” the executable.

The target code may be the machine language for a particularplatform or embedded device.

Page 22: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Parts of the development tool-chain

Don’t usually think about the C++ pre-processor, compiler,and linker working as three separate programs (although theyare):

• Pre-processor adds to or modifies the contents of thesource file before the compiler begins processing the code.#include information about libraries

• Compiler translates C + + source code to machine code.

• Most compiled C + + code is incapable of running byitself and needs some additional machine code to make acomplete executable program. The missing machine codehas been pre-compiled and stored in a repository of codecalled a library. Linker combines the compiler-generatedmachine code with pre-compiled library code or compiledcode from other sources to make a complete executableprogram.

Page 23: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 24: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Editors and compilers

Page 25: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Editors

• Allows the user to enter the program source code and saveit to files.

• Increase programmer productivity by using colors tohighlight language features.

• Syntax of a language refers to the way pieces of thelanguage are arranged to make well-formed sentences.

• ”The tall boy runs quickly to the door.” uses properEnglish syntax.

• ”Boy the tall runs door to quickly the.” is not correctsyntactically, though has correct words.

• Syntax-aware editors can use colors or other specialannotations to alert programmers of syntax errors beforethe program is compiled.

Page 26: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 27: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Debuggers

• A debugger allows a programmer to more easily trace aprogram’s execution in order to locate and correct errors inthe program’s implementation.

• With a debugger, a developer can simultaneously run aprogram and see which line in the source code isresponsible for the program’s current actions.

• The programmer can watch the values of variables andother program elements to see if their values change asexpected.

• Debuggers are valuable for locating errors (also calledbugs) and repairing programs that contain errors.

• Learning to debug and troubleshoot on your own maybe one of the most important skills of a goodprogrammer.

Page 28: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 29: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Profilers

• A profiler collects statistics about a program’s executionallowing developers to tune appropriate parts of theprogram to improve its overall performance.

• A profiler indicates how many times a portion of aprogram is executed during a particular run, and how longthat portion takes to execute.

• Profilers also can be used for testing purposes to ensure allthe code in a program is actually being used somewhereduring testing.

• The main purpose of profiling is to find the parts of aprogram that can be improved to make the program runfaster.

Page 30: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 31: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

The whole process

• Someone has a problem

• They write a C++ solution to the problem

• The compiler translates C++ into machine code

• The program you write will demand memory space forvariables, communication from and to the keyboard andmonitor, and possibly other uses of peripherals.

• The OS will schedule the use of these resources of thecomputer.

• The CPU, RAM, disk drives, etc follow those instructions

Page 32: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 33: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

What is a program?

• Sequence of instructions that specifies how to perform acomputation.

• The instructions (or commands, or statements) lookdifferent in different programming languages, but there area few basic functions that appear in just about everylanguage:

• input: Get data from the keyboard, or a file, or some otherdevice.

• output: Display data on the screen or send data to a fileor other device. math: Perform basic mathematicaloperations like addition and multiplication.

• testing: Check for certain conditions and execute theappropriate sequence of statements.

• repetition: Perform some action repeatedly, usually withsome variation.

Page 34: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 35: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Algorithms

• The concepts of computer programming are logical andmathematical in nature.

• In theory, computer programs can be developed withoutthe use of a computer.

• Programmers can describe a procedure using abstractsymbols that correspond to the features of real-worldprogramming languages but appear in no real-worldprogramming language.

Page 36: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Algorithms and computational problem solving

Our goals this week include:

• learn how to break apart a big problem into several smallerproblems

• Create a sequence of steps for automatically solving theseproblems

• Pattern these small solutions together in such a way thattogether, they automatically solve the large problem

Page 37: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Algorithms

What is an algorithm?

• Algorithm is a concise, correct step-by-step sequence ofsteps to solve a problem.

And why do we care to discuss algorithms here?

• To be successful in writing programs, you need to write, orat least think, algorithms.

Page 38: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Outline

1 Objectives

2 Introduction

3 Hardware

4 SoftwareLow levelHigh levelInterpreted and compiledC++CompilersEditorsDebuggersProfilersOverview

5 Computational thinkingAlgorithmsPseudocode

Basic elements

Page 39: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Pseudocode

• Step-by-step verbal outline of your code that you cangradually transcribe into programming language.

• Many programmers use it to plan out the function of analgorithm before setting themselves to the more technicaltask of coding.

• Informal guide, a tool for thinking through programproblems

• Shows how a computing algorithm should and could work.

• Intermediate step in programming, in between the initialplanning stage and the stage of writing actual, executablecode.

• Allows the designer to focus on the logic of the algorithmwithout being distracted by details of language syntax.

Page 40: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Good pseudocode practices

• Pseudocode needs to be complete.

• It describe the entire logic of the algorithm so thatimplementation becomes a rote mechanical task oftranslating line by line into source code.

• In general, the vocabulary used in the pseudocode shouldbe the vocabulary of the problem domain, not of theimplementation domain.

Page 41: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

What are the basic constructs of pseudocode?

It has been proven that three basic constructs for flow ofcontrol are sufficient to implement any ”proper” algorithm.

1 SEQUENCE is a linear progression where one task isperformed sequentially after another.

2 WHILE is a loop (repetition) with a simple conditionaltest at its beginning.

3 IF-THEN-ELSE is a decision (selection) in which a choiceis made between two alternative courses of action.

Although these constructs are sufficient, it is often useful toinclude three more constructs:

1 REPEAT-UNTIL is a loop with a simple conditional test atthe bottom.

2 CASE is a multiway branch (decision) based on the valueof an expression. CASE is a generalization ofIF-THEN-ELSE.

3 FOR is a ”counting” loop.

Page 42: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Example problems

How can we look up a word in a dictionary?How can we sort a stack of cards?

Page 43: Comp Sci 1570 Introduction to C++ · Introduction Hardware Software Low level High level Interpreted and compiled C++ Compilers Editors Debuggers Pro lers Overview Computational thinking

Objectives

Introduction

Hardware

Software

Low level

High level

Interpreted andcompiled

C++

Compilers

Editors

Debuggers

Profilers

Overview

Computationalthinking

Algorithms

Pseudocode

Basic elements

Wrapping it up