Fundamentals of Information Technology · 9 min read

Software

Software is the set of programs, data and documentation that tells hardware what to do. Without software, a computer is just a box of electronics. This note covers why software is needed, how it is classified (system vs application), the role of the operating system and utilities, the generations of programming languages, and common application packages.

Key concepts

Software and its need – hardware can only execute instructions; software supplies them. It makes the computer usable for specific tasks, manages hardware resources, provides a user interface and allows the same hardware to do many jobs. Firmware is software permanently stored in ROM/flash (e.g. BIOS).

Types of software

  • System software – operates and controls hardware, provides a platform: operating systems, utility programs, language translators, device drivers.
  • Application software – solves user problems: word processors, spreadsheets, accounting, games.
  • By licence: proprietary/commercial, shareware (try then pay), freeware (free to use, usually closed source), open source (e.g. Linux, LibreOffice), public domain.

Operating system (OS) – interface between user and hardware and manager of resources. Functions: process management, memory management, file management, device (I/O) management, security, user interface (CLI or GUI), networking. Types: batch, multiprogramming, multitasking/time-sharing, multiprocessing, real-time (RTOS), distributed, network, mobile. Examples: Windows, Linux, macOS, Unix, Android, iOS. Booting loads the OS (kernel) from storage into RAM.

Utility programs – perform maintenance tasks: antivirus, disk defragmenter, disk cleanup, backup, file compression (WinZip, 7-Zip), disk formatting and partitioning, file managers.

Language translators – assembler (assembly → machine code), compiler (whole high-level program translated at once; faster execution; e.g. C, C++), interpreter (line by line; easier debugging; e.g. Python, BASIC). Linker and loader prepare the executable.

Programming languages

LevelDescriptionAdvantagesDisadvantages
Machine language (1GL)Binary 0/1 instructionsDirectly executed, fastest, no translationHard to write/debug, machine-dependent
Assembly language (2GL)Mnemonics (ADD, MOV)Easier than binary, efficient, hardware controlMachine-dependent, needs assembler
High-level language (3GL)English-like (C, Java, Python, FORTRAN, COBOL)Easy to learn, portable, problem-orientedNeeds compiler/interpreter, slower, less hardware control
4GLNon-procedural (SQL, report generators)Very productiveLess flexible
5GLLogic/AI (Prolog)Constraint/goal basedSpecialised
Machine and assembly are low-level languages.

Language history highlights – FORTRAN (1957, scientific), COBOL (1959, business), BASIC (1964, beginners), C (1972, Dennis Ritchie, Bell Labs), C++ (1983–85, Bjarne Stroustrup), Java (1995, Sun Microsystems), Python (1991, Guido van Rossum).

Application software and its types

TypePurposeExamples
Word processingCreate/edit/format documents (mail merge, spell check)MS Word, Google Docs, LibreOffice Writer
SpreadsheetRows/columns of cells, formulas, chartsMS Excel, Google Sheets, Calc
PresentationSlide showsPowerPoint, Impress
GraphicsDrawing, image editing, designPhotoshop, CorelDRAW, AutoCAD
DBMSStore, organise, query dataMS Access, MySQL, Oracle, PostgreSQL
Spreadsheet basics: cell address = column letter + row number (B3); formulas begin with "="; relative (A1) vs absolute ($A$1) references. Integrated packages / office suites combine these.

Tailored vs packaged software – custom software built for a specific organisation vs off-the-shelf packages for many users.

High-yield points

  • System software: OS, utilities, translators, drivers; application software solves user tasks.
  • Compiler translates the whole program; interpreter translates line by line; assembler converts assembly.
  • Machine language (1GL) is the only language executed directly by the CPU.
  • Low-level = machine and assembly; high-level languages are portable.
  • C was developed by Dennis Ritchie at Bell Labs (1972); Java by Sun (1995).

Exam tips

  • Compiler translates the whole program at once; interpreter executes line by line.
  • Assembler converts assembly language, not high-level language.
  • Operating system is system software; MS Word is application software; antivirus is a utility.
  • Machine language is the only language a CPU executes directly.
  • In Excel, $A$1 is an absolute reference; it does not change when copied.

Exam-style questions

From Calmon's question bank, which has 25 questions on this topic.

1. Which is a disadvantage of high-level languages compared with machine language?

  • A. They cannot be used for business applications
  • B. They are machine-dependent
  • C. They are hard to read and understand
  • D. They must be translated, and the resulting code usually runs slower

Answer: D. High-level languages are portable and easy to use but require translation by a compiler or interpreter, and the resulting code is generally less efficient than hand-written machine code.

2. Which of the following is database management system (DBMS) software?

  • A. Microsoft PowerPoint
  • B. Oracle Database
  • C. Adobe Photoshop
  • D. CorelDRAW

Answer: B. Oracle Database is a DBMS; Photoshop and CorelDRAW are graphics software and PowerPoint is presentation software.

Practise ASoE01 questions →

read it. practise it. pass it.

a free account adds chapter-wise practice, mock tests in the real exam pattern and a daily study plan.

create free account →