Computer Basics for Wouldbe Programmers
Computer Basics for Wouldbe Programmers
FOR WOULD-BE
PROGRAMMERS
by
Unicorn ICT Academy
What Is A Computer
A computer is an electronic
device that processes data
according to a set of instructions
(programs). It performs tasks
such as calculations, data
processing, and information
storage, typically comprising
hardware (physical components)
and software (programs and
operating systems).
Types of Computers
1. Supercomputers: Extremely powerful
for complex tasks.
2. Mainframes: Large systems for bulk
data processing.
3. Minicomputers: Mid-sized, specific
applications.
4. Microcomputers: Personal use
(desktops, laptops).
5. Workstations: High-performance for
technical work.
6. Servers: Provide network services.
7. Embedded Systems: Built into devices
for dedicated functions.
Computer Division
1. Computers are divided into:
Hardware
- Physical components that make up the computer.
- Examples: CPU, RAM, hard drive, motherboard, monitor, keyboard, and mouse.
Software
- Programs and operating systems that run on the hardware.
- Examples: Windows, macOS, Linux, Microsoft Office, web browsers, and games.
Hardware is the tangible part you can touch, while software consists of the instructions
that tell the hardware what to do.
Computer OS (Operating
Systems)
Various Computer Operating Systems
1. **Windows**
- Developed by Microsoft.
- Popular for personal and business use.
- User-friendly interface with extensive software compatibility.
2. **macOS**
- Developed by Apple.
- Used on Apple’s Mac computers.
- Known for its sleek design and integration with other Apple products.
Computer OS (Operating
Systems)
3. Linux
- Open-source operating system.
- Used for servers, desktops, and embedded systems.
- Known for its stability, security, and flexibility.
4. Unix
- Multiuser, multitasking operating system.
- Used in servers, workstations, and mainframes.
- Known for its robustness and security.
Computer OS (Operating
Systems)
5. Chrome OS
- Developed by Google.
- Designed for Chromebooks.
- Lightweight OS focused on web applications and cloud storage.
6. Android
- Developed by Google.
- Primarily used in smartphones and tablets.
- Based on a modified version of the Linux kernel.
Computer OS (Operating
Systems)
Each OS serves different purposes and user needs, from personal computing to
enterprise-level applications.
Types of Software
1. System Software
- Operating Systems: Manage hardware and software resources (e.g., Windows,
macOS, Linux).
- Utility Software: Performs maintenance tasks (e.g., antivirus programs, disk cleanup
tools).
2. Application Software
- Productivity Software: For creating documents, spreadsheets, presentations (e.g.,
Microsoft Office, Google Workspace).
- Media Software: For creating and editing images, video, and audio (e.g., Adobe
Photoshop, Final Cut Pro).
- Communication Software: For messaging, video conferencing, and email (e.g.,
Zoom, Slack, Outlook).
-
Types of Software
Entertainment Software: For gaming and streaming media (e.g., Steam, Netflix).
3. Development Software
- Programming Languages: Tools for writing code (e.g., Python, Java, C++).
- Integrated Development Environments (IDEs): Software for building applications
(e.g., Visual Studio, Eclipse).
- Version Control Systems: For tracking changes in code (e.g., Git, SVN).
4. Embedded Software
- Software designed to operate hardware (e.g., firmware in routers, software in
automotive systems).
Each type of software serves specific functions, from managing system resources to
enabling user productivity and entertainment.
PROGRAMMING LANGUAGES
1. Low-Level Languages:
- Machine Language: Binary code (0s and 1s) that
the computer's CPU can directly execute.
- Assembly Language: A step above machine
language, uses symbolic code and is specific to a
computer's architecture.
Type of PROGRAMMING
LANGUAGES
2. High-Level Languages:
- Procedural Languages: Focus on a sequence of
instructions (e.g., C, Pascal).
- Object-Oriented Languages: Use objects and
classes to organize code (e.g., Java, Python, C++).
- Functional Languages: Emphasize functions and
immutable data (e.g., Haskell, Lisp).
-
Type of PROGRAMMING
LANGUAGES
Scripting Languages: Used for writing scripts
to automate tasks (e.g., JavaScript, PHP, Perl).
- Declarative Languages: Specify what needs
to be done without explicitly listing
commands (e.g., SQL, Prolog).
Type of PROGRAMMING
LANGUAGES
Key Concepts:
- Syntax: The set of rules that defines the
combinations of symbols considered to be
correctly structured programs.
- Semantics:The meaning of the syntactically
correct strings in a language.
-
UNDERSTANDING PROGRAMMING
Java
LANGUAGES
Overview: Java is a high-level, class-based, object-oriented programming language
designed to be portable and run on any device equipped with the Java Virtual Machine
(JVM).
Key Concepts:
Key Concepts:
Web Development: Frameworks like Django and Flask enable rapid development of
web applications.
Data Science: Libraries like Pandas, NumPy, and Matplotlib are used for data
analysis and visualization. SciPy and scikit-learn are used for machine learning.
Automation and Scripting: Widely used for writing scripts to automate repetitive
tasks.
Artificial Intelligence and Machine Learning: Libraries like TensorFlow and PyTorch
are popular for AI and ML projects.
Learning Resources:
Key Concepts:
Static Typing: Types are explicitly declared and checked at compile-time, reducing
runtime errors.
Concurrency: Go’s goroutines and channels provide simple and efficient
concurrency mechanisms.
Efficient Compilation: Compiles quickly to native machine code, resulting in fast
execution.
Garbage Collection: Automatic memory management with garbage collection.
Simplicity and Readability: Emphasizes simplicity and avoids complex features like
inheritance and operator overloading.
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:
Web Servers and Networking: Well-suited for building web servers and networking
tools (e.g., HTTP servers).
Cloud Services: Used in cloud infrastructure tools like Docker and Kubernetes.
Distributed Systems: Ideal for building distributed systems and microservices due to
its concurrency features.
Learning Resources:
Key Concepts:
Concise Syntax: Reduces boilerplate code compared to Java, making code easier to
read and write.
Null Safety: Built-in null safety features to help avoid null pointer exceptions.
Interoperability: Fully interoperable with Java, allowing for seamless integration
with existing Java code and libraries.
Coroutines: Provides support for asynchronous programming through coroutines.
Modern Features: Includes modern programming features like extension functions,
lambda expressions, and smart casts.
UNDERSTANDING PROGRAMMING
LANGUAGES
Popular Uses:
Key Concepts:
System Programming: Used for developing operating systems, compilers, and other
system-level software.
Embedded Systems: Widely used in embedded systems due to its efficiency and
low-level capabilities.
Game Development: Often used in game engines and performance-critical game
components.
Hardware Drivers: Development of hardware drivers and firmware.
Learning Resources:
Key Concepts:
Game Development: Widely used for game engines and performance-critical game
components (e.g., Unreal Engine).
System/Software Development: Used for developing operating systems, databases,
and other performance-intensive applications.
Real-Time Systems: Suitable for real-time and embedded systems due to its
efficiency.
Learning Resources:
Key Concepts:
Key Concepts:
Key Concepts:
Key Concepts:
iOS/macOS Applications: Primary language for developing apps within the Apple
ecosystem.
Server-Side Development: Swift can be used for server-side programming with
frameworks like Vapor.
Cross-Platform Development: Swift can be used with frameworks like SwiftUI for
developing applications across multiple Apple platforms.
Learning Resources:
Key Concepts: