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