Software Development. Software Development Loop Design  Programmers need a solid foundation before they start coding anything  Understand the task.

Slides:



Advertisements
Similar presentations
Designing a Program & the Java Programming Language
Advertisements

ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Chapter 1 - An Introduction to Computers and Problem Solving
Computer Programming Rattapoom Waranusast Department of Electrical and Computer Engineering Faculty of Engineering, Naresuan University.
 Introduction to Programming History of programming.
Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Program Design and Development
Chapter 2 Writing Simple Programs
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
PRE-PROGRAMMING PHASE
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
Chapter 1: Introduction To Computer | SCP1103 Programming Technique C | Jumail, FSKSM, UTM, 2005 | Last Updated: July 2005 Slide 1 Introduction To Computers.
Concept of Computer Programming November 2, 2011.
Activity 1 - WBs 5 mins Go online and spend a moment trying to find out the difference between: HIGH LEVEL programming languages and LOW LEVEL programming.
Python quick start guide
Computer Science 101 Introduction to Programming.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
Python.
Introducing Java.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
COMPUTER PROGRAMMING Source: Computing Concepts (the I-series) by Haag, Cummings, and Rhea, McGraw-Hill/Irwin, 2002.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
Chapter 1: Introduction to Computers and Programming.
Invitation to Computer Science, Java Version, Second Edition.
CSC-115 Introduction to Computer Programming
Programming Lifecycle
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
Input, Output, and Processing
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
Robert Crawford, MBA West Middle School.  Explain how the binary system is used by computers.  Describe how software is written and translated  Summarize.
Pseudocode. Simple Program Design, Fourth Edition Chapter 2 2 Objectives In this chapter you will be able to: Introduce common words, keywords, and meaningful.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 2 Input, Processing, and Output.
1 Program Planning and Design Important stages before actual program is written.
CS 100 Introduction to Computing Seminar September 21, 2015.
1 Software. 2 What is software ► Software is the term that we use for all the programs and data on a computer system. ► Two types of software ► Program.
CSC 1010 Programming for All Lecture 3 Useful Python Elements for Designing Programs Some material based on material from Marty Stepp, Instructor, University.
Basic Computer Organization Rashedul Hasan.. Five basic operation No matter what shape, size, cost and speed of computer we are talking about, all computer.
Python Let’s get started!.
HOW A COMPUTER PROCESSES DATA. What is hardware? Hardware is the electric, electronic and mechanical equipment that makes up a computer What is software?
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Algorithms and Pseudocode
INTRODUCTION TO COMPUTER PROGRAMMING(IT-303) Basics.
Today… Python Keywords. Iteration (or “Loops”!) Winter 2016CISC101 - Prof. McLeod1.
Software Engineering Algorithms, Compilers, & Lifecycle.
Low-Level Programming Languages, Pseudocode and Testing Chapter 6.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
Part 1 Learning Objectives To understand that variables are a temporary named location to store data and that programmers work with different data types.
Programming Logic and Design Seventh Edition Chapter 1 An Overview of Computers and Programming.
Algorithms and Flowcharts
Chapter 2 Writing Simple Programs
Software Development.
CS170 – Week 1 Lecture 3: Foundation Ismail abumuhfouz.
Python Let’s get started!.
DDC 1023 – Programming Technique
TRANSLATORS AND IDEs Key Revision Points.
CISC101 Reminders Quiz 1 grading underway Assn 1 due Today, 9pm.
CISC101 Reminders All assignments are now posted.
ICT Gaming Lesson 2.
Tonga Institute of Higher Education IT 141: Information Systems
Tonga Institute of Higher Education IT 141: Information Systems
ICS 3U Thursday, September 9.
Programming Logic and Design Eighth Edition
Presentation transcript:

Software Development

Software Development Loop

Design  Programmers need a solid foundation before they start coding anything  Understand the task that the program must perform  Determine all the steps necessary in order to perform the task

Understanding the Task  Most programming projects begin with an interview with the end user  Programmers must ask lots of questions and get as many details as possible about the task  Follow up meetings are usually required  After an interview, a programmer generally constructs a “software requirement” document  This amounts to an agreement between the end user and the programmer on what the program should actually do

What can happen …

Determining the Steps  Next, we need to break down the task into a series of concrete steps that can be followed (like a recipe)  Remember that computers need each step to be broken down into minute detail  They don’t have the ability to infer intermediate steps or make educated guesses like we can!

Boiling a pot of water

 Find a measuring cup  Pick up measuring cup  Find a sink  Walk to sink  Turn on water  Fill the measuring cup with 2 cups of water  Turn off water  Find a pot  Pick up the pot  Find a stove  Walk to stove  Place the pot on the stove  Pour the water into the pot  Put measuring cup down on countertop  Turn the heat on the stove to medium-high  Wait until the water begins to rapidly bubble  Turn off stove

Algorithms  A series of well-defined, logical steps that must be taken in order to perform a task  Algorithms serve as a necessary intermediate step between understanding the task at hand and translating it into computer code

Pseudocode (aka “fake” code)  A useful technique for breaking down an algorithm into meaningful chunks and aligning them with the toolset of a language  In pseudocode, we don’t have to worry about syntax or spelling, this is for the user

Example – Instagram 1. Start program. 2. Display photos/videos from user’s friends, starting with the most recent. 3. Allow user to scroll up and down through news feed. 4. Automatically playback videos and repeat. Allow users to click on videos in order to play sound. 5. Allow user to “like” photos by double clicking.

Flowcharts  A graphical model that helps programmers visualize the task at hand  Like a decision tree

Software Development Loop

When writing programs …  It is very important that you know what your computer is capable of and what is already accessible to you (types of commands, previously written programs, “packages”, memory capacity, etc.)

What can it do?  Most computers can really only do a handful of things  Read information from memory  Add, subtract, multiply, divide numbers  Compare numbers  Move data to memory or permanent storage

What can it do?  Processors can only perform a few simple tasks  Each processor has it’s own fixed set of capabilities, known as it’s “instruction set”

Programs  In order for a program to be meaningful, it needs a LOT of instructions, we’re talking millions, maybe even billions  Programs are generally stored on external devices but they must be copied into memory for it to be accessible to the computer (like copying down a set of instructions)  Once it is stored in memory, the CPU can go to work:  Fetch  Decode  Execute  Store

So, are you ready to write millions and billions of code … Say “no” …

What’s the solution … ?

High Level Languages  Allows users to communicate with computers in a language more closely related to the English language  Independent of particular computer that is being used  Further away from basic communication with computer, almost like a translator  Examples: Python. C++, C#, objective C, COBOL, BASIC, LISP, Pascal, MATLab, etc.

High Level Languages JAVA System.out.println (“Hello, World!”); Hello, World! PYTHON print (“Hello, World!”) Hello, World!

Programming Language Structure: Key Words  Defined list of words that make up the language, command codes  These are sometimes called “reserved words”  and  as  assert  break  class  continue  def  del  elif  else  except  exec  finally  for  from  global  if  import  in  is  lambda  not  or  pass  print  raise  return  try  while  with  yield

Programming Language Structure: Operators  Special symbols that perform certain actions on pieces of data  Doesn’t always have to be on numbers  answer =  name = “Donald” + “Seok”  average = 250 / 300  remain = 7 % 2  powers = 4 ** 2

Programming Language Structure: Syntax  Set of rules that must be followed when writing a program  Comparable to English language grammar ENGLISH  I runs five miles yesterday. PYTHON  if name = “donald”: print (“You’re the bombdotcom!) else print(You’re not the bombdotcom!) ENGLISH  I ran five miles yesterday. PYTHON  if name == “donald”: print (“You’re the bombdotcom!”) else: print(“You’re not the bombdotcom!”)

Programming Language Structure: Statements  Instructions that you write, which consists of keywords, operators, etc.  All statements you write while programming is referred to as “code” or “source code”

Programming Language Structure: Comments  The user can input comments into their code  These comments are for the user to communicate to another human who might be reading through their code  This does not effect the program # First, I will ask the user for their name # I will then store it in a variable called “x” x = input (“What is your name?”) # Now, I will print the name of the user print (x)

Python  Languages are interchangeable in concept, different words, just like our human languages  This year, we will be learning a language called Python  It is a high-level interpreted language  Used often as a teaching language, but still very powerful and used as a production language as well  Two modes:  Interactive  Script  IDLE (Integrated Development Environment)