Computer Resources Are Generally Exposed To External Resources Through

stored program concept

-digital computers are multi-purpose devices & execute tasks with speed and precision
-humans and computers are complementary
-a computer is "like a bicycle for the mind"

classes of software programs

-operating system
-system software
-application software

AD

why do we need software programs?

to bridge the gap btw. people and computers

operating system

-it is the software program that manages a computer system and its operations
-it is a platform for software applications
-it exposes application programming interfaces (API)
-most important because it allows you to use machine and allow access to other computer resources

what does the operating system do?

-it allocates and assigns system resources (manage user credentials, memory addressing)
-it schedules access to resources (CPU time, printer queue)
-it monitors system's activities (status of jobs)

system software

software you wouldn't need if you didn't have a computer (ex: you don't need an antivirus program if you don't have a computer)

what are software programs designed to do?

-to extend the functionality of the operating system (device drivers)
-provide specific system management functionality (antivirus)
-provide the facilities for software development (integrated development environment)

from system software to operating system

-apple: time machine (automatic backups)
-apple: compression utility
-windows: firewall
-windows: disk cleanup utility
-android: google allo
-iOS: siri

application programming interface (API)

point of contact btw. two software programs
-allows software program to tell OS to do command, such as print
-interface allows the interaction btw. you and the device

application software

a software program that enables a user to perform an activity they would perform without a computer (excel, snapchat)

GPS is an example of

an input device
-API is part of OS, allows for communication

Examples of application software

-excel: data analysis
-word: communication
-groupme: verbal communication
-fortnite: entertainment

interface

the point of contact btw. two systems or two components of a system

more examples of user interface

ATM and Ipod

types of user interfaces

-command line
-menu driven
-graphical (GUI)
-conversational interfaces (amazon alexa, siri)

technical platforms

the "environment" in which a software program is executed
-hardware architecture (intel, ARM)
-operating system (wintel, iOS)
-software application (chrome, facebook)

strategic platforms

a software-based product or a service that serves as a foundation on which outside parties can build complementary products or services

Moore's law

why is the communication gap btw. people and technology shrinking?

HTML

hypertext markup language

-the standard language for describing and defining the content of web pages

how does HTML work?

it does so by "marking up" the elements of a page with tags that identify the elements to the browser

the HTML browser interprets the tags and

-retrieves external resources (images, sound files)
-renders the content

hypertext

elements of the web page that link to an external resource

programming language

HTML is not a

software programs

the set of instructions which govern the operations of a digital computer

programming

the art and science of writing software programs
-algorithm design
-coding

algorithm

a set of rules for solving a problem, or achieving a result, in a finite number of steps

algorithm design

the activity of envisioning and specifying the set of steps the computer must perform in order to produce the expected output (the algorithm)

coding

the activity of writing the algorithm as a set of precise instructions for the computer to execute= using a specific programming language

algorithm and algorithm design

what two things does it take to actually code?

machine language

-instructions are sequences of impulses for the CPU to process, represented as: binary representation
-explicit memory addressing
-hardware specific
-very difficult to use-the programmer has to bridge the full 'communication gap'
-difficult to maintain programs over time

machine language

what is the lowest level language?

hardware specific

it maps directly to the microprocessor's instruction set

what is hardware specific low level language?

assembly language

assembly language uses

mnemonic opcodes and symbolic addresses
-it is one level of abstraction above machine lang.

mnemonic opcodes

abbreviations to represent instructions (ADD, SUB)

symbolic addresses

"meaningful" identifiers for memory locations (AX, BX, DI, SI)

what does assembly language require?

requires knowledge of the hardware but easier than machine language

assembler

the software program that converts assembly language code into machine language
-source code and object code

source code

human readable software program

object code

machine executable software program

high level languages

-aka Third Generation Langs. (3GL)
-higher abstraction than assembly lang.
-one to many mapping to machine lang.
-platform independent
-must be converted into machine lang. in order to be executed (compiler & interpreter)
-example is Java

compiler

performs the conversion from source to object code before the program can be executed

interpreter

source to object one line at a time

fourth generation languages

-higher abstraction than 3GL
-non-procedural english-like langs.
-outcome driven

outcome driven

programmer specifies what (the outcome) not how (the procedure)

higher level abstraction implies

-greater ease of use
-greater portability across hardware platforms
-lower control by the programmer over hardware resources
-lower efficiency of the resulting software program

application logic layer

-instructions that specify what the application does
-this is the defining code of the software prgram

data management layer

-contains instructions specifying where and how to store the application's data
as well as how to search for it, retrieve it and secure it

components of communication gap

1. presentation layer-codes how to interact
2. application logic layer- contains all features in software programs
3. data management layer- codes how to search, retrieve, and secure all data

Donation Page

Support Our Work

Do you appreciate the value this website provides? If so, please consider donating to help keep it running. Your donation will go a long way in helping us continue to provide the same quality of content and services. Every bit helps, and your support is greatly appreciated. Thank you for your generosity.