- Graph Theory
- Automata Theory
- Quantum Computation
- Parallel Programming
- Data Structure
- Formal Methods
- ......
... 0 1 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 ... // Infinitely Long Type
|----^----| // Head --> Read & Move
111010(B) = 58(Decimal)
// State Register
// 1. Replace/Erase
// 2. L/F/N
// 3. Keep/Change to another state
Input, Output and Calculation(Lambda Calculus).
- RAM
- CPU
- GPU
- SSD
- Power
- Mouse & Keyboard
- Sound & Monitor
Which problems can you solve with a computer?
How problems Scale?
1. Amount of memory
2. Number of steps
If the solution to a problem is easy to check for correctness, must the problem be easy to solve?
- P: Solving the task that runs in polynominal time;
- NP: Nondeterministic Polynmomial Time.
- NP-Complete
Eg. for P =? NP: 53308290611 % 224737 = 0;
Eg. for NPC: Subset sum problem --> O(2^n);
-
Bubble Sort -> O(n^2)
-
Merge Sort -> O(n*log(n))
Relating to Coding Theory.
Eg. 458. Poor Pigs
There are 1000 buckets, one and only one of them is poisonous, while the rest are filled with water. They all look identical. If a pig drinks the poison it will die within 15 minutes. What is the minimum amount of pigs you need to figure out which bucket is poisonous within one hour?
Answer this question, and write an algorithm for the general case.
How to slove the problem by computers?
Steam Videos Browser Music // Processes
[________________________________________________]
|
Scheduler --> CPU(1,2,3,4....) // Multiprocessing
Central Processing Unit.
Input --> CPU --> Output
|
Memory Unit
GPU --> Multiprocessors
FPGA --> Logic Block, Interconnection, Input/Output, Switch Box, Connect Block
Silicon --> BIOS --> Operating System --> Applications --> Browser --> Web Apps
Assembly C SQL PERL JavaScript
C++ PHP Python
C## Swift
Java
Translation from programming languages to mechine code(Binary).
- macOS
- iOS
- Linux
- Windows
- Android
- ......
Make the program possible to run.
Create Computer Graphics.
- Concurrent/ Distributed/ Parallel/ Systems
- Data Management
- Performance
- Optimisation
- Boolean Satisfiability
- Artifical Intelligence
- Machine Learning
- Computer Version
- Natural Language Processing
- Big Data
- Hacking
- Computational Science
- Super Computing
- Simulation
- Virtual Reality
- Augmented Reality
- Teleprescence
- Robitics