Introduction to IT
Firewalls: Block outgoing messages with certain destination addresses or block incoming messages from untrustworthy sources.
Proxy Server: A software that acts as an intermediary between a client and a server to shield the client from adverse actions of the server.
5.1 Computer Software
Application and System Software:
System Software:
General-purpose software that is used to operate computer hardware.
Provides a platform to run application software.
Establishes the framework for application software to interact with hardware.
Includes utility software and operating systems
Operating systems comprise of the user interface and the kernel of the operating system
Application software:
Specific-purpose software used to perform a specific task
Performs specific tasks tailored to a machine’s general purpose
Ex: Spreadsheet, database, desktop publishing, accounting, and program development software.
Non-IT individuals might label application software as productivity or collaboration tools
Software Hierarchy
.
5.2 Operating Systems
Operating Systems
Windows
Developed by Microsoft, inc.
Closed source (proprietary) operating system
Maintains the largest market share for servers and personal computers
Known for its user-friendly design and graphical interface.
MacOS
Developed by Apple, Inc.
Closed-source, exclusive to Apple hardware
Renowned for media editing and graphic rendering capabilities
Seamlessly integrates with other Apple products.
Linux
Open-source operating system.
Can be modified and distributed by anyone
Various distributions (flavors) include Linux Mint, Mandrake, Fedora, Ubuntu, Debian, and CentOS
Many distributions are tailored for server use as well.
Operating Systems for mobile devices
Google Android:
Mobile operating system.
Open-sourced, allowing OEM customization.
Largest user base among mobile operating systems.
Apple iOS
Mobile operating system for Apple hardware.
Closed ecosystem, regulated by Apple.
Controls mobile apps and services running on iOS
Utility software
Enhances operating system capabilities
It aids in customizing OS (Operating System) functions
Ex: Include instillation utilities for fundamental computer setup tasks.
Other utility software includes tools for fata compression, multimedia playback, and network communication
Kernel
Core of an operating system
It encompasses essential functions for computer operation.
Includes components like the file manager, which organizes storage
File manager tasks include maintaining file records, user access, and available storage areas.
User Interface (UI)
Facilitates interaction between users and the operating system.
Command-line interfaces (CLIs) use text-based communication
Graphical user interfaces (GUIs) enable commands via input devices.
Acts as a mediator between users and the OS.
Some OSs (Operating System) offer interface options based on user preferences.
Operating System Users:
OS safeguards computer resources from unauthorized access.
Multiple users are assigned individual accounts
User accounts include name, password, and privileges.
Admin (superuser/root) creates and manages accounts.
Proper credentials grant access to the OS
Admins can modify settings and perform maintenance tasks.
File Management
a backward slash (\) is used to express directory paths;
Windows is not case sensitive when searching for files, which means capitalization is irrelevant;
Windows root directory is referred to by letter, commonly C drive; and
The user’s home directory is found within C:\Users.
In a Linux shell
a forward slash (/) is used to express directory paths;
Linux is case-sensitive;
the root directory in Linux is expressed as a single forward slash; and
most flavors of Linux place the home directory within the /home/.
Consider how you organize your computer files.
Memory Management
The memory manager operates within an OS kernel
Manages primary main memory.
Minimal management during single-task operation; extensive during multitasking.
Assigns memory space to process and restricts actions.
Implements techniques like paging to create an illusion of additional memory.
Paging involves rotating programs and data between primary and secondary memory
The resulting additional memory in secondary storage is termed virtual memory.
Device Drivers
Kernel stores device drivers, facilitating communication with peripheral devices.
Device drivers translate generic requests into technical steps.
Often termed middleware, they enable hardware-software communication.
Required for specific tasks like printing or using Bluetooth headphones.
Some drivers install automatically, others require manual download and installation.
5.3 Other software classification and groups
Local and Cloud Applications:
Local applications:
Reside on individual computers, primarily on personal machines.
Less common in large organizations due to practicality issues
Cloud Applications
Cloud applications (cloud apps) integrate cloud-based and local components to execute tasks.
Cloud computing provides various services like computing, storage, databases, etc.
Offloads infrastructure resource needs to cloud service providers.
Software Licensing:
Microsoft and Apple required purchasing a license for OS installation.
Closed-source systems; code modification not permitted
Developed by Microsoft and Apple.
Linux is open source, allowing global collaboration.
Open-source systems permit kernel modification by individuals and organizations.
Software Packing
Shareware: Trial version with limited functionality/time, full access upon purchase.
Freeware: Free software, protected by EULA and copyright laws.
Public domain software: No EULA or copyright protections, freely available.
Copyright laws protect software authors for at least 35 years
Patents protect unique methods, algorithms, or processes within software
Utility patents cover how an article is used, design patents cover how it looks.
Patents encourage innovation by granting exclusive rights for a limited time.
Conditions must be met to receive a patent.
5.4 Programing and Scripting
Programing Languages and machine code:
Programming involves creating step-by-step instructions (programs) for computers to perform tasks
Programs include software, mobile apps, desktop apps, and games.
High-level programing languages enable communication between humans and computers.
Programs include software, mobile apps, desktop apps, and games.
High-level programming languages enable communication between humans and computers.
Programmers write source code in high-level languages.
Computers only understand machine code (0s and 1s)
Translation of source code into machine code is necessary for execution.
Translation is done through interpreters or compilers.
Compilers:
Compiler translates source code into machine language and checks for errors
Errors must be resolved before successful recompilation
C, C++, C#, and Java programs require compilers.
Common high-level languages like Java, C++, and C#, use compilers.
Compilation translates all instructions at once, errors output afterward.
Interpreters:
Translates source code line by line into machine language and executes it.
Errors terminate the process at the statement containing the error and display a message.
Error resolution is necessary before the interpreter proceeds. Languages like Perl and Python use interpreters.
Python, PHP, JavaScript, Ruby are common interpreted languages.
Interpreters allow running single lines of code and viewing output instantly, unlike compilers.
Algorithms
Step-by-step formula performing a task.
Everyday Ex: following recipes for baking or cooking
In It, algorithms are organized instructions for computations or problem-solving.
Complexity varies based on the task.
Algorithms are fundamental in machine learning.
Covered in more depth in Scripting and Programming Foundations course.
What is an algorithm?
Algorithms are mathematical methods for problem-solving.
Computers and humans both use algorithms.
Algorithms are applied in simple and complex situations.
6.1 Introduction of management of data
Management of Data:
Database applications consist of an application layer and a database management layer.
The application layer interacts with users and queries the database.
It does not directly manipulate data but utilizes the database management system (DBMS) for requests.
DBMS acts like an operating system, supporting application software and data
Explore Microsoft Access or OpenOffice Base for learning about database management systems.
Database tables are made up of records.
Databases:
Relational databases are multidimensional, offering various views through internal linking.
Flat file systems are one-dimensional, presenting information from a single viewpoint.
Previously, applications and data were segregated, leading to duplication.
Database systems integrate organizational information, enabling multiple uses of the same data.
For instance, employee data can serve payroll, vacation, calculations, and benefits management.
Similarly, logistics can use the system for inventory audits, restocking, and damage reporting.
Database Research:
Research analyzes and converts data into decision-making information
Database systems support much of the World Wide Web.
Websites mediate between clients and databases, responding to requests.
Web servers search databases, organize results into webpages, and send them to clients.
Database Management Systems
Database applications have an application layer and a database management layer
The application layer interacts with users and queries the database.
It doesn't directly manipulate data but uses the DBMS for requests,
DBMS supports application software and data, akin to an operating system,
Explore free versions of Microsoft Access or OpenOffice Base to learn about database management systems,
Database tables consist of records and fields holding data.
Research benefits and weaknesses of Microsoft Access for more information.
Database Essentials:
Database table (spreadsheet) consists of records and fields holding data.
Records are stored as rows with related information.
Each record represents a unit of data.
Example table contains three records for three different employees,
Columns in a database table represent fields.
Each field holds a single piece of data about the record subjects.
Example table had fields: First Name, Last Name, Age, Position, Years in Position.
Flat File Databases
DBMS contains routines translating commands into data storage actions.
Database Model defines the conceptual view.
Common Models include flat-file, relational, hierarchical, and object-oriented.
Flat-file stores data in plain text files with each line as a record.
Fields are separated by delimiters like spaces or commas.
Flat databases lack multiple table structures.
Hierarchical Databases
One of the oldest models.
Data organized in a tree structure resembling an organizational chart.
Each record has one parent and optional nodes, forming segments.
Access to data is predictable, restricted to paths in the trees.
Relational Databases
Consist of tables joined logically.
Each record in tables has a unique identifier (primary key)
Primary Key creates relationships among tables.
Field marked as primary key in one table can be found in another as a foreign key,
Attributes interrelate based on real-world interactions.
6.2 Database Operations
Database operations
Involves accessing and manipulating data.
Users or applications send queries to the database.
Results are sent back as responses.
Structured Query Language (SQL) is used for querying and manipulation.
DBMS complements SQL by facilitating communication with the database server.
Selection Operation
Selection Operation creates a new table from rows of another table.
User specifies source table and selection criterion.
Criterion tests against each row; when met, row included in result table.
Tests use attributes, constants, and relational operators like AND, OR.
Ex Syntax: SELECT* FROM Patient
WHERE PatientID = ‘223344”
SELECT statement specifies requested records
Asterisk (*) retrieves everything from the table.
FROM identifies table name (e.g., Patient)
WHERE defines query condition.
Union Operations
Combines distinct fields from tables with matching attributes and data types.
Columns must have compatible data types to be combined in a union.
SELECT PatientID, LastName FROM Patient
UNION
SELECT NurseID, LastName FROM Nurse;
Product Operation
Combines attributes from two tables into a result table
Each row from the second table is added to every row of the first in the result.
SELECT Shifts.WingSegment, Shifts.Shift, NurseName.LastName
FROM Shifts
CROSS JOIN NurseName;
When using multiple tables, table name precedes attribute name with a period.
Join Operation
Combines two tables based on matching criteria.
Records are appended to the result table only when matching criterion is met.
Result table includes attributes from both tables only when related attributes match.
SELECT*
FROM Patient, Nurse;
Syntax selects all fields from both ‘Patient’ and ‘Nurse’ tables, joining them.
Implicit join merges tables into one large table.
Ecplicit join achieves the same result, using specific syntax.
SELECT*
FROM Patient CROSS JOIN Nurse;
More Databases
Object-oriented (OO) databases store complex data and relationships directly.
They don't rely on inter-table relations like relational databases.
Object database comprises objects with data and methods.
Methods are software programs defining actions on the object’s data.
NoSQL databases
Key-value databases store items as key-value pairs.
Graph stores manage network data like special connections.
Wide-column stores optimize queries on large datasets by storing columns together.
Document-format databases pair keys with complex data structures called documents.
NoSQL databases support various models: Key-value, document, columnar, and graph
NoSQL is an alternative to relational databases, useful for large, distributed data sets.
Cloud Databases
Cloud databases are optimized for cloud environments
Benefits include scalability to meet demand, high availability during outages, and support for SaaS deployments.
Data Lakes
Stored in raw format
Serves as a single repository for all enterprise and derived information.
Includes both structures (tables) and unstructured data (audio, video recording)
Distributed Databases
Advancement in networking let to distributed databases.
Distributed databases store data on different machines.
Ex: an international corporation maintains local records linked via network for a single database.
6.3 Database management and Administration Tools
Database Administration
Management and administration ensure database availability, security, and scalability,
Scalability allows accommodating increased demands with existing resources.
Involves activities ensuring databased are highly available, secure, and scalable
DBA Responsibilities
Database security- Ensuring that only authorized users have access to the database and fortify against unauthorized access.
Database tuning – Optimizing performance of database systems
High availability- Making replicas (copies) of databases available from various locations; if one copy is unavailable due to outage, the alternate location can continue database services.
Business continuity – continuing core business operations effectively, even with the distribution of some auxiliary services.
Backup and recovery – planning for and executing adequate backup and recovery procedures
Reporting – writing complex queries and generating reports for users.
Designing and developing database applications – writing code to interact with the database resources