Course progress0%
Course content
25 min

Understanding What Software Really Is

Build a clear mental model of computers, programs, applications and software systems.

By the end of this lesson

  • Distinguish hardware and software
  • Explain program, application and system
  • Identify the parts required beyond source code

Your path through the Academy

This course develops the reasoning used in Course 02: Programming Foundations and Course 03: Web Programming. First investigate a need and express a rule; next implement and test rules in JavaScript; then make the program usable through a web interface. No programming setup is required here.

Durations are indicative active-study estimates, not measured learner averages. This course's lesson estimates total 5 hours 15 minutes to 7 hours 15 minutes, including the final project. The overall 6 to 8 hours allows for review. Scheduling interviews or observations can extend the calendar time. Optional exploration is additional; understanding is the completion criterion.

Begin with the computer

A computer is a machine that receives information, follows instructions, produces results and may store information for later.

Input → Processing → Output
              ↓
            Storage

When you type a message, the keyboard provides input. The computer processes the characters, the screen displays output and the messaging application stores the conversation.

Hardware and software

Hardware is the physical equipment: processor, memory, disk, keyboard and screen.

Software is the organized collection of instructions, data, configuration and supporting components that makes the hardware perform useful work.

Term Simple meaning Example
Code Instructions written by a person A rule that calculates a total
Program Instructions prepared for execution A command-line calculator
Application Software designed for users A mobile banking application
System Connected software, data, infrastructure and people A university information system

Essential vocabulary

These words will appear throughout the course:

  • Source code: instructions written by people in a programming language and saved in files
  • Runtime: the environment that executes a program and provides what it needs while running
  • Configuration: settings that change how software behaves without changing its main instructions
  • Infrastructure: the computers, networks and services that allow software to operate
  • Interface: the place where a person or another system interacts with software

You do not need to memorize these definitions now. Return to them whenever a term appears later.

Code is only one part

Imagine an attendance application. A button labeled “Absent” is not the whole software.

The system must also know:

  • which teacher is connected
  • which class is active
  • which students belong to it
  • when attendance may be changed
  • where the records are stored
  • who can see or correct them
  • what happens if the network fails

Those rules, data, permissions and operating conditions are part of the software system.

Activity: see the complete system

Choose an application you use. Complete this table on paper:

Question Your answer
Who uses it?
What information enters the system?
What result does it produce?
What information does it store?
What could go wrong?
Who maintains it?

Check your understanding

Statement: “If the code works on the developer’s computer, the software is finished.”

False. The software may still fail for real users because of missing data, unclear rules, security problems, different environments or unavailable infrastructure. Working code is necessary, but it is not enough.

Key idea

Software engineering is the work of understanding a problem and building a complete, reliable system that solves it. Programming is one part of that work.

Practice the mindset: pause before proposing a feature

A small shop says: "We need an app because customers keep asking when we close."

Pause and write: What outcome does the shop need? What do you know, and what are you assuming? Suggest one question before proposing an app.

Examine the first answer

"Build a page with opening hours" is a possible response. It assumes that customers cannot find the hours. Perhaps the published hours are wrong, or holiday exceptions are missing. Those problems need different responses.

New information

The owner explains that regular hours are already visible, but holiday hours are not updated.

Revise your proposal. Updating the existing information and assigning someone to maintain it may be enough. A new application remains an option only if the evidence supports it.

Independent practice: A friend wants an app to remember appointments. Write two possible explanations for missed appointments and one question that would help distinguish them.

Review your reasoning

Forgetting the date and not knowing that an appointment changed are different problems. Ask about the last missed appointment. A reminder may help the first; a reliable update process may help the second. Other explanations are valid when you state how you would check them.

Engineering habit: Separate the requested feature from the desired outcome. A simpler response is worth considering when it solves the observed problem.

How to study this course

Keep a short reasoning notebook. Before reading each discussion, record your initial answer. Then write what changed your mind and what remains uncertain. These are practice scenarios, not claims about a specific client project.

Use this routine throughout the course: understand, question, compare, decide, verify, revise. You can practice every step on paper before learning a programming language.

What you learned

  • A computer transforms inputs into outputs by following instructions.
  • Hardware is physical equipment, while software organizes useful behavior.
  • Code, programs, applications and systems describe different levels of a solution.
  • Working code alone does not guarantee useful or reliable software.

Knowledge check

  1. Is a source-code file already a complete software system?
  2. Name the four elements in the input-processing-output model.
  3. Why does an attendance system need rules in addition to an interface?
  1. No. It becomes part of a system when combined with execution, data, rules, interfaces and operational support.
  2. Input, processing, output and storage.
  3. The interface captures actions, but rules decide who may act, which data is valid and how exceptional cases are handled.

Lesson complete?

Your progress is saved on this device.