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
| Level | Description | Advantages | Disadvantages |
|---|---|---|---|
| Machine language (1GL) | Binary 0/1 instructions | Directly executed, fastest, no translation | Hard to write/debug, machine-dependent |
| Assembly language (2GL) | Mnemonics (ADD, MOV) | Easier than binary, efficient, hardware control | Machine-dependent, needs assembler |
| High-level language (3GL) | English-like (C, Java, Python, FORTRAN, COBOL) | Easy to learn, portable, problem-oriented | Needs compiler/interpreter, slower, less hardware control |
| 4GL | Non-procedural (SQL, report generators) | Very productive | Less flexible |
| 5GL | Logic/AI (Prolog) | Constraint/goal based | Specialised |
| 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
| Type | Purpose | Examples |
|---|---|---|
| Word processing | Create/edit/format documents (mail merge, spell check) | MS Word, Google Docs, LibreOffice Writer |
| Spreadsheet | Rows/columns of cells, formulas, charts | MS Excel, Google Sheets, Calc |
| Presentation | Slide shows | PowerPoint, Impress |
| Graphics | Drawing, image editing, design | Photoshop, CorelDRAW, AutoCAD |
| DBMS | Store, organise, query data | MS 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$1is 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.
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 →