Study Unit 6

Study Unit 6: Programming Language

Learning Objectives

  • Define programming and describe the six steps of programming.

  • Compare design tools including top-down design, pseudocode, flowcharts, and logic structures.

  • Describe program testing and tools for finding and removing errors.

  • Describe CASE tools and object-oriented software development.

  • Explain the five generations of programming languages.

Introduction

  • Focus on Phase 4, Systems Development, of the systems life cycle.

  • Understand the programming process and the programming languages available.

  • Competent end users need to grasp the relationship between systems development and programming.

Programs and Programming

Definition

  • Program: A list of instructions for the computer to follow to process data into information.

  • Written using programming languages such as C++, Java, or Visual Basic.

Types of Programs

  • Prewritten/Packaged: Software that is ready to use out of the box.

  • Custom-made: Tailored specifically to user needs.

Software Development

  • Involves problem-solving and follows the six-step System Development Life Cycle.

Six-Step Software Development Life Cycle

  1. Program Specification

  2. Program Design

  3. Program Code

  4. Program Test

  5. Program Documentation

  6. Program Maintenance

Program Specification

  • Also known as program definition or program analysis.

  • Five Items to Specify:

    • Program’s objectives

    • Desired output

    • Input data required

    • Processing requirements

    • Documentation

Defining Program Specification

  • Program Objectives: Clear statement of the problem being addressed.

  • Desired Output: Inputs and outputs need to be communicated.

  • Input Data: Determination of the data source.

  • Processing Requirements: Identify tasks to move input to output.

  • Program Specification Document: Document outlining all program specifications.

Program Design

  • Planning a solution using structured programming techniques.

  • Techniques:

    • Top-down design

    • Pseudocode

    • Flowcharts

    • Logic structures

Top-Down Program Design

  • Identifies the program's processing steps known as modules.

  • Each module comprises logically related program statements.

Pseudocode

  • An outline of the logic before writing the actual program.

  • Serves as a summary of what the program will accomplish.

Flowcharts

  • Graphically depict the sequence of steps needed to solve a programming problem.

Logic Structures

  • Write structured programs effectively by removing guesswork:

    • Sequential Structure: One statement follows another.

    • Selection Structure: A decision must be made.

    • Repetition Structure: Process that can be repeated based on a condition.

Program Code

  • Coding is the process of writing the program.

  • Characteristics of a good program:

    • Reliability

    • Correct output production

    • Error catching capability

    • Well-documented and understandable.

Program Testing and Debugging

  • Debugging: Testing to eliminate errors.

  • Types of Errors:

    • Syntax Errors: Violations of programming language rules.

    • Logic Errors: Incorrect calculations or missing programming procedures.

Testing Processes

  • Desk Checking: Review code line by line.

  • Manual Testing: Entering correct and incorrect data manually.

  • Attempt at Translation: Must be syntax error free before compilation.

  • Testing Sample Data: Tests for logic errors on the computer.

  • Beta Testing: Feedback from a select group of potential users.

Program Documentation

  • Written descriptions of program functions and usage.

  • Important for users and operators, ensuring understanding of the program and error messages.

Program Maintenance

  • Represents 75% of total application lifetime costs.

  • Activities include:

    • Ensuring the program is error-free, effective, and efficient.

    • Operations such as patches and software updates.

    • Addressing changing needs through agile development.

CASE Tools & Object-Oriented Programming

  • CASE (Computer-Aided Software Engineering): Automates portions of the development process.

  • OOP (Object-Oriented Programming): Emphasizes relationships over procedures, encapsulating both data and processing operations.

Generations of Programming Languages

  • Programming languages evolve through five distinct generations from machine languages to human-like languages.

5 Generations

  1. 1st Gen (Machine Languages): Data in 1s and 0s.

  2. 2nd Gen (Assembly Languages): Uses mnemonics converted to machine language.

  3. 3rd Gen (High Level Procedural Languages): Express procedures, translated with compilers/interpreters.

  4. 4th Gen (Task-Oriented Languages): Designed for specific problems.

  5. 5th Gen (Problem and Constraint Languages): Incorporates AI concepts.

Generation Samples

  • Samples of each generation listed sequentially from 1st to 5th.

Careers in IT

  • Computer programmers create, test, troubleshoot, update, and repair programs.

  • Employers seek:

    • Degrees in Computer Science or Information Systems.

    • Traits like patience, logical thinking, and attention to detail.

  • Salary expectations: $51,000 to $64,000 annually.

Future Technology

  • Upcoming advancements may lead to personal programmable robots as hardware components become cheaper.

Open-Ended Questions

  1. Identify and discuss each of the six steps of programming.

  2. Describe CASE tools and OOP. How does CASE assist programmers?

  3. What is meant by “generation” in reference to programming languages? Differentiate low-level and high-level languages.

  4. Differentiate between a compiler and an interpreter.

  5. Describe logic structures and the differences among the three types.

robot