principles of computer
play

Principles of Computer What is a computer? Science I What is - PDF document

Lecture Outline Principles of Computer What is a computer? Science I What is computer science? Course mechanics Prof. Nadeem Abdul Hamid Hardware & programming overview CSC 120 Fall 2005 Lecture Unit 1 - Introduction


  1. Lecture Outline Principles of Computer  What is a computer? Science I  What is computer science?  Course mechanics Prof. Nadeem Abdul Hamid  Hardware & programming overview CSC 120 – Fall 2005 Lecture Unit 1 - Introduction  Compiling & running Java programs  Binary numbers 1 CSC120 — Berry College — Fall 2005 2 Portions based on Python Programming: An Introduction to Computer Science by John Zelle What is a ‘computer’? Modern Computers  What have you used a ‘computer’ for?  “A machine (?) that stores and manipulates information under the control of a  Writing a paper… balancing checkbook… playing changeable program.” games…  Two key elements to definition:  Computers also used to…  Device for manipulating information  Predict the weather… design airplanes… make  Calculators, gas pumps also manipulate info… but movies… run businesses… perform financial these are built to only perform single, specific tasks transactions… control factories…  Operate under control of a changeable program  How can one device perform so many tasks?  Can provide step-by-step instructions to a computer telling it what to do  What exactly is a ‘computer’?  By changing the computer program , can get the computer to perform different tasks 3 4 A Universal Machine Programming  Every computer is a machine for executing  Software (programs) control hardware (the (carrying out) programs physical machine)  Many different types of computers  Building software = programming  Macintoshes, PCs…  Challenging  Thousands of other kinds of computers, real and  See the big picture while paying attention to small details, but… theoretical  Anyone can learn to program  Remarkable discovery of computer science:  Become a more intelligent user of computers  All different types of computers have same power  Fun  With suitable programming, each computer can  Career basically do all the things any other can 5 6 1

  2. Computer Science (CS) Role of Algorithms in CS  Is NOT “the study of computers”  Dijkstra: computers are to CS as telescopes are to astronomy  Fundamental question of CS: What can be computed?  Computers can carry out any process we describe  So, what processes can be described in order to solve problems?  Algorithm : Step-by-step process to solve a problem 7 8 Algorithms in CS Subareas of CS  Architecture hardware-software interface  Step-by-step process that solves a problem  Artificial Intelligence thinking machines  More precise than a recipe  Eventually has to stop with an answer  Computational Geometry theory of animation, 3-D models  General description of a process rather than specific to a  Graphics from Windows to Hollywood computer or programming language  Operating Systems run the machine  Scientific Computing weather, hearts  Areas of CS discipline span  Theory (mathematics)  Software Engineering peopleware  Experimentation (science)  Theoretical CS analyze algorithms, models  Design (engineering) Many other subdisciplines… networking, numerical and symbolic  computation, bioinformatics, databases and information retrieval, web and multimedia design, security, human-computer interaction… 9 10 Assignments Course Mechanics  Weekly lab/homeworks  Syllabus, lectures notes, assignments, etc. on web page  Due on Wednesdays http://fsweb.berry.edu/academic/mans/nhamid/classes/cs120/05fall   Class meetings  Programming Projects Lectures: Mon/Wed/Fri, 10-10:50AM, SCI 107  Labs: Thurs, 3–5PM, SCI 228   DON’T WAIT UNTIL DAY/NIGHT BEFORE TO  Contact START WORKING ON ASSIGNMENTS Office: SCI 354B — Phone: 368-5632   No late work accepted, without formal excuse/prior Email: nadeem@acm.org  arrangement  Office Hours  You will NOT be able to complete the programming Mon — 11AM–12:30PM  assignments in one night Tue — 11AM–12:30PM  Wed — 11AM–12:30PM and 2–4PM   Send email if you have a problem (attached Thu — 10AM–12:30PM and 2-3PM  relevant files and say where you’re stuck) (or by appointment…)  11 12 2

  3. Programming Assignments Materials and Resources  Completed programs must ‘work’!!!  Textbook:  Java Concepts, 4th Edition , Cay Horstmann  Compile and run (will learn what that means later)  Online course website: Check regularly  If you leave programming assignments to  Software (in computer lab SCI 228) the last minute, you will run a major risk of  Java 5.0 (JDK): http://java.sun.com/j2se/1.5.0/download.jsp having incomplete work  Compiler; runtime system  DrJava: http://www.drjava.org  Editor; development environment 13 14 Grading and Evaluation Hardware Basics  Class participation and attendance (10%)  Lab participation and attendance (10%)  Assignments/Projects (40%)  Exams (40%) Tentative dates:  First exam: Friday, September 23, 2005  Second exam: Friday, October 28, 2005  Final exam: ???  Policies (see syllabus)  Attendance  Academic integrity  Late work  Disabilities 15 16 Central Processing Unit (CPU) Memory  Heart and brain of the machine  Stores programs and data  Chip composed of transistors, wiring  CPU can only directly access info. in main  Two primary components memory or primary storage (RAM- random  Arithmetic/Logic Unit (ALU) performs arithmetic access memory) and logical operations  Relatively expensive  Control Unit controls the order in which  Volatile (loses data when no power) instructions in the program are executed  Secondary storage- more permanent  Hard disk  Floppy, CD, DVD, tape, … Pentium (left) and PowerPC G3 chips 17 18 3

  4. RAM - Main Memory Peripheral Devices  Input Devices  Ordered sequence of storage cells  keyboard  Each holds one piece (a ‘word’) of data  mouse  ‘Data’ is a sequence of bits (on/off - 0/1)  Output Devices  8 bits = 1 byte  printer  video display  LCD screen  Each memory cell has a unique address  Auxiliary Storage (integer number)  disk drive  CD-ROM drive  DVD-ROM drive 19 20 Fetch-Execute Cycle Machine Code  How the CPU operates  Instructions/operations that CPU ‘understands’  Fetch the next instruction  Different vendors (Intel, Sun, IBM) use  Decode the instruction into control signals different sets of machine instructions  Get data if needed (from memory)  Execute the instruction  Extremely primitive Input Main Output CPU  Encoded as (binary) numbers devices Memory devices ALU, registers Bus 21 22 Programming Languages High-level Languages  Could we use English to give instructions to a  Designed to be used and understood by humans computer?  C, C++, Java, Perl, Scheme, BASIC, …  “I saw the man in the park with the telescope.”  All have well-defined, unambiguous syntax and  Who had the telescope? Who was in the park? semantics  ‘Natural languages’ are full of ambiguity and imprecision  Made up for by lots of redundancy and shared human knowledge  Problem:  Computer scientists design precise notations for  Humans write code (programs) in high-level languages expressing instructions/statements: programming  Computers only ‘understand’ machine language (0’s, 1’s) languages  Programming languages have structures with  Compiler : Program that translates programs from high-level language to machine code  Precise form ( syntax )  Precise meaning ( semantics ) 23 24 4

  5. Caveats Java Programming Language  Programs we write in this course will not be fancy  Benefits  Today’s sophisticated programs/games built by teams of highly skilled programmers, artists, other professionals  Simple (compared to C++)  Java language  Safe (security features prevent many ‘bad’ things)  Was designed for professionals, not students  Platform-independent (‘write once, run anywhere’)  Evolving - features change with different versions (we’ll be  Rich library (packages) using 5.0)  Cannot learn all Java in one semester  Lots of code already written for you to do lots of stuff  In fact, no one can hope to learn entire Java library in a  Designed for Internet (applets) lifetime…  Goal of this course: Learn how to think about problem solving and expressing precise solutions using a programming language 25 26 Writing a Program Software Life Cycle Specify the problem  remove ambiguities  identify constraints  Problem-solving and design  Develop algorithms, design   Implementation classes, design software architecture Problem-solving phase  Maintenance Implement program  Algorithm revisit design  test, code, debug  Problem revisit design  Documentation, testing,  maintenance of program Code From ideas to electrons   No shortcuts! Implementation phase 27 28 Writing and Compiling a Java Algorithms and Programs Program Using DrJava IDE = Integrated Development Environment  Algorithm  instructions for solving a problem in a finite amount of time using a finite amount of data  expressed in a precise, but general, way (using English?), independent of type of computer  Program  an algorithm written for a computer using a particular computer/programming language 29 30 5

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend