Developing a Solution Getting past the panic of staring at a “blank sheet” of paper when solving a problem 1.

Slides:



Advertisements
Similar presentations
Input-Processing-Output
Advertisements

Computing Science Software Design and Development SOFTWARE DESIGN AND DEVELOPMENT USING PYTHON.
Use Flowchart Symbols for Structured Programming
Lesson 6 Software and Hardware Interaction
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#4)
CPSC 333: Foundations of Software EngineeringJ. Denzinger Small Test: Bank account manager System has to run on an automated teller machine. User must.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
COMPUTER DEVICES Input Devices Output Devices Storage Devices
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Software Development, Programming, Testing & Implementation.
INPUT-OUTPUT ORGANIZATION
GCSE Information Technology Input Devices and Methods Objectives:  To understand what input devices are.  Identify their individual uses  Be able to.
CS102 Introduction to Computer Programming
Introduction to Computers and Programming History of computers What is a computer system? What is a software? What is programming? Different languages.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
The Software Development Cycle Defining and understanding the problem.
Computer Organization ANGELITO I. CUNANAN JR. 1. What is Computer?  An electronic device used for storing and processing data.  It is a machine that.
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
1 Copyright © 2010, IT Gatekeeper Project – Ohiwa Lab. All rights reserved. Difference between Human and Computer Computer ▪Computers perform complex computation.
Flow Charting. Goals Create Algorithms using Flow Charting procedures. Distinguish between Flow Charting and Pseudocode. Top-Down Design Bottom-up Design.
CS 1308 Computer Literacy and the Internet. Introduction  Von Neumann computer  “Naked machine”  Hardware without any helpful user-oriented features.
Case Study :. Introduction The ATM network will consist of a large number of ATM machines distributed over a wide geographical area. The network must.
ECE 264 Object-Oriented Software Development Instructor: Dr. Honggang Wang Fall 2012 Lecture 3: Requirements Specification, C++ Basics.
Developing a Solution How to create the computer-based solution for a real-world problem. 1.
Computer Components Checklist There are many parts that work together to make a computer work.
Computer Parts Hardware.
Developing a Solution How to create the computer-based solution for a real-world problem. 1.
Chapter 3 Developing an algorithm. Objectives To introduce methods of analysing a problem and developing a solution To develop simple algorithms using.
Computer A computer is an electronic machine that takes information, processes it,and stores it. Computers are made up of hardware ( monitor, tower, keyboard,
1. Understanding the Problem 2. Brainstorming 3. Drawing an I/O (Input/Output) diagram 4. 5-step Process (or: Small iPods Make Copying Tough) Developing.
Developing a Solution Getting past the panic of staring at a “blank sheet” of paper when solving a problem 1.
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Algorithms & Flowchart
Understanding Networked Applications: A First Course Ideas and examples (Chapter 6) by David G. Messerschmitt.
Computer Architecture And Organization UNIT-II General System Architecture.
Introduction to Computing Systems CT101 – Computing Systems.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
SD1230 Unit 6 Desktop Applications. Course Objectives During this unit, we will cover the following course objectives: – Identify the characteristics.
Intermediate 2 Computing Unit 2 - Software Development.
By Tom and James. Hardware is a physical part of the system that you can pick up and move. There are two types of hardware, external and internal. External.
Parts of a Computer. Two Basic Components of a Computer System Hardware Parts of the Computer System you can physically touch Software Computer Instructions.
Chapter 2 HAEDWAER.
Algorithms and Pseudocode
Introduction  Program: Set of sequence instruction that tell the computer what to do.  Software: A collection of programs, data, and information. 
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Computer Parts There are many parts that work together to make a computer work.
IT infrastructure Hardware. What is IT infrastructre It is the physical facilities, services and management that support computing in the organization.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
AS Level Computing 8 CHAPTER: Fundamentals of structured programming The basics of good programming Algorithms System Flow Charts Symbol Conventions Steps.
Visual Basic Programming Introduction to Computers Programming.
Chapter 7: Designing solutions to problems OCR Computing for A Level © Hodder Education 2009.
My Computer System Room 219 My Computer System Monitor Books Power Monitor Keyboard Chair Headphones CPU Mouse Pad Power USB.
Advanced Higher Computing Science
Computer Organization and Design
ES C263 Microprocessor Programming and Interfacing
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
3.1 Hardware Strand 3 Sara Liquori.
Course: Introduction to Computers
1 Input-Output Organization Computer Organization Computer Architectures Lab Peripheral Devices Input-Output Interface Asynchronous Data Transfer Modes.
BASIC OF THE COMPUTER SYSTEM. INPUT/OUTPUT INPUT DEVICES MOUSE KEYBOARD SCANNER OUTPUT DEVICES PRINTER MONITER.
Technology Mrs. Huddleston
Chapter 1: How are computers organized?
Difference between Human and Computer
What do these things have in common?
Computer components is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format. Computer The computer.
OCR GCSE (9-1) Computer Science (J276)
Computer Electronic device Accepts data - input
Presentation transcript:

Developing a Solution Getting past the panic of staring at a “blank sheet” of paper when solving a problem 1

General Idea of This Lesson Give you methodology Example problems: “Find the optimum nozzle dimensions for …” “Solve for the optimum path for the robot …” “Find the range of temperatures adequate for …” In EGR115, most tasks will be: “Develop a software that solves……”

General Terms As a programmer, keep in mind there are 2 sides to a software The person who writes the software: the programmer The person who uses the software: the user, or client ! As you (student) develop a software, constantly jump back and forth between the two roles. “The programmer should make the user’s life easy.” 3

The 5 step process Follow these steps in order: 1. State the problem clearly 2. Identify the givens vs. the results wanted This will be referred as the I/O diagram 3. Manually solve the problem 4. Computerize the solution 5. Test, test, test!!! 4

Step 1. State the problem However the problem may seem, it is crucial to fully understand the problem, and clarify any doubts. For example: Generate a software that “Solves the area of any triangle” What way would you go about doing this: On Paper first 5

Step 2. Identify the I/O What do you know about the problem? How do you want to solve it? 6 height base

Step 2. Identify the I/O What do you know about the problem? How do you want to solve it? 7 side 1 side 2 angle height base

Step 2. Identify the I/O Remember the Von Neumann architecture? CPU + memory + inputs/outputs devices The I/O diagram determines which input and output devices the software uses, as well as decide which inputs and output variables are used. The I/O diagram is a first step to organizing the brainstorming. 8

General frame of an I/O diagram Arrows indicate and names each given and result Purple boxes indicate which devices are used 9 ? ? ? ? ? ? ? ?

General frame of an I/O diagram 10 INPUT SIDE ? ? ? ? ? ? ? ?

General frame of an I/O diagram 11 OUTPUT SIDE ? ? ? ? ? ? ? ?

Applied to the area of triangle 12 AREA OF TRIANGLE

Applied to the area of triangle 13 AREA OF TRIANGLE Sides 1 and 2 Angle Each arrow represents the INPUTS (=GIVENS)

Applied to the area of triangle 14 AREA OF TRIANGLE Sides 1 and 2 Angle External interface – What DEVICE is used to enter the values of the givens Keyboard Each arrow represents the INPUTS (=GIVENS)

Applied to the area of triangle 15 AREA OF TRIANGLE Sides 1 and 2 Angle Keyboard Each arrow represents the INPUTS (=GIVENS) area Each arrow represents the OUTPUTS (=RESULTS)

Applied to the area of triangle 16 AREA OF TRIANGLE Sides 1 and 2 Angle External interface – What DEVICE is used to see the results Keyboard Each arrow represents the INPUTS (=GIVENS) Screen area Each arrow represents the OUTPUTS (=RESULTS)

Applied to the area of triangle Final I/O diagram 17 AREA OF TRIANGLE Sides 1 and 2 Angle Keyboard Screen area

Same problem: Option 2 18 AREA OF TRIANGLE Sides 1 and 2 Angle Printer Different input/output devices area 18 Microphone

… or option 3 … 19 AREA OF TRIANGLE base height Screen area 19 Keyboard Different Inputs

Some Other More Complex Examples (and yet, the I/O is not so complex) 20 ATM MACHINE

Some Other More Complex Examples (and yet, the I/O is not so complex) 21 ATM MACHINE Account number Card

Some Other More Complex Examples (and yet, the I/O is not so complex) 22 ATM MACHINE pin Deposit/with- draw/transfer… Touch Screen/ pin pad Account number Card

Some Other More Complex Examples (and yet, the I/O is not so complex) 23 ATM MACHINE pin Deposit/with- draw/transfer… Touch Screen/ pin pad Account number Card Money Slot money

Some Other More Complex Examples (and yet, the I/O is not so complex) 24 ATM MACHINE money Money Slot pin Deposit/with- draw/transfer… Touch Screen/ pin pad Account number Card Money Slot money

Some Other More Complex Examples (and yet, the I/O is not so complex) 25 ATM MACHINE money Money Slot pin Deposit/with- draw/transfer… Touch Screen/ pin pad Account number Card receipt Receipt Slot Money Slot money

Step3. Manually Solve Problem Solving the area of a triangle is obvious Height = 3 in Base = 2 in Area = ½ * 2 * 3 = 3 in squared 26

Step 4 and Step 5 These steps actually involve owning a computer and starting to type ‘lines of code’. Realize that none of the steps before did. In short: Step 4 – Computerize the solution Step 5 – Test the software created

Remember: “SIMCT” (or: Small iPods Make Copying Tough) 1. SState the problem (clarify it if need be) 2. IIdentify the Inputs and Outputs 3. M Manually solve the problem 4. CComputerize the solution 1. Layout the algorithm 2. Provide the code that implements the algorithm 5. Ttest, Test, TEST!! 28

1. SState the problem (clarify it if need be) 2. IIdentify the Inputs and Outputs 3. MManually solve the problem 4. CComputerize the solution 1. Layout the algorithm 2. Provide the code that implements the algorithm 5. TTest, Test, TEST!! Remember: “SIMCT” (or: Small iPods Make Copying Tough) 29 Note: I and M are usually mixed up. You obvioulsy need to brainstorm, solve the problem, find obstacles to fix, resolve it again to eventually zoom in on the correct inputs/outputs.. Spend the most time here before coding.