Logo for Rebus Press

Want to create or adapt books like this? Learn more about how Pressbooks supports open publishing practices.

Program Design

Kenneth Leroy Busbee

Program design consists of the steps a programmer should do before they start coding the program in a specific language. These steps when properly documented will make the completed program easier for other programmers to maintain in the future. There are three broad areas of activity:

Understanding the Program

Using design tools to create a model, develop test data.

If you are working on a project as one of many programmers, the system analyst may have created a variety of documentation items that will help you understand what the program is to do. These could include screen layouts, narrative descriptions, documentation showing the processing steps, etc. If you are not on a project and you are creating a simple program you might be given only a simple description of the purpose of the program. Understanding the purpose of a program usually involves understanding its:

This  IPO  approach works very well for beginning programmers. Sometimes, it might help to visualize the program running on the computer. You can imagine what the monitor will look like, what the user must enter on the keyboard and what processing or manipulations will be done.

At first, you will not need a hierarchy chart because your first programs will not be complex. But as they grow and become more complex, you will divide your program into several modules (or functions).

The first modeling tool you will usually learn is  pseudocode . You will document the logic or algorithm of each function in your program. At first, you will have only one function, and thus your pseudocode will follow closely the IPO approach above.

There are several methods or tools for planning the logic of a program. They include: flowcharting, hierarchy or structure charts, pseudocode, HIPO, Nassi-Schneiderman charts, Warnier-Orr diagrams, etc. Programmers are expected to be able to understand and do flowcharting and pseudocode. These methods of developing the model of a program are usually taught in most computer courses. Several standards exist for flowcharting and pseudocode and most are very similar to each other. However, most companies have their own documentation standards and styles. Programmers are expected to be able to quickly adapt to any flowcharting or pseudocode standards for the company at which they work. The other methods that are less universal require some training which is generally provided by the employer that chooses to use them.

Later in your programming career, you will learn about using application software that helps create an information system and/or programs. This type of software is called Computer-Aided Software Engineering (CASE).

Understanding the logic and planning the algorithm on paper before you start to code is a very important concept. Many students develop poor habits and skipping this step is one of them.

Test data  consists of the programmer providing some input values and predicting the outputs. This can be quite easy for a simple program and the test data can be used to check the model to see if it produces the correct results.

  • cnx.org: Programming Fundamentals – A Modular Structured Approach using C++

Programming Fundamentals Copyright © 2018 by Kenneth Leroy Busbee is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License , except where otherwise noted.

Share This Book

Library homepage

  • school Campus Bookshelves
  • menu_book Bookshelves
  • perm_media Learning Objects
  • login Login
  • how_to_reg Request Instructor Account
  • hub Instructor Commons

Margin Size

  • Download Page (PDF)
  • Download Full Book (PDF)
  • Periodic Table
  • Physics Constants
  • Scientific Calculator
  • Reference & Cite
  • Tools expand_more
  • Readability

selected template will load here

This action is not available.

Engineering LibreTexts

2.1: Program Design

  • Last updated
  • Save as PDF
  • Page ID 11239

  • Kenneth Leroy Busbee
  • Houston Community College via OpenStax CNX

\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

\( \newcommand{\Span}{\mathrm{span}}\)

\( \newcommand{\id}{\mathrm{id}}\)

\( \newcommand{\kernel}{\mathrm{null}\,}\)

\( \newcommand{\range}{\mathrm{range}\,}\)

\( \newcommand{\RealPart}{\mathrm{Re}}\)

\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

\( \newcommand{\Argument}{\mathrm{Arg}}\)

\( \newcommand{\norm}[1]{\| #1 \|}\)

\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

\( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

\( \newcommand{\vectorC}[1]{\textbf{#1}} \)

\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

Topic Introduction

Program Design consists of the steps a programmer should do before they start coding the program in a specific language. These steps when properly documented will make the completed program easier for other programmers to maintain in the future. There are three broad areas of activity:

Understanding the Program

Using design tools to create a model, develop test data.

If you are working on a project as a one of many programmers, the system analyst may have created a variety of documentation items that will help you understand what the program is to do. These could include screen layouts, narrative descriptions, documentation showing the processing steps, etc. If you are not on a project and you are creating a simple program you might be given only a simple description of the purpose of the program. Understanding the purpose of a program usually involves understanding it's:

This  IPO  approach works very well for beginning programmers. Sometimes, it might help to visualize the programming running on the computer. You can imagine what the monitor will look like, what the user must enter on the keyboard and what processing or manipulations will be done.

At first you will not need a hierarchy chart because your first programs will not be complex. But as they grow and become more complex, you will divide your program into several modules (or functions).

The first modeling tool you will usually learn is  pseudocode . You will document the logic or algorithm of each function in your program. At first, you will have only one function, and thus your pseudocode will follow closely the IPO approach above.

There are several methods or tools for planning the logic of a program. They include: flowcharting, hierarchy or structure charts, pseudocode, HIPO, Nassi-Schneiderman charts, Warnier-Orr diagrams, etc. Programmers are expected to be able to understand and do flowcharting and pseudocode. These methods of developing the model of a program are usually taught in most computer courses. Several standards exist for flowcharting and pseudocode and most are very similar to each other. However, most companies have their own documentation standards and styles. Programmers are expected to be able to quickly adapt to any flowcharting or pseudocode standards for the company at which they work. The others methods that are less universal require some training which is generally provided by the employer that chooses to use them.

Later in your programming career, you will learn about using applications software that helps create an information system and/or programs. This type of software is called Computer-aided Software Engineering.

Understanding the logic and planning the algorithm on paper before you start to code is very important concept. Many students develop poor habits and skipping this step is one of them.

Test data  consists of the user providing some input values and predicting the outputs. This can be quite easy for a simple program and the test data can be used to check the model to see if it produces the correct results.

Definitions

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

  • Notifications You must be signed in to change notification settings

Programming Assignments and Quizzes from all courses within the Blockchain Specialization offered by The University at Buffalo and The State University of New York and key takeaways from study and research of myself.

linhnt31/Blockchain_Specialization_Coursera

Folders and files, repository files navigation, blockchain specialization on coursera.

Master Blockchain and Break into Blockchain

Instructor: Bina Ramamurthy

1. Introduction

This repo contains all my work for this specialization. All the notes, reference materials, code base, quiz questions, screenshot, and images, are taken from, unless specified, Blockchain Specialization on Coursera . Besides, I also write key takeaways from blockchain and blockchain-related concepts in this repository.

This is the first time I have studied and worked with blockchain, so feel free to contact me if you find any mistakes or want to add something to make the repository more complete by creating pull requests. Thank you!

2. Assignment Solutions

2.1. course 1: blockchain basics.

Week 1 - Blockchain Defined: Quiz Solution | Takeaways

Week 2 - Ethereum Blockchain: Quiz Solution | Takeaways

Week 3 - Algorithms & Techniques: Quiz Solution | Takeaways

Week 4 - Trust Essentials: Quiz Solution and Project | Takeaways

2.2. Course 2: Smart contracts

Week 1 - Smart contract basics: Quiz Solution | Takeaways

Week 2 - Solidity: Quiz Solution | Takeaways

Week 3 - Putting it all together: Quiz Solution | Takeaways

Week 4 - Best Practices: Quiz Solution and Project | Takeaways

2.3. Course 3: Decentralized applications (Dapps)

Week 1 - Decentralized applications: Quiz Solution | Takeaways

Week 2 - Truffle development: Quiz Solution | Takeaways | Source code for deploying Dapp

Week 3 - Design improvements: Quiz Solution | Takeaways

Week 4 - Application models & Standards: Quiz Solution | Takeaways

Final course project: Solution

2.4. Course 4: Blockchain platforms

Week 1 - Permissioned blockchains: Quiz Solution | Takeaways

Week 2 - Permissioned blockchains: Quiz Solution | Takeaways

Week 3 - Permissioned blockchains: Quiz Solution | Takeaways

Week 4 - Permissioned blockchains: Quiz Solution | Takeaways

3. Key Concepts and Implementations

Proof of Work (PoW)

Proof of Stake (PoS)

Permissioned vs Permissionless Blockchain

Vulnerability vs Threat vs Risk

Authenticity vs Integrity vs Confidentiality

Blockchain Interoperability

Ethereum Virtual Machine

Setting up a private Ethereum blockchain network with Geth and Learning relevant concepts

Proof of Authority (PoA) consensus protocol and Detailed explanation of the PoA genesis file

4. Disclaimer

I recognize the time people spend on building intuition, understanding new concepts, solving quizzes and assignments in this course. The solutions uploaded here are only for reference purpose. They are meant to support you if you get stuck somewhere.

  • Solidity 73.4%
  • JavaScript 26.6%

Variable Assignment

To "assign" a variable means to symbolically associate a specific piece of information with a name. Any operations that are applied to this "name" (or variable) must hold true for any possible values. The assignment operator is the equals sign which SHOULD NEVER be used for equality, which is the double equals sign.

The '=' symbol is the assignment operator. Warning, while the assignment operator looks like the traditional mathematical equals sign, this is NOT the case. The equals operator is '=='

Design Pattern

To evaluate an assignment statement:

  • Evaluate the "right side" of the expression (to the right of the equal sign).
  • Once everything is figured out, place the computed value into the variables bucket.

We've already seen many examples of assignment. Assignment means: "storing a value (of a particular type) under a variable name" . Think of each assignment as copying the value of the righthand side of the expression into a "bucket" associated with the left hand side name!

Read this as, the variable called "name" is "assigned" the value computed by the expression to the right of the assignment operator ('=');

Now that you have seen some variables being assigned, tell me what the following code means?

The answer to above questions: the assignment means that lkjasdlfjlskdfjlksjdflkj is a variable (a really badly named one), but a variable none-the-less. jlkajdsf and lkjsdflkjsdf must also be variables. The sum of the two numbers held in jlkajdsf and lkjsdflkjsdf is stored in the variable lkjasdlfjlskdfjlksjdflkj.

Examples of builtin Data and Variables (and Constants)

For more info, use the "help" command: (e.g., help realmin);

Examples of using Data and Variable

Pattern to memorize, assignment pattern.

The assignment pattern creates a new variable, if this is the first time we have seen the "name", or, updates the variable to a new value!

Read the following code in English as: First, compute the value of the thing to the right of the assignment operator (the =). then store the computed value under the given name, destroying anything that was there before.

Or more concisely: assign the variable "name" the value computed by "right_hand_expression"

IMAGES

  1. C++ Programming: Program Design Including Data Structures

    programming design assignment quizlet

  2. C++ Programming: Program Design Including Data Structures

    programming design assignment quizlet

  3. Comp sci. Paper 1 Topic 3: (1) Basic Object Oriented Programming

    programming design assignment quizlet

  4. Comp sci. Paper 1 Topic 3: (2) Object Oriented Programming Principles

    programming design assignment quizlet

  5. How to Write a Programming Assignment? A Guideline for the Beginners

    programming design assignment quizlet

  6. Tips for Designing a Plan to Learn Programming & Development

    programming design assignment quizlet

VIDEO

  1. How to mess up your programmer #shorts #programming #study

  2. Starting A Quizlet Style Website Design(*Part One of Probably A Million*)

  3. PYTHON PROGRAMMING & IT'S APPLICATION

  4. How to use the Quizlet app?

  5. How to create a folder in Quizlet?

  6. Quizlet

COMMENTS

  1. Intro to Coding

    Choose all statements that identify the benefits of programming design. A. It allows programmers to be more creative in writing the code. B. It provides a design approach to a specific type of problem. C. It ensures that all code will work together. D. It results in fewer lines of code.

  2. B Intro to IT unit 4 programming design assignment

    Identify characteristics of structured programming design. Choose all that apply. A-The code is easy to test and debug. B-It creates a program made of modules that can be called when needed. C-The code is difficult to modify due to the use of modules. D-It uses logic flow. E-The code is easier to follow.

  3. Programming Design Flashcards

    Preview. ESB domain 3. 9 terms. Joshua2305. Preview. Study with Quizlet and memorize flashcards containing terms like Programming design, Why is it important to decide upon a programming design before developing a software solution?, The three common types of programming design and more.

  4. Programming Logic and Design

    Study with Quizlet and memorize flashcards containing terms like Abstraction, Alphanumeric values, Annotation symbol and more. ... Programming Logic and Design - Chapter 2 Review. 20 terms. lilyjune25. Preview. Structures and Functions of the Eye. Teacher 8 terms. grayson_mills64. ... Assignment operator. The equal sign; it always requires the ...

  5. Starting out with Programming Logic and Design

    Find step-by-step solutions and answers to Starting out with Programming Logic and Design - 9780134801155, as well as thousands of textbooks so you can move forward with confidence. ... Variable Assignment and Calculations. Section 2.4: Variable Declarations and Data Types. Section 2.7: Documenting a Program. Page 124: ... Quizlet for Schools ...

  6. Programming Logic and Design Ch. 2 Flashcards

    A(n) _____ specifies a variable's name and data type. a. assignment b. variable specification c. variable certification d. variable declaration d. variable declaration About us

  7. Programming Logic & Design Unit 1 Test Answers

    Q-Chat. Michael_Noesi. Top creator on Quizlet. These are the answers to the Unit 1 Test for Professor Handy's class. The book is Programming Languages and Design Comprehensive. If you have the answer to the missing ones, you can E-mail me at [email protected].

  8. Answers for Quizzes & Assignments that I have taken

    Coursera and edX Assignments. This repository is aimed to help Coursera and edX learners who have difficulties in their learning process. The quiz and programming homework is belong to coursera and edx and solutions to me. AWS Certified Solutions Architect - Professional. DevOps on AWS Specialization.

  9. 1.2: Program Design

    Overview. Program design consists of the steps a programmer should do before they start coding the program in a specific language. These steps when properly documented will make the completed program easier for other programmers to maintain in the future. There are three broad areas of activity: Understanding the Program.

  10. Program Design

    Program design consists of the steps a programmer should do before they start coding the program in a specific language. These steps when properly documented will make the completed program easier for other programmers to maintain in the future. There are three broad areas of activity: Understanding the Program.

  11. Java Programming: Principles of Software Design

    My solutions to assignments/problems for the course (Java Programming: Principles of Software Design) offered by Duke University at Coursera. - SABERGLOW/Java_Programming_Principles_of_Software_Design

  12. 1.3: Activity 3

    Explain the role of each. 1.3: Activity 3 - Using pseudo-codes and flowcharts to represent algorithms is shared under a license and was authored, remixed, and/or curated by LibreTexts. The student will learn how to design an algorithm using either a pseudo code or flowchart. Pseudo code is a mixture of English like statements, some mathematical ...

  13. Java Programming: Principles of Software Design

    This course is part of the Java Programming and Software Engineering Fundamentals Specialization. When you enroll in this course, you'll also be enrolled in this Specialization. Learn new concepts from industry experts. Gain a foundational understanding of a subject or tool. Develop job-relevant skills with hands-on projects.

  14. Rosebank College

    Question 3 (Marks: 25) Consider the following problem statement: You are tasked with writing the pseudocode for a programme that performs various operations on an array of integers. The size of the array is five. The user must enter the values to be stored in the array (use a loop). Enter the values in ascending order (already sorted).

  15. Sequencing, selection, and iteration

    There are three building blocks of algorithms: sequencing, selection, and iteration. Sequencing is the sequential execution of operations, selection is the decision to execute one operation versus another operation (like a fork in the road), and iteration is repeating the same operations a certain number of times or until something is true.

  16. Software design pattern

    In software engineering, a design pattern describes a relatively small, well-defined aspect (i.e. functionality) of a computer program in terms of how to write the code.. Using a pattern is intended to leverage an existing concept rather than re-inventing it. This can decrease the time to develop software and increase the quality of the resulting program. ...

  17. 2.1: Program Design

    This page titled 2.1: Program Design is shared under a CC BY license and was authored, remixed, and/or curated by Kenneth Leroy Busbee ( OpenStax CNX) . Program Design consists of the steps a programmer should do before they start coding the program in a specific language. These steps when properly documented will make the completed program ...

  18. Object Oriented Programming in Java Specialization

    After completing this course you will be able to: 1. Edit, compile, and run a Java program; 2. Use conditionals and loops in a Java program; 3. Use Java API documentation in writing programs. 4. Debug a Java program using the scientific method; 5. Write a Java method to solve a specific problem; 6.

  19. C++ Programming 8th Edition Textbook Solutions

    a. • Pascaline was a device invented by Blaise Pascal. • There were eight movable dials on it. • It had the capability of computing sums up to eight digits. Hence, the given statement is . Step 2 of 19. b. • Main memory is directly connected to the Central Processing Unit (CPU). • CPU performs all the logical and arithmetic operations.

  20. GitHub

    Programming Assignments and Quizzes from all courses within the Blockchain Specialization offered by The University at Buffalo and The State University of New York and key takeaways from study and research of myself. - linhnt31/Blockchain_Specialization_Coursera

  21. Object Oriented Programming in Java

    Course Opening Title • 0 minutes • Preview module. Welcome (Object Oriented Java Programming: Data Structures and Beyond Specialization) • 3 minutes. Welcome (Object Oriented Programming in Java Specialization) • 1 minute. Project prototype • 4 minutes. Your Path through the Course • 5 minutes.

  22. Programming

    Assignment means: "storing a value (of a particular type) under a variable name". Think of each assignment as copying the value of the righthand side of the expression into a "bucket" associated with the left hand side name! Read this as, the variable called "name" is "assigned" the value computed by the expression to the right of the ...

  23. Hire Me>>> Stat Math Assignment Helper Reddit

    If you are unable to pas your Online Exam, Assignment and couldn't handle online courses workload, get paid help from Online Helpers at Hiraedu!…