Hardware and Software UCT Department of Computer Science Computer Science 1015F Hussein Suleman March 2009.

Slides:



Advertisements
Similar presentations
Introduction to Computer Programming Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Advertisements

 Computer hardware components are the physical pieces of the computer.  The major hardware components of a computer are: – The central processing.
Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program.
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Introduction Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved. 1 Introduction.
16 March, 2000 CS1001 Lecture 1 Introduction - Syllabus History of Computers Computer Components.
COMP 14 Introduction to Programming
1 The development of modern computer systems Early electronic computers Mainframes Time sharing Microcomputers Networked computing.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
1 Chapter 1 The Big Picture. 2 2 Computing systems are dynamic entities used to solve problems and interact with their environment. They consist of devices,
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
1 6 Abacus An early device to record numeric values Blaise Pascal Mechanical device to add, subtract, divide & multiply Joseph Jacquard Jacquard’s Loom,
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Chapter 01 Nell Dale & John Lewis.
Introduction to Computers and Python. What is a Computer? Computer- a device capable of performing computations and making logical decisions at speeds.
Introduction to Programming Dr Masitah Ghazali Programming Techniques I SCJ1013.
History of Programming Languages
About the Presentations The presentations cover the objectives found in the opening of each chapter All chapter objectives are listed in the beginning.
Chapter 1 An Overview of Computers and Programming Languages.
BACS 287 Basics of Programming BACS 287.
CREATION OF THE COMPUTER & THE GRAND IDEAS OF COMPUTER SCIENCE
Introduction to Computing Hussein Suleman February 2007 UCT Department of Computer Science Computer Science 1015F.
CS 1 •This is Computer Science 1. •Who is Professor Adams?
Welcome to Computing Presentation slides modified by M. A. Papalaskari from “Java Software Solutions Foundations of Program Design (3 rd ed.)” by John.
Introduction Chapter 1. 1 History of Computers Development of computers began with many early inventions: The abacus helped early societies perform computations.
An Introduction to Computers August 12, 2008 Mrs. C. Furman.
Chapter 1 The Big Picture.
1.1 The Computer Revolution. Computer Revolution Early calculating machines Mechanical devices used to add and subtract By Babylonian (Iraq) 5000 years.
CMSC 120: Visualizing Information 1/29/08 Introduction to Computing.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Introduction Lecture 01.
CPS120: Introduction to Computer Science Introduction to Computers.
CPS120: Introduction to Computer Science Introduction to Computers.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
Mrs. Ulshafer August, 2013 Java Programming Chapter 1.
Chapter 1 Introduction.
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Calculators are used to increase speed and accuracy of numerical computations The abacus has roots dating back over 5,000 years Mechanical calculators.
Computer History How did we get here?.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
Chapter 2.
Chapter 1 An Overview of Computers and Programming Languages.
©2013 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. Introduction to Computers and Computing.
Evolution of the Computer. Zeroth Generation- Mechanical 1.Blaise Pascal –Mechanical calculator only perform Von Leibiniz –Mechanical.
1 Chapter 1 Background Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
Computer A Computer may be defined as an electronic device that operates upon data. So, a computer can store, process and retrieve data as and when desired.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
CHAPTER 1 OVERVIEW OF COMPUTER AND PROGRAMMING 1.1 Electronic Computer Then and Now 1.2 Computer Hardware 1.3 Computer Software 1.4 The Software Development.
Introduction to Computers
CSC235 Computer Organization & Assembly Language
Java Programming: From the Ground Up
CSCI 161: Introduction to Programming
Chapter 1: An Overview of Computers and Programming Languages
Chapter 1 The Big Picture
Computer Organization and Architecture
The abacus has roots dating back over 5,000 years
Introduction to Programming
About the Presentations
Chapter 1: An Overview of Computers and Programming Languages
C++ Programming: From Problem Analysis to Program Design
Computer Science I CSC 135.
PARTS OF THE COMPUTER squires productions.
Computers: Hardware and Software
PARTS OF THE COMPUTER.
Chapter 2: Computer Hardware
History of Computers - Long, Long Ago
Computer components is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format. Computer The computer.
Computer components.
Presentation transcript:

Hardware and Software UCT Department of Computer Science Computer Science 1015F Hussein Suleman March 2009

Hardware  Hardware refers to the physical parts of the computer. Hardware is sometimes referred to as computer components and peripherals. E.g., Motherboard, Hard Disk/Drive  Software refers to the set(s) of instructions given to the computer to execute one or more tasks. Software is sometimes referred to as programs or applications. E.g., Microsoft Office, Firefox

Early Calculation 1/2 Early Chinese abacus can be used to add, subtract, multiply and divide. Mechanical calculators invented by Schickard, Pascal, Leibniz, etc. used cogs and wheel to compute. Slide rules performed multiplication and division using logarithms – in popular use until about Reference: Wikipedia

Early Calculation 2/2 In early 1800s, Jacquard used punched cards to control a loom. Hollerith used punched cards for the 1890 US census (his company eventually became IBM!). Babbage’s difference engine (1830) calculated tables of polynomial values.

Analogue Computing Vannevar Bush (1930) built a differential analyzer that used wheels/discs to perform integration. Babbage designed (but never built) the first general-purpose programmable computer – the analytical engine.

Vacuum Tubes ENIAC (1945) was one of many early programmable digital computers, using vacuum tubes for computation and patch cables for manual programming.

1960s to Present First transistors and integrated circuits and finally microprocessors, revolutionised computing, made them small, cheaper and more general-purpose. ZX80 (1980)‏ Apple MAC (1985)‏ IBM PC (1980)‏

The Von Neumann Architecture  This describes how a conceptual computing device works: Memory stores data and instructions. Control Unit (CU) obtains and executes instructions. Arithmetic Logic Unit (ALU) does calculations. Accumulator is internal ALU storage for some data. Input is process of getting data into machine. Output is process of obtaining data from machine.  Most modern computers are Von Neumann machines!

Parts of a Modern Computer 1/2 Monitor: for displaying output System Unit: CPU, Memory, Hard drive, Floppy drive, … Keyboard and Mouse: for input

Parts of a Modern Computer 2/2  Central Processing Unit (CPU): microchip that performs core computation. It usually contains the ALU and CU.  Memory (primary storage): microchips that store data which can be accessed while computer is switched on. Random Access Memory (RAM) is volatile and modifiable. Read-Only Memory (ROM) cannot be changed.  Hard drive, Floppy drive (secondary storage): store data on magnetic discs permanently i.e., the data is not lost when the computer is switched off.  Input/Output devices: transfers data from operator to machine and vice versa.  Operating System: software system that manages resources on computer and executes application programs, e.g., Windows XP, Ubuntu Linux.

The IBM PC and compatibles...  Original IBM PC (1981), 8088, 4.77MHz  XT (1983), 8086, 10MHz  AT (1984), 80286, 20MHz  (1986), 33MHz  (1989), 66MHz  Pentium I (93), 133MHz II (97), 400MHz III (99) 1GHz IV (2000) 3GHz  Intel Core 2 (2006), 2GHz

Can Computers Get Faster?  Moore's Law: Number of transistors (speed of computers) doubles every two years.  Stopped at Pentium 4!  Not possible to cram more transistors Heat dissipation Power consumption  Now use more cores per CPU – currently quad-core, but soon possibly many more cores.  Computer scientists must “think in parallel”!

Programming Languages

Programming Languages Classes  The language directly understood by a computer is called machine language. E.g., B4 4C CD 21 terminates a program on a PC  Assembly language is a low-level language with mnemonics (codes) used for each instruction to make programming easier for humans. E.g., MOV AH,4Ch INT 21h  Low level languages are languages geared towards machines (computers).  High-level languages are languages that are easier for humans to use. E.g., Java, C++, Pascal

Popular Programming Languages  C++ Can be used by engineers and scientists for high performance applications.  Pascal Can be used for teaching computer programming.  Perl, Python Can be used for rapid application development.  PHP Can be used for Web-based applications.  C# Can be used for Windows applications.

Programming Languages Types 1/2  Imperative Languages Programs state explicitly how problem is to be solved. Programs are broken down into named modules of sequential code. e.g., FORTRAN, COBOL  Object-Oriented Languages Special case of imperative languages. Real world is modeled as data+actions that can be performed on data. e.g., Java, Smalltalk

Programming Languages Types 2/2  Declarative Languages Programs state what is to be solved – engine seeks out solution! Programs are stated as rules. e.g., Prolog, XSL  Functional Languages Programs state how problem is solved by applying and composing functions. Programs are stated as functions. e.g., LISP, Mathematica

Software for Programming  A compiler is a program that converts/translates a program from a high-level language (what we can understand easily) to a low-level language (what the computer can understand).  The low-level program is then executed by the CPU directly (if it is already in machine code) or via an interpreter or virtual machine.  A debugger is a special tool to help find errors in a program.

Other Types of Software  Systems Software Operating System (Windows XP, Ubuntu Linux, etc.) Development Tools (Java compiler, Jgrasp, etc.)  Applications Software Office applications (OpenOffice, MSOffice, etc.) Utilities (Zip, Notepad, etc.) Internet applications (Firefox, IE, etc.) Games...