CPSC 171 Introduction to Computer Science Lecture: MWF 1:15pm-2:35pm, Colton 103 Lab 1: TH 9:40am-11:40am, Colton 106 Lab2: TH 2pm-4pm, Colton 106.

Slides:



Advertisements
Similar presentations
CS107: Introduction to Computer Science Lecture 2 Jan 29th.
Advertisements

CSci 107 Introduction to Computer Science Lecture 1.
Csci 107 Introduction to Computer Science. Administrativia See class webpage for –Office hours –Grading policy –Syllabus –Lab assignments –Readings.
Chapter 1: An Introduction to Computer Science Invitation to Computer Science, Java Version, Third Edition.
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Chapter 1: An Introduction to Computer Science Invitation to Computer Science, C++ Version, Third Edition.
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.
CSci 107 Introduction to Computer Science Lecture 1.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
COMS W1004 Introduction to Computer Science May 28, 2008.
Appendix The Continuing Story of the Computer Age.
Lecture 2 Computer development history. Topic History of computer development Computer generation Programming language.
Chapter 1: An Introduction to Computer Science
CS10051 Section 601 Introduction to Computer Science Fall 08 Dr. Angela Guercio Dr. C. David Hunter.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
1 8/28/06CS150 Introduction to Computer Science 1 Professor: Chadd Williams
Computers What is it? History, Moore’s Law How to build your own? Sohaib Ahmad Khan CS101 - Topical Lecture
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 An Introduction to Computer Science
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 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to 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.
Chapter 01 Nell Dale & John Lewis.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
CS 1 •This is Computer Science 1. •Who is Professor Adams?
INTRODUCTION TO COMPUTING
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
CS 1410 Intro to Computer Tecnology Computers and History1.
IT253: Computer Organization Lecture 1: Introduction Tonga Institute of Higher Education.
CPSC 321 Introduction to Logic Circuit Design Mihaela Ulieru (‘Dr. M’)
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.
Generations Of Computer Copyright(c)2011 Presentation Point( om)
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
1 8/29/05CS150 Introduction to Computer Science 1 Professor: Shereen Khoja
COMP 268 Computer Organization and Assembly Language A Brief History of Computing Architecture.
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
1 Invitation to Computer Science 6 th Edition Chapter 1 An Introduction to Computer Science.
1 CPRE210: Introduction to Digital Design Instructor –Arun K. Somani –Tel: – –Office Hours: MWF 10:00-11:00 Teaching Assistant.
CMSC 671 Introduction to Artificial Intelligence Course Overview Fall 2012.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
CPSC 121: Models of Computation Unit 0 Introduction George Tsiknis Based on slides by Patrice Belleville and Steve Wolfman.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
CPSC 171 Introduction to Computer Science Algorithm Discovery and Design.
Welcome to COMP 250 Introduction to Computer Science! Mathieu Blanchette.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI 230 Models of Computation Dale Roberts, Lecturer Computer Science,
Computer Science 101 Theory of Computing. Computer Science is... The study of algorithms, with respect to –their formal properties –their linguistic realizations.
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
The computer is a purpose device that can be programed to carry out a finite set of arithmetic or logical operations. Computer can solve more than one.
Textbook C for Scientists and Engineers © Prentice Hall 1997 Available at NUS CO-OP at S$35.10.
Computer Programming for Engineers CMPSC 201C Fall 2000.
Introduction Computer Organization Spring 1436/37H (2015/16G) Dr. Mohammed Sinky Computer Architecture
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.
Welcome to Data Structures. Course Introduction Instructor : r 신 용 태 r 愼 鏞 台 r Yongtae Shin r 정보과학관 422 호 r r r Homepage.
Microprocessor Systems Design I
Computer Science 2 What’s this course all about?
Chapter 1 Introduction.
Chapter 1 The Big Picture
IT253: Computer Organization
CSIS 104 –Intro. To Computer Science
CS 21a: Intro to Computing I
COMS W1004 Introduction to Computer Science and Programming in Java
Lecture 2 Introduction to Computer Science (continued)
T Computer Architecture, Autumn 2005
CSci 107 Introduction to Computer Science
Professor: Shereen Khoja
Presentation transcript:

CPSC 171 Introduction to Computer Science Lecture: MWF 1:15pm-2:35pm, Colton 103 Lab 1: TH 9:40am-11:40am, Colton 106 Lab2: TH 2pm-4pm, Colton 106

Course Description The introduction to the computer science discipline which establishes a scientific foundation for a variety of topics, including computer programming, computer design, information processing, the algorithmic solution of problems, and the study of the algorithmic process itself. Prerequisites: Computer Science 172 or 170 (co- requisite) or permission.

Instructor & TAs Louis Oliphant Office: 111 Colton Office Hours: MWF 2:35pm-4:35pm TH 4pm-5pm Open Door Policy Stefan Maurer Christian Ebinger Matt Young Dan Gavazzi Cody Depew

Textbook Invitation to Computer Science: Java Version (Paperback) Third Edition G. Michael Schneider & Judith L. Gersting

Reading Assignment Chapter 1 in Textbook Homework Assignment page 34 of Textbook Problems 5,7,8,9,13 Due Sept 4 at beginning of class

Lab Book Invitation to Computer Science Lab Manual: C++ and Java(Paperback) Kenneth Lambert & Thomas Whaley Be sure you do NOT buy a manual with any handwriting in it. In the first lab session, your manual will be checked for writing. You must have the original copy of the disk in the manual for the labs as this will meet licensing agreements.

Grading Lab Portion 30% One lab report each week Lab reports due one week after assigned late labs lose 10% per day. Late lab reports may only be handed in up to 3 days late. Lecture Portion 70% 1 st Midterm 20% 2 nd Midterm 20% Final Exam 20% Assignments 10% To pass the course you must pass each part independently

Academic Integrity All examinations and labs must be done individually. Cheating or plagiarizing will result in a zero. You are encouraged to work together on homework assignments. Please discuss problems in a general manner to understand concepts and ideas. Do not copy or allow others to copy your work.

Class Web Site

Who Are You? Name (and how to pronounce it) What you would like to be called Year in College Major (declared or considering) Reason for taking course Fullfils some requirement (which one?) Considering computer science

What is Computer Science? The science that studies living organisms What is Biology?What is Astronomy? The branch of physics that studies celestial bodies and the universe as a whole

Computer Science is NOT Computer science is NOT the study of computers. Computer science is NOT the study of how to write computer programs. Computer science is NOT the study of the uses and applications of computers and software

Computer Science is Computer science: The study of algorithms, including Their formal and mathematical properties Their hardware realizations Their linguistic realizations Their applications Textbook definition

An Algorithm is A well-ordered collection of Unambiguous and Effectively computable operations that, when executed Produces a result and Halts in a finite amount of time Textbook definition

A VERY SIMPLE ALGORITHM 1. Wet your hair. 2. Lather your hair. 3. Rinse your hair. 4. Stop. We assume that The algorithm begins executing at the top of the list of operations. The "Stop" can be omitted if we assume the last line is an implied "Stop" operation. Observe: Operations need not be executed by a computer only by an entity capable of carrying out the operations listed.

Well-Ordered Collection of Operations The question that must be answered is: At any point in the execution of the algorithm, do you know what operation is to be performed next? Well-ordered operations: 1. Wet your hair. 2. Lather your hair. 3. Rinse your hair. Not well-ordered operations: 1. Either wet your hair or lather your hair. 2. Rinse your hair.

Well-ordered operations: 1. If your hair is dirty, then a. Wet your hair. b. Lather your hair. c. Rinse your hair. 2. Else a. Go to bed. Note: We will often omit the numbers and the letters and assume a "top-down" reading of the operations. Don't assume that you can't make choices: Well-ordered operations: If your hair is dirty, then Wet your hair. Lather your hair. Rinse your hair. Else Go to bed. Well-Ordered Collection of Operations

Unambiguous Operations The question that must be answered is: Does the computing entity understand what the operation is to do? This implies that the knowledge of the computing entity must be considered. For example, is the following ambiguous? Make the pie crusts.

To an experienced cook, Make the pie crusts. is not ambiguous. But, a less experienced cook may need: Take 1 1/3 cups of flour. Sift the flour. Mix the sifted flour with 1/2 cup of butter and 1/4 cup of water to make dough. Roll the dough into two 9-inch pie crusts. or even more detail! Unambiguous Operations

Definition: An operation that is unambiguous is called a primitive operation (or just a primitive) One question we will be exploring in the course is what are the primitives of a computer. Note that a given collection of operations may be an algorithm with respect to one computing agent, but not with respect to another computing agent!! Unambiguous Operations

Effectively Computable Operations The question that must be answered is: Is the computing entity capable of doing the operation? This assumes that the operation must first be unambiguous, i.e. the computing agent understands what is to be done. Not effectively computable operations: Write all the fractions between 0 and 1. Set A to (S/N). Add 1 to the current value of X.

…Produces a Result The result need not be a number or piece of text viewed as "an answer". It could be an alarm, signaling something is wrong. It could be an approximation to an answer. It could be an error message. The question that must be answered is: Can the user of the algorithm observe a result produced by the algorithm?

Halts in a Finite Amount of Time The question that must be answered is: Will the computing entity complete the operations in a finite number of steps and stop? Do not confuse "not finite" with "very, very large". A failure to halt usually implies there is an infinite loop in the collection of operations: 1.Write the number 1 on a piece of paper. 2.Add 1 to the number and write it on a piece of paper. 3.Repeat 2. 4.Stop.

An Algorithm is A well-ordered collection of Unambiguous and Effectively computable operations that, when executed Produces a result and Halts in a finite amount of time Textbook definition Note: Although I have tried to give clean cut examples to illustrate what these new words mean, in some cases, a collection of operations can fail for more than one reason.

Computer Science is Computer science: The study of algorithms, including Their formal and mathematical properties Their hardware realizations Their linguistic realizations Their applications Textbook definition

Formal and Mathematical Properties It is not enough to develop any old algorithm to solve a problem. We must worry about some additional properties of an algorithm: How efficient is it? What kinds of resources must be used to execute it? How does it compare to other algorithms that solve the same problem.

Hardware Realizations Algorithms need not execute on machines. All we really need are computing entities. Anything that can compute – e.g., a human. But, ultimately, most of our interest will lie with algorithms that execute on computing entities called "computers". How are these entities constructed? The emphasis will be on the logical construction of a computer, not the physical construction.

Linguistic Realizations How do we represent algorithms? We will start with one linguistic realization, called pseudocode and later will look at many different realizations in various programming languages.

Applications What are some applications of computers in current use: Modeling and Simulation Information Retrieval Numerical Problem Solving Telecommunications Artificial Intelligence Networking Graphics

ENIAC – (Electrical Numerical Integrator And Calculator), built by Presper Eckert and John Mauchly at Moore School of Engineering, University of Pennsylvania, Often called the first computer (that was electronic, programmable, general purpose and digital). History of Computers

ENIAC 18,000 vacuum tubes and weighed 30 tons Duration of an average run without some failure was only a few hours, although it was predicted to not run at all! When it ran, the lights in Philadelphia dimmed! ENIAC Stored a maximum of twenty 10-digit decimal numbers. Input: IBM card reader Output: Punched cards, lights

ENIAC Programming required rewiring of the machine Source:

Eniac’s Vacuum Tubes Photo taken at Computer Science History Museum, San Jose, CA, by Dr. Robert Walker on VLSI Trip to Silicon Valley.

Source: A vacuum tube similar to those used in the earliest computers. Stored a single on/off value called a bit Vacuum Tubes

9 Transistor Replaced vacuum tube, fast, small, durable, cheap Magnetic Cores Replaced magnetic drums, information available instantly Magnetic Disks Replaced magnetic tape, data can be accessed directly Second Generation Hardware ( ) - Characteristics

10 Integrated Circuits Replaced circuit boards, smaller, cheaper, faster, more reliable. Transistors Now used for memory construction Terminal An input/output device with a keyboard and screen Third Generation Hardware ( ) By 1968 you could buy a 1.3 MHz CPU with half a megabyte of RAM and 100 megabyte hard drive for a mere US$1.6 million. Charles Falco/Photo Researchers

Smaller and Smaller

Faster and Faster My Laptop

Great Job Prospects What field has… …the best-rated job, and 5 of the top 10 highest paid, highest growth jobs? …shown strong job growth in the face of outsourcing? …a looming severe shortage in college graduates? Computer Science!

5 computing jobs are in the top 10 salary jobs from the Bureau of Labor Statistics’ list of the 30 fastest growing jobs through (Morsch, Laura. CareerBuilders.com, Jan. 27, 2006.) 1. Computer systems software engineer: $81, Computer applications software engineer: $76, Computer systems analyst: $67, Database administrator: $61, Network systems and data communication analyst: $61,250 Salaries are given as mean annual salaries over all regions. Great Job Prospects

Summary Course Overview Definitions of Computer Science and Algorithms Brief History of Computers Great Job Prospects

Reading Assignment Chapter 1 in Textbook Homework Assignment page 34 of Textbook Problems 5,7,8,9,13 Due Sept 4 at beginning of class