Unit 4 Session 2: Software Acquisition and Programming Languages | IT 231 BBA Slides

--:-- --
↓ Scroll for more

Unit 4 · Session 2

Software Acquisition and Programming Languages

IT 231: IT and Applications (BBA)

Today's focus

  1. How Software is Acquired: Build vs. Buy
  2. An Introduction to Programming Languages

🎯 Learning Objectives

By the end of this session, you will be able to:

  • ✅ Compare buying (COTS) and building (custom) software, including their pros and cons.
  • ✅ Define open-source software and SaaS.
  • ✅ Define a programming language and its purpose.
  • ✅ Differentiate between low-level and high-level programming languages.
  • ✅ Explain the role of a compiler and an interpreter in executing code.

How Software is Acquired: Build vs. Buy

The Core Decision: Build vs. Buy

When an organization needs new software, it faces a fundamental choice:

BUILD 🛠️

Create a custom solution from scratch.

BUY 🛒

Purchase a ready-made product.

This decision impacts cost, time, and how well the software meets your specific needs.

Option 1: Buy It 🛒

Commercial Off-the-Shelf (COTS)

Definition: Pre-existing software purchased from a commercial vendor, designed for a general audience.

Think of it like buying a car from a showroom. You choose from existing models.

Examples: Microsoft Office, Adobe Photoshop, SAP ERP.

Spot the COTS! Quick Quiz

Click all COTS (Commercial Off-the-Shelf) software, then check your answers:

COTS: Advantages vs. Disadvantages

Advantages 👍

  • Lower Upfront Cost: Cheaper than building.
  • Faster Implementation: Ready to deploy quickly. ⚡
  • Reliability: Well-tested by many users.

Disadvantages 👎

  • Imperfect Fit: May not meet all specific needs.
  • Lack of Control: Dependent on the vendor for updates and support.

Option 2: Build It 🛠️

Custom Development

Definition: Creating a new software application from scratch, tailored to an organization's exact specifications.

This is like hiring an architect to design and build a custom house just for you.

Custom: Advantages vs. Disadvantages

Advantages 👍

  • Perfect Fit: Designed for your exact needs. 🎯
  • Total Control: You own the code and can make any changes.
  • Flexibility: Can evolve with your business.

Disadvantages 👎

  • High Cost: Very expensive upfront.
  • Time-Consuming: Can take months or years.
  • High Risk: Projects can fail or go over budget.

Build vs. Buy Decision Calculator

Adjust sliders to describe your organization's situation and get a tailored recommendation:

Budget Available: Medium
1 = Low    2 = Medium    3 = High
Uniqueness of Requirements: Standard
1 = Standard    2 = Somewhat Unique    3 = Highly Unique
Deployment Urgency: Moderate
1 = Not Urgent    2 = Moderate    3 = Very Urgent

📊 Build vs. Buy: At a Glance

Factor


Cost

Time

Fit

Control

Buy (COTS)


Low

Fast

General

Low

Build (Custom)


High

Slow

Perfect

High

Key Trade-off: You are usually trading perfect fit & control for lower cost & faster speed.

3-Question Decision Guide

Answer 3 quick questions to find the right acquisition strategy:

Q1. How large is your budget?
Small / Limited Substantial / Large
Q2. How unique are your requirements?
Standard / Generic Very Specific / Unique
Q3. How fast do you need it?
Can wait months/years Need it quickly

Beyond Build vs. Buy

The choice isn't always black and white. Two other popular models have emerged:

Open-Source Software

The "community-built" option.

Software as a Service (SaaS)

The "rental" or subscription option.

🔍 Other Methods: Open-Source Software

Definition: Software whose source code is freely available for anyone to use, inspect, modify, and distribute.

  • The software itself is free, but you might pay for support, customization, or implementation.
  • Examples: Linux OS, Apache Web Server, Firefox Browser, WordPress.

🔍 Other Methods: Software as a Service (SaaS)

Definition: A subscription-based model where software is hosted by a vendor and accessed over the internet.

  • You don't own the software; you "rent" it.
  • Usually a monthly or annual fee.
  • Examples: Google Workspace, Salesforce, Microsoft 365, Dropbox.

Software Type Sorter

Click a software name, then click the correct category bucket to place it:

COTS

Custom Build

Open-Source

SaaS

🎬 Open Source vs Closed Source

Practical Application: Scenario

Case Study: A Trekking Company in Pokhara, Nepal

A new trekking agency needs software to manage bookings, guides, and customer information. What should they choose?

  • Buy (COTS): Purchase a generic tour operator software. (Fast and cheap, but might not handle unique Nepali trekking permits well.)
  • Build (Custom): Hire a Kathmandu-based dev team to build a perfect system. (Ideal fit, but very expensive for a new company.)
  • SaaS: Subscribe to a cloud-based booking system like FareHarbor. (Low upfront cost, but ongoing fees and less control.)
  • Open-Source: Adapt a free open-source CRM like Odoo. (Free software, but requires technical skill to set up and maintain.)

Nepal Business Scenario Quiz

Question 1 of 4

Key Takeaways

  • The "Build vs. Buy" decision is a fundamental choice in IT strategy.
  • COTS (Buy) is fast and cheap but offers less flexibility.
  • Custom (Build) provides a perfect fit but is expensive, slow, and risky.
  • Open-Source and SaaS are popular alternatives that offer different models of cost and ownership.

An Introduction to Programming Languages

What is a Programming Language?

A programming language is a formal language with a set of instructions used to create software programs and implement algorithms.

Think of it as a special vocabulary and set of grammar rules to communicate with a computer.

Analogy: A programming language is like a recipe. The ingredients and steps (the code) must be written in a language the chef (the computer) understands to produce a final dish (the output).

Activity: The Recipe Analogy

Match each recipe component to its programming equivalent. Select from the dropdown and press Check.

Recipe ComponentYour Answer
The recipe book — the rules and vocabulary
The written recipe — your specific instructions
The chef — who reads and executes the recipe
The final dish — what comes out at the end

The Language Spectrum

Programming languages exist on a spectrum, from the computer's native tongue to languages that resemble human speech.

Low-Level

Closer to Hardware ⚙️

Less abstraction

Faster, but harder to use

High-Level

Closer to Human 🧑‍💻

More abstraction

Slower, but easier to use

Activity: Sort the Languages

Click each item to place it in the correct category. Is it Low-Level or High-Level?

Machine Code Python Assembly Java Binary (0s & 1s) JavaScript
Low-Level
High-Level

🔍 Low-Level Languages

These languages provide little to no abstraction from a computer's hardware and are very close to machine code.

Machine Language

  • The "native" language of the CPU.
  • Consists of binary code (0s and 1s).
  • Not human-readable.
01001000 01100101 01101100 01101100 01101111

(This is "Hello" in binary)

🔍 Low-Level Languages (cont.)

Assembly Language

  • A step above machine code.
  • Uses mnemonics (short words) like MOV, ADD.
  • Requires an assembler to convert to machine code.
MOV AL, 61h

(Move the value 61 (hex) into register AL)

Margaret Hamilton, 1969: the Apollo code, printed out

Margaret Hamilton standing next to a stack of printed program listings as tall as she is

Activity: Binary Letter Explorer

Every character stored by a computer is encoded as 8-bit binary. Click a letter to see its binary representation.

? → decimal ? →
0 0 0 0 0 0 0 0

🚀 High-Level Languages

Designed to be easy for humans to read, write, and maintain, with strong abstraction from hardware details.

Characteristics

  • English-like syntax
  • Easier to learn and debug
  • Portable across different computer systems
  • Focus on logic, not hardware management

Popular Examples

  • 🐍 Python
  • ☕ Java
  • 🌐 JavaScript
  • #️⃣ C#
  • ++ C++

FORTRAN, one card per line of code

Pink punched card with FORTRAN printed on it and rows of rectangular holes

The Translation Problem

Computers only understand machine code, but we write in high-level languages. How do we bridge this gap?


🧑‍💻
High-Level Code
➡️ ❓ ➡️ ⚙️
Machine Code

High-level source code must be translated into low-level machine code before the CPU can execute it.

Compilers vs. Interpreters 📊

The translation is handled by two types of programs: Compilers and Interpreters.

Compiler

  • Translates the entire program at once.
  • Creates a separate executable file (e.g., .exe).
  • Execution is generally faster.
  • Errors are reported after the whole program is checked.
  • Examples: C, C++, Java

Interpreter

  • Translates the program line by line.
  • No separate executable file is created.
  • Execution is generally slower.
  • Errors are reported as soon as they are found.
  • Examples: Python, JavaScript, Ruby

How a Compiler Works ⚙️

Source Code

my_program.cpp
➡️

Compiler

Translates all at once

➡️

Executable File

my_program.exe

Key Idea: Compile once, run anytime. The translation and execution are two separate steps.

Grace Hopper, compiler pioneer

Official portrait of Grace Hopper in US Navy uniform

How an Interpreter Works ⚡

Source Code

my_script.py
➡️

Interpreter

Translates & Executes
Line by Line

➡️

Immediate Output

Program runs directly

Key Idea: Translation and execution happen at the same time, every time you run the script.

🎬 Interpreter vs Compiler

Application in Nepal 🇳🇵

The choice of language impacts many local tech solutions.

Which language for which job?

  • Building a Digital Wallet (e.g., eSewa, Khalti): Performance and security are critical. Compiled languages like Java or Kotlin (for Android) are a strong choice.
  • Developing a News Portal (e.g., OnlineKhabar): Rapid updates and content management are key. Interpreted languages like PHP or JavaScript (with frameworks) allow for fast development cycles.
  • Data Analysis for Trekking Tourism: Scripting and quick analysis are needed. Python is ideal due to its powerful data science libraries and ease of use.

Key Takeaways

  • Programming languages are the tools we use to give instructions to computers, ranging from low-level to high-level.
  • Low-level languages (Machine, Assembly) are close to the hardware, offering speed but complexity.
  • High-level languages (Python, Java) are close to human language, offering simplicity and portability.
  • Compilers translate an entire program at once into an executable file.
  • Interpreters translate and execute a program line by line, at the same time.

Image & Video Credits

Images

Videos (YouTube)

  • LearnFree (GCFGlobal), "Open Source vs. Closed Source Software" (0:19 to 1:31)
  • TVOntario, Bits and Bytes, "Interpreters and Compilers (Bits and Bytes, Episode 6)" (1:16 to 3:00)

Exam Practice 📝

Short answer

  1. What is COTS software? Give two examples.
  2. What is a programming language? Differentiate between syntax and logic errors.
  3. Differentiate between open-source software and freeware.
  4. What is assembly language? What is an assembler?

Long answer

  1. Explain the different methods of acquiring software with their advantages and disadvantages.
  2. Compare low-level and high-level languages with examples.

Revise the answers in the full notes linked on the last slide.

Thank You

Questions before we wrap this hour?


Next: Unit 4 · Session 3 — Operating Systems

Course Home · Next session

📖 Read the full notes: How Software is Acquired: Build vs. Buy · An Introduction to Programming Languages