Class Notes: Computer Science Fundamentals
1. Introduction to Computer Science
Computer Science (CS) is the study of computers and computational systems. Unlike
electrical and computer engineers, computer scientists deal mostly with software
and software systems; this includes their theory, design, development, and
application.
Key Points:
Computer Science is not just about programming—it involves problem-solving,
algorithms, and understanding systems.
Fields of CS include Artificial Intelligence (AI), Machine Learning (ML), Data
Science, Cybersecurity, Software Development, Networking, and Human-Computer
Interaction.
2. Computer Hardware vs. Software
Hardware
Hardware refers to the physical components of a computer. It is tangible.
Main Components:
CPU (Central Processing Unit): The brain of the computer that processes
instructions.
RAM (Random Access Memory): Temporary memory used to store data that is actively
being used.
Storage: Hard Drives (HDD) and Solid-State Drives (SSD) for permanent storage.
Input Devices: Keyboard, mouse, scanner.
Output Devices: Monitor, printer, speakers.
Motherboard: The main circuit board that connects all components.
Software
Software is a set of instructions that tells the hardware what to do.
Types of Software:
System Software: Operating Systems (Windows, macOS, Linux), device drivers.
Application Software: Programs like Microsoft Office, browsers, media players.
Development Software: IDEs (Integrated Development Environments), compilers, code
editors.
3. Programming Fundamentals
What is Programming?
Programming is the process of creating a set of instructions for a computer to
perform specific tasks.
Common Programming Concepts:
Variables: Storage locations for data.
Data Types: Integers, Strings, Booleans, Floats.
Operators: Arithmetic (+, -, *, /), Logical (AND, OR, NOT), Comparison (==, !=, <,
>).
Control Structures:
Conditionals: if, else, elif
Loops: for, while
Functions: Blocks of code designed to perform a particular task.
Arrays / Lists: Collections of elements stored in a single variable.
Objects and Classes: Foundations of Object-Oriented Programming (OOP).
4. Data Structures and Algorithms
Data Structures
Data structures are ways of organizing and storing data to perform operations
efficiently.
Arrays: Fixed-size, sequential storage of elements.
Linked Lists: Elements (nodes) connected via pointers.
Stacks: Last-In-First-Out (LIFO) structure.
Queues: First-In-First-Out (FIFO) structure.
Trees: Hierarchical data structure, e.g., Binary Trees.
Graphs: Nodes connected by edges; used in networks and maps.
Algorithms
Algorithms are step-by-step procedures or formulas for solving problems.
Examples of Common Algorithms:
Sorting: Bubble Sort, Merge Sort, Quick Sort
Searching: Linear Search, Binary Search
Graph Algorithms: Dijkstra’s Algorithm, BFS, DFS
Big O Notation:
Used to describe the efficiency of an algorithm in terms of time and space
complexity. For example:
O(1) → Constant Time
O(n) → Linear Time
O(n²) → Quadratic Time
5. Databases
Definition
A database is an organized collection of data, generally stored and accessed
electronically.
Types of Databases:
Relational Databases (SQL): Data stored in tables with rows and columns (e.g.,
MySQL, PostgreSQL).
NoSQL Databases: Data stored in formats like key-value, document, column-family, or
graph (e.g., MongoDB, Redis).
Basic SQL Commands:
SELECT – Retrieve data.
INSERT – Add data.
UPDATE – Modify data.
DELETE – Remove data.
6. Networking Fundamentals
Definition
Computer networking is the practice of connecting computers and other devices to
share resources.
Types of Networks:
LAN (Local Area Network): Small area like a home or office.
WAN (Wide Area Network): Covers a large area, like the internet.
MAN (Metropolitan Area Network): Covers a city or campus.
Common Networking Terms:
IP Address: Unique address of a device on a network.
DNS (Domain Name System): Translates domain names to IP addresses.
Router: Directs data between networks.
Switch: Connects devices within a LAN.
7. Cybersecurity Basics
Cybersecurity involves protecting systems, networks, and programs from digital
attacks.
Common Threats:
Malware: Viruses, Worms, Trojans
Phishing: Fraudulent attempts to obtain sensitive information
Ransomware: Malware that encrypts data and demands payment
DDoS (Distributed Denial of Service): Flooding a system to make it unavailable
Best Practices:
Use strong, unique passwords
Regular software updates
Firewalls and antivirus software
Data encryption
8. Emerging Trends in Computer Science
Artificial Intelligence (AI): Machines simulating human intelligence.
Machine Learning (ML): Algorithms that learn from data.
Blockchain Technology: Secure, decentralized data storage (used in cryptocurrency).
Internet of Things (IoT): Devices connected via the internet.
Quantum Computing: Computing using quantum bits (qubits) for faster processing.
9. Tips for Excelling in Computer Science
Practice coding regularly on platforms like LeetCode, HackerRank, or Codewars.
Build small projects to apply theoretical knowledge.
Learn both theoretical and practical aspects of algorithms and data structures.
Stay updated with new technologies and frameworks.
Collaborate on coding projects to improve problem-solving and teamwork skills.
These notes cover fundamental to advanced topics in computer science, making them
suitable for high school or introductory university-level study.