Paper 1

Cards (73)

  • Types of processors:
    • CISC (Complex Instruction Set Computing): supports more instructions, more transistors and power, less complicated software
    • RISC (Reduced Instruction Set Computing): supports fewer instructions, fewer transistors and power, more complicated software
    • GPUs: designed for graphics, example of array processor
  • Types of operating systems:
    • Multitasking operating system: allows the user to do multiple things at the same time
    • Multi-user operating system: allows users to share resources of one powerful machine
    • Distributed operating system: runs across multiple individual computers but appears as one system to the end user
    • Embedded OS: found in hardware serving a single purpose
    • Real-time operating system: reacts to input as close to real time as possible
  • Device drivers: contain software that tells the operating system how to understand data from external hardware devices and the format it expects to receive the data in
    • BIOS: basic input output system that controls the computer's startup sequence and helps configure hardware devices
    • Virtual machines (VM): program designed to fully simulate a computer in software, allowing multiple operating systems to run on the same computer or server
  • Applications:
    • Application software: allows users to perform tasks or produce something (e.g., word processor, spreadsheet, web browser)
    • Utility: small program with one purpose, usually for system maintenance (e.g., disk cleanup, defragmenter, compression, encryption)
    • Open source vs. closed source software:
    • Open source: source code available, often free and can be amended by users
    • Closed source: proprietary source code not available, usually more polished and easier to install with customer support
  • Translators:
    • Assembler: converts assembly code into machine code
    • Interpreter: converts high-level source code into machine code line by line
    • Compiler: converts high-level source code into machine code all at once
  • Software development lifecycle methodologies:
    • Waterfall model: sequential stages followed linearly, suited for large-scale projects with stable requirements
    • Rapid Application Development (RAD): builds a prototype evaluated and refined over multiple iterations, well-suited for projects with unclear requirements
    • Spiral model: manages risk well, requires risks to be identified and evaluated at each stage, suitable for large-scale or risky projects
    • Agile software development: deals with changing requirements, Extreme Programming (XP) focuses on producing high-quality code
  • Types of programming languages:
    • Low-level vs. high-level languages
    • Low-level languages: machine code, Assembly Language
    • High-level languages: imperative (procedural, object-oriented), declarative (logic, functional)
  • Assembly Language:
    • Uses mnemonics to represent machine code instructions
    • Little Man Computer instruction set for basic understanding
  • Modes of addressing memory:
    • Immediate addressing: data hard-coded into the instruction
    • Direct addressing: operand contains memory address
    • Indirect addressing: address of data held in an intermediate location
    • Indexed addressing: final address determined by adding an offset to a base address
  • Object-oriented languages:
    • Object-oriented programming (OOP) organizes programs around data or objects
    • Classes: templates defining attributes and methods for objects
    • Encapsulation, inheritance, polymorphism for code reuse and maintenance
  • Abstraction: objects reveal only relevant internal mechanisms
    • Encapsulation: implementation and state of each object can be private
  • Encapsulation:
    • Implementation and state of each object can be private
    • Provides greater program security and avoids unintended data corruption
  • Inheritance:
    • Define a class which inherits attributes and methods from a parent class
    • Encourages code reuse and programming
  • Polymorphism:
    • Ability to use the same code to process different objects according to their type
    • Program determines the meaning your usage is necessary for each execution of that object
  • Compression:
    • Types: lossy compression and lossless compression
    • Lossy compression removes data to reduce file sizes, resulting in reduced quality
    • Lossless compression has no data loss and is reversible
  • Run Length Encoding (RLE):
    • Replaces repeating consecutive sequence of data with a single data value
    • Works best with long sequences of the same data
  • Dictionary Coding:
    • Uses redundant repeated data to store data items once in a dictionary
    • Best for long files with lots of repeated data
  • Symmetric Encryption:
    • Uses the same key to encrypt and decrypt the message
    • Works well when the key can be securely passed
  • Asymmetric Encryption:
    • Uses two different keys for encryption and decryption
    • Better for use across the internet where keys cannot be physically exchanged
  • Hashing:
    • Generates a value from a string of text using a mathematical function
    • One-way process that scrambles data
  • Database:
    • Structured collection of data
    • Flat file database vs relational database
    • Primary key, foreign key, secondary key, entity relationship diagram
  • Normalization:
    • Process of organizing data into tables in a series of steps
    • Zero, first, second, and third normal form
    • Eliminating data redundancy and ensuring data integrity
  • SQL:
    • Basic code structure: SELECT, FROM, WHERE
    • Use of wildcards and percentage sign for complex queries
    • Select statements within select statements for nested queries
    • Join keyword to link tables with foreign keys
  • Foreign keys link fields in different tables with the same information
  • Example: SELECT student.surname, course.name FROM student JOIN course ON student.course ID = course.course ID
  • Transaction processing involves changes to the database from one consistent state to another
  • ACID rules for database integrity:
    • Atomicity: transaction must be completed fully
    • Consistency: any change must not break the database
    • Isolation: a transaction must be isolated and not interfere with another transaction
    • Durability: a transaction must remain in the database
  • Data integrity ensures accuracy and reliability of data in a computer system
  • Referential integrity ensures consistency in the database with matching foreign keys to primary keys
  • Record locking is used to lock a table until a transaction is completed
  • Redundancies are built into database systems for organizations like hospitals, military forces, and banks to prevent catastrophic system failure
  • Networks are collections of connected computer devices used for communication and data sharing
  • Network hardware includes NIC, switch, wireless access point, router, copper cables, fiber optic cables, and radio waves
  • Networks can be classified by extent (LAN, WAN, PAN), topology (bus, ring, star, mesh), and protocols (TCP, IP, HTTP, HTTPS, FTP, SMTP, POP, IMAP)
  • Network communication is complex and uses layering with different protocols for different aspects of functionality
  • TCP/IP model includes application layer, transport layer, internet layer, and network/link layer
  • DNS matches domain names to IP addresses using domain name servers
  • Circuit switching establishes a physical connection, while packet switching divides messages into packets for modern computer networks
  • Authentication methods include usernames/passwords, two-factor authentication, and biometric information
  • Firewalls monitor and filter data coming into and out of the network for security