1 / 42

Introduction to Computer Science

Introduction to Computer Science. Overview of Discussion. What is computer science? What is a computer? What can computers do? How do computers solve problems? What is computer science? Who invented computers? Conceptual computers Computing devices. Learning Objectives.

pnorris
Download Presentation

Introduction to Computer Science

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Computer Science

  2. Overview of Discussion • What is computer science? • What is a computer? • What can computers do? • How do computers solve problems? • What is computer science? • Who invented computers? • Conceptual computers • Computing devices

  3. Learning Objectives • Define and use terminology • Examples: computer, computer science, algorithm, specification, correctness, efficiency, von Neumann machine • Distinguish between algorithms and non-algorithms • Give a brief history of computers (up to 1950)

  4. Computer Workstation Which one is the computer? Rock Calculator Television Modern Airplane Washing Machine

  5. What questions would you ask? What experiments would you run? Is it a Computer?

  6. Does not act or process Takes no input and produces no output Is a rock a computer? • Computers must be able to handle input and output

  7. Input: dirty clothes Output: clean clothes Does not handle information Is a washing machine a computer? • Computers input and output information

  8. Input: information from cables or radio waves Output: information as sound and picture Does not process information Is a television set a computer? • Computers process information by computing new results and answering queries

  9. Input: information from radio waves Output: manipulations to the airplane Can only handle specific information necessary for flight control Is a modern airplane a computer? • Computers are general purpose because they can perform many different tasks

  10. Input: numbers and mathematical operations Output: answer Handles any numeric task Cannot remember which buttons are pressed Is an ordinarycalculator a computer? • Computers are programmable so they can remember sequences of operations

  11. Definition of a Computer • a general purpose, • programmable, • information processor • with input and output

  12. Computing Agents • Definition of computers does not cover all that computer scientists study • Broader class of objects and methods – computing agents • Have some or all of the characteristics of a computer

  13. Specialized Computing Devices and Information Appliances • Devices limited by set of operations or programmability • Calculators limited to operations described by their buttons • Global Positioning System (GPS) calculates latitude and longitude from satellite signals • Cell phone allows one to surf the web • Information appliances – performs a single job well

  14. Embedded computers and robots • Machines with full-fledged computers inside • Washing machines, airplanes, ATMs, etc. • Such machines require highly reliable, predictable computer programs • All physical mechanisms controlled by computers are robotic devices • Restrict definition to machines that are general purpose and programmable • Robotic arm or cart

  15. Natural computing agents • Living organisms process information in their efforts to eat, survive, and reproduce • 1940s study showed frogs collect less visual information than people • Identify rapidly moving objects as food, slowly moving objects as predators • Study physical events in terms of information they contain and process • Chemical reactions, crystal formations, plant growth, etc.

  16. What is a computer? • Definition of a computer is narrow • Definition of computing agent is broad • Although many computer scientists focus on the computer, some computer scientists deal with computing agents

  17. What can computers do – today? • Business productivity managers • Personal information managers • Spreadsheets • Database software • Desktop publishing • Multimedia encyclopedias • Simulate the physical world • Produce a music video

  18. What might computers do – tomorrow? • Diagnose diseases • MYCIN captures medical knowledge in rules that allowed a computer to identify an ailment based on symptoms • Control robots that walk, talk, and learn • CMU created a program that drove a van from Pittsburgh to D.C. using cameras for eyes • Compose music and create art

  19. How do computers solve problems? • Humans deconstruct problems into small operations that a computer can carry out • Writing an algorithm • Solve a problem by computer requires • State the problem clearly in a problem statement • Solve the problem with an algorithm that gives clear instructions • Use a computing agent to carry out the instructions

  20. Stating the problem clearly • Describes what to do, not how to do it • How do I get from Downtown Baltimore to the Timonium Campus? • Solve general classes of problems • How do I get from point A to point B? • What is the square root of y?

  21. Specifying a problem • Clear problem statement is called the specification • What information can we use as input • What the output, or solution, to our problem should look like • Specification for the square root problem • Input: A positive number y > 0 • Output: A positive number x such that x2 = y • Make sure specification is not ambiguous

  22. Solving the problem using an Algorithm • Algorithm – a clear sequence of instructions for performing a task • a well-ordered sequence • of well-defined, • feasible operations • that takes finite time to carry out

  23. Finding the square root to the nearest tenth • For this example we are interested in the square root of 55 • Find the two integers between which √55 lies • Do this by starting at 0 and continuing up through the integers until you find an integer whose square is less than 55 and the next integer has a square larger than 55 • Find the first estimate by averaging the two integers • Divided 55 by the estimate. Compute it to one more place than you want in the final answer • Average the estimate and the result of step 3 • Repeat steps 3 and 4 until the tenth digit does not change

  24. To shampoo your hair Rinse Lather Repeat To set the time on the VCR Open the front panel Push the button Set the hours, then the minutes To write the Great American Novel Get paper and pencil Sit down Write word on paper If novel is great, quit. Otherwise, go back to step 3. Almost Algorithms

  25. Using the computing agent • The square root algorithm is only an algorithm for an agent that understands English and can perform arithmetic • Requirements imposed by the computing agent • Algorithm is in a language the computing agent understands • Algorithm uses primitive operations that the agent can carry out

  26. Necessity of artificial languages • Problems with natural languages (like English) • Flexible • Often ambiguous • Computers use artificial languages with precise meanings • mathematical equations, music notation, programming languages • Programming languages define primitive operations computing agents understand

  27. Who invented computers? • Computer sciences has roots in two fields • Mathematics • Alan Turing and the Turing machine (1930s) • Developed theories with paper and pencil about how to perform computations by hand • Engineering • John von Neumann and the von Neumann machine (1940s) • Showed how to build physical computers out of electronic circuitry

  28. Mathematical Roots • Leibniz’s Dream (1600s) • Can we find a universal language for mathematical algorithms that will let us describe and solve any problem? • Reduce all reasoning to a fixed set of basic rules • Determine truth or falsity of sentences by fixed rules for manipulating sentences • George Boole (1800s) • Introduces binary notation of calculation • Computers use binary system for logic and arithmetic

  29. More on Theory • David Hilbert (1928) • Challenges the mathematical community to find an infallible, mechanical method for constructing and checking truth of mathematical statements • Interested in an algorithm • Alonzo Church, Alan Turing, and Kurt Gödel construct arguments that there is no solution to Hilbert’s Challenge • Builds a conceptual computer for his argument

  30. The Turing Machine and the Church-Turing Thesis • Turing Machine • Machine with a finite set of rules and an infinite amount of “scratch paper” for computation • No one has designed a theoretical or actual computer that can do more than a Turing machine • Machine could not solve Hilbert’s problem • Church-Turning Thesis • The Turing Machine captures what we mean by computational systems • Is as powerful an any other mechanical computing agent

  31. Engineering Roots • First step development of calculators • Abacus – developed 5000 years ago in the Middle East • Pascaline – first mechanical calculator using gears for calculation (1642) • Difference Engine – conceptual design that used hundreds of gears to compute mathematical functions (1820s)

  32. Electronic Circuits • Telegraph – uses electricity to convey letters and transmit information quickly (1844) • Hollerith Tabulating Machine – Uses electricity and punch cards to calculate the US census (1890) • Z2 – used circuitry to compute arithmetic operations (1930s)

  33. Programmed Devices • Jacquard Loom – weaves cloth using a pattern specified using punch cards (1801) • The Analytic Engine – conceptual design for a machine consisting of a Mill, Store, Printer, and Readers • Led to important programming concepts • ENIAC – one of the first programmable electronic computers (1945) • Programmed by routing cables and flipping switches

  34. von Neumann Machine • Store programs in electronic memory along side the data (1943) • Move and manipulate a program like data • Enabled high-level programming languages Input Central Processing Unit (CPU) Output Data going in Data going out Memory

  35. Machine Languages • Only language computer directly understands • “Natural language” of computer • Defined by hardware design • Machine-dependent • Generally consist of strings of numbers • Ultimately 0s and 1s • Instruct computers to perform elementary operations • One at a time • Cumbersome for humans • Example: +1300042774+1400593419+1200274027

  36. Assembly Languages • English-like abbreviations representing elementary computer operations • Clearer to humans • Incomprehensible to computers • Translator programs (assemblers) • Convert to machine language • Example: LOAD BASEPAYADD OVERPAYSTORE GROSSPAY

  37. High-level Languages • Similar to everyday English, use common mathematical notations • Single statements accomplish substantial tasks • Assembly language requires many instructions to accomplish simple tasks • Translator programs (compilers) • Convert to machine language • Interpreter programs • Directly execute high-level language programs • Example: grossPay = basePay + overTimePay

  38. Programming Approaches • Structured programming (1960s) • Disciplined approach to writing programs • Clear, easy to test and debug, and easy to modify • Focus on what the program does • Object Oriented programming • Object is an entity characterized by a state and a behavior • state is encoded in the computer program as data • behavior is encoded as methods

  39. Objects • Reusable software components that model real world items • Meaningful software units • Date objects, time objects, paycheck objects, invoice objects, audio objects, video objects, file objects, record objects, etc. • Any noun can be represented as an object • More understandable, better organized and easier to maintain than procedural programming • Favor modularity • Software reuse • Libraries

  40. C++ • C++ programs • Built from pieces called classes and functions • C++ standard library • Rich collections of existing classes and functions • “Building block approach” to creating programs • “Software reuse”

  41. Basics of a Typical C++ Environment • C++ systems • Program-development environment • Language • C++ Standard Library

  42. Edit Compile Make Run Preprocessor Linker Editor Disk Disk Disk Disk Disk . . . . . . . . . . . . Basics of a Typical C++ Environment Program is created in the editor and stored on disk. • Phases of C++ Programs: • Edit • Preprocess • Compile • Link • Load • Execute Preprocessor program processes the code. Compiler creates object code and stores it on disk. Compiler Linker links the object code with the libraries, creates a.out and stores it on disk Primary Memory Loader Loader puts program in memory. Primary Memory CPU takes each instruction and executes it, possibly storing new data values as the program executes. CPU

More Related