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

How Software is Acquired: Build vs. Buy

Learning Objectives

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

  • ✅ Describe the different methods of acquiring software.
  • ✅ Explain the pros and cons of buying (COTS) vs. building (custom) software.
  • ✅ Define open-source software and SaaS.

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

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

Next focus

In this part of today's lecture, you will be able to:

  • ✅ Define what a programming language is and its purpose.
  • ✅ Differentiate between low-level and high-level programming languages.
  • ✅ Understand the role of a compiler and an interpreter in executing code.

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)

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)

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++

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.

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.

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.

Thank You

Questions before we wrap this hour?


Next: Unit 4 · Session 3 — Operating Systems

Course Home · Next session