Introduction to Problem Solving and Programming CS140: Introduction to Computing 1 8/19/13.

Slides:



Advertisements
Similar presentations
This set of slides is provided by the author of the textbook1 Introductory Topics l Computer Programming l Programming Life-Cycle Phases l Creating an.
Advertisements

Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Programming Fundamentals (750113) Ch1. Problem Solving
CSC230 Software Design (Engineering)
9-Aug-15 Vocabulary. Programming Vocabulary Watch closely, you might even want to take some notes. There’s a short quiz at the end of this presentation!
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
Invitation to Computer Science 5 th Edition Chapter 9 Introduction to High-Level Language Programming.
Invitation to Computer Science, Java Version, Second Edition.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CS101 Introduction to Computing Lecture Programming Languages.
AP CS: Principles Dr. Kelly Schultz Academically Talented Youth Program Western Michigan University.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
The Beauty and Joy of Computing Lecture #3 : Creativity & Abstraction UC Berkeley EECS Lecturer Gerald Friedland.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Data Structures Using C++ 2E
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
INVITATION TO Computer Science 1 11 Chapter 2 The Algorithmic Foundations of Computer Science.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Introduction to Programming and App Inventor. Introduction What is a computer program? Introducing App Inventor Getting hands on with App Inventor.
Chapter 1: Introduction to Computer Science and Media Computation.
Principles of Programming & Software Engineering
Lecture 1b- Introduction
CSC 222: Object-Oriented Programming
ICS 3UI - Introduction to Computer Science
Topic: Programming Languages and their Evolution + Intro to Scratch
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Learning to Program D is for Digital.
Sections Basic Concepts of Programming
CSCI-235 Micro-Computer Applications
Computer Programming.
Key Ideas from day 1 slides
Computer System and Programming
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
CS101 Introduction to Computing Lecture 19 Programming Languages
Demystifying Programming
Course: Introduction to Computers
Introduction CSE 1310 – Introduction to Computers and Programming
Algorithm and Ambiguity
Objectives Overview Explain why computer literacy is vital to success in today's world Describe the five components of a computer Discuss the advantages.
Problem Solving (design of programs) CS140: Introduction to Computing 1 8/26/13.
Developing Applications
Compiler Construction
Chapter 0: Introduction
LESSON 13 – INTRO TO ARRAYS
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Topics Introduction Hardware and Software How Computers Store Data
Programming Basics - RobotC
SME1013 PROGRAMMING FOR ENGINEERS
Algorithm Discovery and Design
CS105 Introduction to Computer Concepts Intro to programming
The Programming Process
SME1013 PROGRAMMING FOR ENGINEERS
Programming.
Algorithm and Ambiguity
Algorithms and Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Tonga Institute of Higher Education IT 141: Information Systems
Programming Fundamentals (750113) Ch1. Problem Solving
Computer Science The 6 Programming Steps.
Tonga Institute of Higher Education IT 141: Information Systems
Computational Thinking
The Study of Computer Science Chapter 0
Presentation transcript:

Introduction to Problem Solving and Programming CS140: Introduction to Computing 1 8/19/13

Computing Is computing is about computers? Computing is ubiquitous – used in every business – used by everyone Being computing fluent is becoming increasingly valuable 2

Ubiquity Computers are everywhere – Computers desktops, laptops, … – Things that run apps tablets, smart-phones, iPod, … – Things with USB connectors mp3 players, GPS, cameras, camcorders, … – Less obvious Pacemakers, automobiles, vacuum, toys, … 3

Computing is more than Programming Computing (Computer Science) is about problem solving Problems are expressed as data – numeric a ‘problem’ is not a bad thing, it’s a challenge – The big challenge: Making life better medicine, entertainment, communication, convenience, automation, science, safety, … 4

Problem Solving Understanding the problem Finding a solution – Correct – Usable – Fast enough, etc. Implementation Maintenance Documentation 5 CS140: Focus on finding and implementing correct solutions (programming) CS140: Focus on finding and implementing correct solutions (programming)

Problem Solving and Programming Is a house built before the blueprints are drawn? Problem Solving (design of a solution) should precede the programming 6

Programming is more than writing code Programming – representing a general solution to problem set in a way a machine can use, which consists of 1.Design of an Algorithm a step by step solution to a problem that completes in finite time 2.Coding – translate an algorithm into a program 3.Testing – ensuring the correctness of the program 7

1. Design developing a solution to the problem similar to the blueprints for a house 8

2. Coding Translate / express the solution in a programming language – Often tedious – Since code is the “product”, it is often the focus of effort  src: 9

3. Testing (Debugging) Understand the system Know the expected behavior Observe the actual behavior Consider possible solutions based on understanding 10 Yes

Computing Machinery Computers are machines they have no intelligence – Don’t understand typos, bad grammar, … – Can’t determine the meaning of ambiguous statements – Only do as instructed Programmers provide the intelligence 11

Computing Machinery Digital Computers – represent all data (numbers, letters, words, sounds, images, movies, and programs) numerically Internally, all numbers are binary – Bit – a single 1 or 0 (base 2 number system) – Byte – a collection of 8 bits (2 8 possible values) 12

Numeric Robots Digital computers are, numeric robots – numeric: only manipulate numbers (any data!) – robots: only do exactly as they are told (obedient, but dumb) (your) program User input 13

Abstraction represent only the relevant aspects of the real world (an abstraction) 14

Abstraction Detail Removal – Leaving out properties of a complex object Generalization – Formulating general concepts by abstracting general common properties of instances 15

Abstraction: Detail Removal Focus on the essence 16

Abstraction What is the problem? What is important? What is not important? 17

Variables / State The location and speed of items in the crash problem are examples of variables Variables change values (that’s why …) The value of a variable is it’s state Programs have state Computers have state 18

Abstraction: essence 19

Java is an OO PL Object Oriented – Real World objects are represented by programming ‘objects’ – A programming object is composed of Data values (numbers) that represent essence Actions (changes to the numbers) 20

OO example Data X Y Action Forward Turn 21

Abstraction: Generalization 22

Abstraction: Generalization Specific Problem 2, 10 5, 9 42, 42 Input values 23 Specific Solution Resulting values General Problem Sum 2 values one general solution

Programming is more than writing code once Programming – representing a general solution to problem set in a way a machine can use – representing the ideas of the solution in a way humans can understand Teams Versions 24

Learning to Program Programming is like learning to write poetry in a foreign language – You don’t know the language – (I assume) You’re not good at poetry 25

Summary Computing is more than programming Programming is more than writing code Computers are stupid Practice programming to learn programming Memorizing the text is a strategy to fail 26

Succeeding in CS140 Attend class Start projects early Practice programming Utilize tutors in the open lab Design before code 27

Things that are less effective Just reading the textbook Waiting to start projects Skipping design/planning before code Memorizing code 28