Some Basics See Chapters 1 & 2 Describe the basic features of an algorithm Explain how hardware and software collaborate in a computer’s architecture Give a brief history of computing Run a simple Python program Strings, integers and floating point numbers Initialize and use variables with appropriate names 1 IPO Model Processing Inputs Outputs 2 Fundamentals of Computer Science: Algorithms and Information Processing Computer science focuses on a broad set of interrelated ideas – Two of the most fundamental ones are: » Information processing In carrying out the instructions of an algorithm, “computing agent” manipulates data (or information) Starts with input -> produces output » Algorithms 3 Algorithms Steps for determining change when paying for something (i.e., subtracting two numbers): – Step 1: Write down the numbers, with larger number above smaller one, digits column-aligned from right – Step 2: Start with rightmost column of digits and work your way left through the various columns – Step 3: Write down difference between the digits in the current column of digits, borrowing a 1 from the top number’s next column to the left if necessary – Step 4: If there is no next column to the left, stop » Otherwise, move to column to the left; go to Step 3 The computing agent is a human being 4 Algorithms (continued) Sequence of steps that describes each of these computational processes is called an algorithm Features of an algorithm: – Consists of a finite number of instructions – Each individual instruction is well defined – Describes a process that eventually halts after arriving at a solution to a problem (or so we hope :-D ) – Solves a general class of problems 5 The Structure of a Modern Computer System A modern computer system consists of hardware and software – Hardware: physical devices required to execute algorithms – Software: set of these algorithms, represented as programs in particular programming languages 6 Computer Hardware Computers can also communicate with the external world through various ports that connect them to networks and to other devices 7 Computer Hardware (continued) Random access memory (RAM) is also called internal or primary External or secondary memory can be magnetic, semiconductor, or optical 8 Computer Software A program stored in computer memory must be represented in binary digits, or machine code A loader takes a set of machine language instructions as input and loads them into the appropriate memory locations The most important example of system software is a computer’s operating system – Some important parts: file system, user interfaces (terminal-based or GUIs) Applications include Web browsers, games, etc. 9 Computer Software (continued) 10 Genealogy of Common Languages 11 Getting Started with Python Programming Early 1990s: Guido van Rossum – invented the Python programming language Python is a high-level, general-purpose programming language for solving problems on modern computer systems Useful resources at www.python.org Extensive Python documentation at python.org/doc/ Python 3.2: www.python.org/download/releases/3.2.3 The programming language for this course. Note that we are using Python 3, not Python 2. 12 Running Code in the Interactive Shell Python is an interpreted language Simple Python expressions and statements can be run in the shell – Easiest way to open a Python shell is to launch the IDLE or WING – Shell is useful for: » Experimenting with short expressions or statements Do this! You can’t break the computer by doing so! » Consulting the documentation 13 Running Code in the Interactive Shell (continued) 14 Input, Processing, and Output Programs usually accept inputs from a source, process them, and output results to a destination – In terminal-based interactive programs, these are the keyboard and terminal display 15 Behind the Scenes: How Python Works We will talk more about this next class! 16 Data Types & Assignments Text processing is by far the most common application of computing – E-mail, text messaging, Web pages, and word processing all rely on and manipulate data consisting of strings of characters Although the first applications of computers were to crunch numbers The use of numbers in many applications is still very important 17 Data Types & Assignments (cont’d) A data type consists of a set of values and a set of operations that can be performed on those values 18 Integers In real life, the range of integers is infinite A computer’s memory places a limit on magnitude of the largest positive and negative integers – Python’s int typical range: –231 to 231 – 1 Integer literals are written without commas 19 Floating-Point Numbers Python uses floating-point numbers to represent real numbers Python’s float typical range: –10308 to 10308 and Typical precision: 16 digits 20 Floating-Point Numbers (continued) 21 Variables and the Assignment Statement A variable refers to a value in the memory – Makes it easy to remember and use later in program Variable naming rules: – Reserved words cannot be used as variable names » Examples: if, def, and import – Name must begin with a letter or _ (underscore) – Name can contain any number of letters, digits, or _ – Names are case sensitive » Example: WEIGHT is different from weight 22 Variables and the Assignment Statement (continued) Programmers use all uppercase letters for symbolic constants – Examples: TAX_RATE and STANDARD_DEDUCTION Variables receive initial values and can be reset to new values with an assignment statement <variable name> = <expression> 23 Required Readings Fundamentals of Python Sections 1.4, 1.4.1, 1.4.2, 2.3.1, 2.3.5, 2.4.1, 2.4.2. 24