Intangible & Logic: Introduction to Computing PDF
Document Details
Uploaded by BlissfulSimile6171
Universidad de Dagupan
Tags
Summary
This document provides an introductory overview of computer science concepts, including software, hardware, different programming languages and models. It covers topics like high-level programming, low-level programming and provides examples.
Full Transcript
Chapter 3: Intangible & Logic Introduction to Computing What is Software? Differenceof Software and Hardware Chapter 3: Overview High-level programming Software Development Life Cycle Programs and Apps: Pr...
Chapter 3: Intangible & Logic Introduction to Computing What is Software? Differenceof Software and Hardware Chapter 3: Overview High-level programming Software Development Life Cycle Programs and Apps: Productivity, Graphics, Security, and Others What is software? Software is a collection of instructions or code that tells a computer how to perform specific tasks. Unlike hardware, which includes the physical components of a computer, software is intangible and consists of data, applications, and operating systems that enable users to interact with and operate the computer. Types of Software System Software Application Software Programming Software System Software Manages and controls hardware, allowing other software to function. The operating system (OS) like Windows, macOS, or Linux is a primary example. Application Software Helps users perform specific tasks. Examples include word processors (like Microsoft Word), web browsers (like Google Chrome), and media players. Programming Software Provides tools for developers to create other software. Examples include compilers, interpreters, and integrated development environments (IDEs) like Visual Studio. Difference of Software and Hardware Software is the set of instructions or programs that run on hardware, enabling it to perform tasks and functions. Hardware is the physical machinery or equipment that executes the instructions given by software. Programming Languages Programming Languages High-Level Programming Languages Low-Level Programming Languages Object-Oriented Programming (OOP) Languages Scripting Languages Programming Languages Markup Languages Declarative Programming Languages High-level programming A high-level programming language is a type of programming language that is designed to be easy for humans to read, write, and understand. Unlike low-level languages, which are closer to machine code, high-level languages use natural language elements and abstract away much of the complex details of the computer's hardware, making programming more accessible and efficient. Types of High-Level Programming Languages Python C++ Java Ruby JavaScript Python Known for readability and ease of use, commonly used in web development, data science, and automation. Java A platform-independent language widely used in enterprise applications, Android development, and web applications. C++ An extension of C, used in systems programming, game development, and applications requiring high performance. JavaScript Primarily used for web development to make websites interactive. Ruby Known for simplicity and productivity, often used in web development. Low-level programming A low-level programming language is a language that provides little abstraction from the computer's hardware. It is closely tied to the architecture of the machine, and writing programs in low-level languages involves dealing with the internal workings of the computer, such as memory management, processor instructions, and hardware resources. Types of Low-Level Programming Languages Machine Language Assembly Language Machine Language Machine language is the lowest-level language that consists entirely of binary code (0s and 1s). Assembly Language Assembly language is a human-readable representation of machine language. Instead of binary code, it uses mnemonics (abbreviations or symbolic names) for instructions (e.g., MOV for moving data). section.data msg db 'I love programming',0 ; Define the message with null terminator section.text global _start ; Define the entry point _start: ; Write the message to the standard output (stdout) mov eax, 4 ; Syscall number for sys_write (4) mov ebx, 1 ; File descriptor 1 (stdout) mov ecx, msg ; Pointer to the message mov edx, 18 ; Length of the message (18 characters) int 0x80 ; Call the kernel ; Exit the program mov eax, 1 ; Syscall number for sys_exit (1) xor ebx, ebx ; Return code 0 int 0x80 ; Call the kernel Markup Languages Markup languages are used to define the structure and presentation of content in documents (though not strictly programming languages, they are essential in web development). EXAMPLE : HTML, XML Declarative Programming Languages In declarative programming, the programmer specifies what the program should accomplish rather than how to accomplish it. EXAMPLE : SQL, HTML Syntax Syntax Syntax in programming refers to the set of rules that define the structure and format of valid statements in a programming language. Example if (x > 10) { System.out.println("x is greater than 10"); } else { System.out.println("x is 10 or less"); } Compilers Compilers The process of compilation allows programs written in high-level languages to be executed on a computer. Algorithm Algorithm An algorithm is a well-defined, step-by-step procedure or set of rules used to perform a task or solve a problem. Software Development Life Cycle Software Development Life Cycle The Software Development Life Cycle (SDLC) is a structured process used for planning, creating, testing, and deploying software applications. SDLC MODEL Waterfall Model Rapid Application Development Agile Model Scrum V-Model Iterative Model Waterfall Model A sequential and linear approach where each phase is completed before moving to the next. Suitable for well-defined projects with fixed requirements. Agile Model An iterative and incremental approach where the software is developed in small, functional segments called iterations or sprints. V-Model (Verification and Validation) Similar to the Waterfall model, but emphasizes the testing phase and ensures each development phase has a corresponding testing phase. Iterative Model Involves developing software in repetitive cycles, each one building on the previous iteration. The system is improved upon with each cycle based on feedback. RAD (Rapid Application Development) RAD is a software development methodology that emphasizes rapid prototyping and quick feedback from users, aiming to speed up the development process and produce high-quality software in a short amount of time. Scrum Scrum is an agile framework used to manage software development projects. It is based on iterative and incremental development, focusing on delivering working software in short cycles called sprints. Scrum emphasizes flexibility, team collaboration, and continuous improvement. Thank you!!!