Document Details

MatchlessCarnelian5626

Uploaded by MatchlessCarnelian5626

Tags

computer science software operating systems programming languages

Summary

This document provides an overview of computer terminology, focusing on software. It explores different types of software, including operating systems, application software, middleware, and development tools. It also details the role of operating systems, resource management, categories of applications, and other essential aspects.

Full Transcript

1 L1 Terminology (Software) 2 Every computer has two main components: hardware and software. 3 Definition of Software Software is a set of computer progr...

1 L1 Terminology (Software) 2 Every computer has two main components: hardware and software. 3 Definition of Software Software is a set of computer programs that instruct computers what to do. It mainly includes code, algorithms, and data structures necessary to operate a computer system Think of hardware as a human body; without a brain, it cannot operate. Software is the intelligence that allows hardware to perform tasks. 4 Example: Coordination between software and hardware Software Hardware 5 Categories of Software Operating System (OS): the core software that manages the hardware and software of a device. Application Software: tools designed for specific user needs, such as writing documents, browsing the internet, or gaming. Middleware: serves as a connector between different software programs. Development Software: used to create other software or applications, such as programming languages, code editors, and testing frameworks. 6 Operating System (OS) An operating system is the core software that manages the hardware and software of a device. It ensures both work together smoothly, enabling users to interact with the system What's its role? User interface management It provides the user interface: icons, menus, and windows on your screen. The OS simplifies complex processes, making interactions easy and efficient for users. 7 Operating System (OS) Resource Management The OS is responsible for managing the processor (CPU), RAM, and storage. These resources are limited, and excessive use can deplete them quickly. Efficient resource management ensures smooth performance and prevents overload. 8 Famous Operating Systems: A Quick Overview Windows: The market leader in personal computers. macOS: Known for its elegant interface, used in Apple computers. Linux: Preferred by developers for its flexibility and customization. 9 Types of operating systems 1.Desktop operating systems are software that manage computer hardware and provide services for computer programs. They are designed to handle complex tasks such as work, entertainment, and programming. Windows: The most widely used OS, present in most PCs. macOS: Known for its sleek, user-friendly interface, used in Apple computers. Linux: Preferred by developers for its high flexibility and customization options, suitable for various applications. 10 Types of operating systems 2. Mobile operating systems power smartphones and tablets. They are optimized for portable devices with touch interfaces, providing an efficient and user-friendly experience. Android: The global leader in the smartphone market, adopted by many manufacturers like Samsung, Oppo, etc. iOS: Known for its fluidity, ecosystem, and security. Features like email masking and app tracking prevention enhance privacy. 11 Types of operating systems 3.Embedded operating systems are specialized software designed to run on specific devices. They manage the operations of systems in devices like cars, home appliances, and more, with a focus on efficiency and minimal resource consumption. Specialized for Specific Devices: Found in cars (e.g., GPS, vehicle diagnostics) and home appliances (e.g., smart refrigerators, HVAC systems). Minimalistic Design: Optimized for specific tasks with low resource usage. Single Purpose: Unlike general-purpose OS (like Windows), embedded OS are dedicated to performing a single function. 12 Types of operating systems 4.Cloud-based operating systems are designed to run primarily through the internet, relying on online services rather than local hardware, making them lightweight and efficient. Chrome OS: A prime example, known for being lightweight, fast, and ideal for students or users who need simple tasks and don’t require complex software. 13 How the operating system works An operating system acts as the intermediary between the user and the hardware, interpreting user actions and executing them through the hardware. Operating System User Hardware (OS) Mouse Open a file type on a keyboard Play a video Touch your phone screen Print a document 14 How the operating system works Example: playing a video Operating System User Hardware (OS) 15 Application Software The operating system acts as the "road" that enables the smooth flow of data, while applications are the "vehicles," each designed to accomplish a specific task. Applications for Specific Tasks: Office Applications: E.g., Word for creating documents and presentations. Multimedia Applications: E.g., VLC for playing music and videos. Applications help users accomplish specific goals, with the OS enabling their operation. Categories of Applications: 16 Meeting Specific Needs Applications are designed to fulfill specific needs, and they are categorized into different groups based on their functionality. 1.Office Applications: 1.Essential for work, school, or home use. 2.Examples: Microsoft Word for document creation, Excel for data management and complex calculations. 2.Multimedia Applications: 1.Designed for watching videos or listening to music. 2.Examples: VLC for media playback, Spotify for music streaming. Categories of Applications: Meeting 17 Specific Needs Video Games: For entertainment, some even considered as e-sports. Examples: FIFA, Minecraft, Dota. Business Applications: Specialized software for managing internal business processes. Examples: SAP for enterprise management, CRM (Customer Relationship Management) for handling customer relationships. 18 Middleware: The Bridge Between Systems Middleware is software that enables communication between different systems or applications, allowing them to work together, even if they use different technologies or languages. Bridge Between Software and Hardware: Ensures that software can interact seamlessly with hardware. Bridge Between Applications: Allows different applications to communicate and share data efficiently. 19 Middleware: The Bridge Between Systems Middleware acts as an intermediary, enabling different systems or applications to communicate by translating data and protocols. Middleware Mobile application Remote database 20 Software Development Tools: Essential for Programmers Development software provides the necessary tools for programmers to create, test, and debug software, applications, and even video games. They are the "toolboxes" of developers. 1.Code Editors: Tools that allow developers to write and edit code efficiently. 2.Compilers: Software that converts written code into executable programs. 3.Debuggers: Tools that help identify and fix errors in the code. 21 Code Editors: Tools for Writing and Modifying Code Code editors are software that help programmers write and modify the source code of a program, improving the efficiency and readability of the coding process. Popular Editors: Visual Studio: A widely used editor for developing applications on Windows. PyCharm: Preferred by developers working with Python. 22 Code Editors: Tools for Writing and Modifying Code Features for Efficiency: Syntax Highlighting: Colors different parts of the code (e.g., variables, strings) for better readability. Autocompletion: Suggests code as you type, speeding up development. Error Detection: Highlights issues, like mismatched parentheses or typos, making errors easier to spot. Spyder editor, automatically colors text according to its syntax. 23 Compilers: Translating Code to Machine Language Compilers are tools that translate source code written in programming languages (like C or C++) into machine language, allowing computers to execute the instructions. Converts human-readable code into an executable file that the computer can understand and run. Popular Compilers: GCC (GNU Compiler Collection): A widely-used open-source compiler, especially for C and C++ programming. Clang: Another popular compiler for C/C++ programs. MSVC (Microsoft Visual C++): A compiler mainly used for developing programs on Windows. TCC (Tiny C Compiler): A lightweight and fast C compiler. 24 Debuggers: Finding and Fixing Bugs in Code Debuggers are tools that help programmers identify and fix errors (or "bugs") in their code by tracking the program’s execution and inspecting its behavior. What is the role of a debugger? Helps find and correct bugs in the code. Allows developers to run the program step by step, checking variable values and execution flow. Example: GNU Debugger (GDB): Enables line-by-line execution and inspection of variables during runtime. 25 Programming Languages A programming language is a tool used by developers to write instructions that a machine, like a computer, can understand and execute. They serve as a means for developers to give specific instructions to a computer, enabling it to perform tasks. Communication Analogy: Imagine trying to communicate with someone who doesn't understand your language. To establish dialogue, you need a common language, this is the role of a programming language in communicating with computers. 26 Programming Languages Human Language vs. Programming Language If we say "add 2 and 2" an editor or computer can't understand this in human language. Example with Python: The computer executes the code and outputs is 4. 27 Different Types of Programming Languages Programming languages can be categorized into four main families based on their functionality and level of abstraction. Low-Level Languages: Closest to machine code High-Level Languages: Easier for humans to understand Scripting Languages: These are used to write scripts that automate tasks Specialized Languages: Designed for specific domains or tasks 28 Low-Level Languages: Communicating Directly with the Machine Low-level languages are programming languages that are very close to the machine's hardware. They provide precise control over computer operations but are harder for humans to read and understand. Direct Communication with Hardware: Low- level languages interact directly with the computer's hardware, making them very efficient for controlling systems. Difficult for Humans to Understand: These languages are written in binary code (0s and 1s), which is difficult for humans to read or write. 29 Low-Level Languages: Assembly Assembly language is a classic example of a low-level language that allows direct communication with the hardware. It uses simple instructions to control the computer’s operations. Software: emu8086 30 MOV Instruction in Assembly Language The MOV instruction is used to move or copy data from one location to another in a computer's memory or registers. The MOV instruction allows data to be moved between various locations, such as: From one register to another From a register to a constant value From memory to a register The syntax is: MOV destination, source 31 Examples of the MOV Instruction in Assembly MOV AX, 10 // Loads the value 10 into the register AX. Type of Transfer: Constant → Register MOV BX, AX //Copies the value from the register AX into the register BX. Type of Transfer: Register → Register MOV AX, [1000h] //Loads the value stored in memory at address 1000h into the register AX. Type of Transfer: Memory → Register 32 Other Operations: ADD, SUB, and MUL MOV AX, 5 ; AX = 5 MOV BX, 3 ; BX = 3 ADD AX, BX ; AX = AX + BX -> AX = 5 + 3 = 8 ; The result is 8, stored in AX ADD AX, BX MOV AX, 5 ; AX = 5 MOV BX, 3 ; BX = 3 MUL BX ; AX = AX * BX -> AX = 5 * 3 = 15 ; The result is 15, stored in AX MOV AX, 10 ; AX = 10 MOV BX, 3 ; BX = 3 SUB AX, BX ; AX = AX - BX -> AX = 10 - 3 = 7 Other Operations: ADD, SUB, and MUL MOV AX, 5 ; AX = 5 MOV BX, 3 ; BX = 3 ADD AX, BX ; AX = AX + BX -> AX = 5 + 3 = 8 ; The result is 8, stored in AX ADD AX, BX MOV AX, 5 ; AX = 5 MOV BX, 3 ; BX = 3 MUL BX ; AX = AX * BX -> AX = 5 * 3 = 15 ; The result is 15, stored in AX MOV AX, 10 ; AX = 10 MOV BX, 3 ; BX = 3 SUB AX, BX ; AX = AX - BX -> AX = 10 - 3 = 7 Other Operations: ADD, SUB, and MUL MOV AX, 5 ; AX = 5 MOV BX, 3 ; BX = 3 ADD AX, BX ; AX = AX + BX -> AX = 5 + 3 = 8 ; The result is 8, stored in AX ADD AX, BX MOV AX, 5 ; AX = 5 MOV BX, 3 ; BX = 3 MUL BX ; AX = AX * BX -> AX = 5 * 3 = 15 ; The result is 15, stored in AX MOV AX, 10 ; AX = 10 MOV BX, 3 ; BX = 3 SUB AX, BX ; AX = AX - BX -> AX = 10 - 3 = 7 35 Advantages and Disadvantages of Low-Level Languages Advantages = Speed and Efficiency: Direct interaction with the hardware ensures fast execution. Disadvantages= Complexity: Difficult to write and understand. Requires deep knowledge of hardware and machine instructions. 36 High-Level Programming Languages High-level languages are designed to be simple and user-friendly. No need for deep knowledge of hardware or system architecture to program. Key Differences from Low-Level Languages: Ease of Use: Unlike assembly or machine language, they don’t require manual management of memory or registers. Example: Let's take a language like Python Python 37 High-Level Programming Languages What is Java? A high-level, object-oriented programming language. Programs are organized around "classes" and "objects". Programs can run on any machine equipped with the Java Virtual Machine (JVM). Example: Adding Two Numbers in Java Java the syntax here is legible w structured Scripting Languages 38 What Are Scripting Languages Used For? Task Automation: Simplify repetitive tasks like renaming multiple files. Write a short program to handle the task automatically instead of doing it manually. Web Development: Add interactivity to web pages. Example: JavaScript creates dynamic and interactive user experiences (e.g., forms, animations). Without scripting, web pages would be static, only containing text and images. 39 Specialized programming languages Specialized programming languages are designed to excel in specific fields such as database management, scientific calculations, or automation. Why Use Specialized Languages? They simplify tasks in their domain. Provide features and syntax tailored to specific needs. More efficient for targeted applications compared to general-purpose languages (e.g., Python, Java, C++). SQL (Structured Query Language) 40 SQL (Structured Query Language) is a specialized language designed for interacting with databases. It allows users to retrieve, manipulate, and organize data efficiently. Uses of SQL: Adding new data to a database. Modifying or deleting existing data. Searching for specific information. Example Operation: Imagine a database containing customer information. To find all customers older than 30, you can use the following SQL command: 41 MATLAB MATLAB is a high-level programming language designed for numerical computing and widely used in scientific research, engineering, and mathematics. It excels in matrix operations and is commonly used for tasks such as data analysis, signal processing, and solving complex mathematical problems. Example of MATLAB Code to Solve a System of Linear Equations: MATLAB 42 Advantages of Specialized Languages 1.Performance Optimization: Specialized languages are designed to be highly efficient within their specific domain. 2.Easy to use : These languages provide domain-specific syntax that makes programming simpler. For example, with SQL, modifying a database is straightforward using dedicated commands. 3.Increased Productivity: Specialized languages allow developers to be more productive by avoiding the need to reinvent solutions for domain-specific problems. 43 Popular Programming Languages and Their Uses Most popular languages: Java C++. Python 44 C++ C++ is known for its performance and power. It allows direct management of hardware resources like memory and the processor, making it very fast. It's used in areas where speed is critical, such as: Video Games: For fast graphics and real-time processing. Embedded Systems: For efficient hardware control. Graphics Engines: For complex and high-speed computations. C++ is the go-to choice when performance and low-level control are essential. 45 Example Here’s a basic C++ example that adds two numbers and displays the result: 46 Advantages of C++ High Performance: Compiled directly into machine code for fast execution. Versatility: Used in various applications, like games and embedded systems. Portability: Runs on multiple platforms (Windows, Linux, macOS) with minimal changes. Large Community: Extensive resources, including forums and tutorials, due to decades of use. 47 Java Java Programs are organized around "classes" and "objects.“ Widely used for Android app development and enterprise systems due to its stability and portability. Java is slightly more complex than Python but is favored for large, reliable, and secure projects. 48 Advantages of Java High Portability: Java runs on all platforms due to the Java Virtual Machine (JVM). Stability: Ideal for enterprise software and complex systems, ensuring reliability. Widely Used for Android Apps: Java is the primary language for developing mobile applications on Android. 49 Python Python is one of the most widely used programming languages today, and it’s popular for its versatility. Whether you're creating artificial intelligence models, analyzing data, or even building websites, Python is always a good choice. TensorFlow and PyTorch = AI library With just a few lines, we can load and analyze data. Its simple syntax makes Python a great choice for beginners. 50 The Strengths of Python Ease of Learning: Python has a clear, readable, and simple syntax, which makes it ideal for beginners. Versatility: Python is used in many fields: web development, data science, artificial intelligence, automation, etc. Cross-Platform Compatibility: Python runs on all major platforms: Windows, macOS, Linux. Active Community: A large, supportive community with abundant resources, forums, and assistance available for quick problem- solving.

Use Quizgecko on...
Browser
Browser