Exploring the Science of Computers: Understanding Programming, The Turing Machine, Memory, Device Drivers, Operating Systems, Shells, Programming Languages and Binary and Hexadecimal Representations
- Computer Science 101 covers the science behind programming, including how computers work, how to use coding languages, how to use data types and variables, and data structures
- The Turing Machine is a device that can read and write ones and zeros
- Different types of memory are used to store data in a computer
- Inputs like keyboards and Outputs like monitors are connected to the computer via device drivers
- Operating Systems control hardware resources with kernel programs
- The Shell is a program that takes command line interface input from the user
- Programming languages simplify systems for humans with abstraction layers
- Binary is the base two system used to represent information in computers
- Hexadecimal is another representation of binary data as it uses sixteen characters instead of two.
Navigating the Complex World of Data Structures, Algorithms, and Programming Principles
- Data structures are essential for organizing data
- They include stacks, queues, hashes, trees and graphs
- Algorithms are code solving a problem and can be implemented through functions that take an input and produce an output
- Boolean expressions produce true or false results
- Statements handle condition logic and looping over arrays
- Void functions do not have an output
- Recursion is when a function calls itself and needs a base condition to avoid infinite looping
- Big-O notation approximates the performance of an algorithm at scale with time and space complexity metrics
- Various types of algorithms can be used such as brute force, divide and conquer, dynamic programming, greedy algorithms or backtracking ones
- Declarative vs imperative programming paradigms exist as well as object-oriented programming where classes act as blueprints for objects which live in memory on the heap.
The Complexities of Computing: CPUs, Programming Languages, Cloud Computing, Secure Data Exchange and Printer Requirements
- CPUs contain multiple threads which allow for parallelism
- Programming languages are either single threaded or use concurrency models to pause/delay execution for multiple jobs on a single thread
- Cloud computing splits big computers into smaller, virtual computers connected with IP addresses and URLs
- Two computers can securely exchange data with hypertext transfer protocol, an API and a security layer (SSL) to encrypt/decrypt messages
- Printers require knowledge of how they work.