Showing posts with label Computer Science. Show all posts
Showing posts with label Computer Science. Show all posts

Tuesday, April 19, 2016

Research about Science

Knowledge Sharing:
1. The scientific method is a body of techniques for investigating phenomena, acquiring new knowledge, or correcting and integrating previous knowledge.
2. scientific method as "a method or procedure that has characterized natural science since the 17th century, consisting in systematic observation, measurement, and experiment, and the formulation, testing, and modification of hypotheses."
3.  The overall process of the scientific method involves making conjectures (hypotheses), deriving predictions from them as logical consequences, and then carrying out experiments based on those predictions
4. Scientists then test hypotheses by conducting experiments.
5. Under modern interpretations, a scientific hypothesis must be falsifiable, implying that it is possible to identify a possible outcome of an experiment that conflicts with predictions deduced from the hypothesis; otherwise, the hypothesis cannot be meaningfully tested
6.  The overall process involves making conjectures (hypotheses), deriving predictions from them as logical consequences, and then carrying out experiments based on those predictions to determine whether the original conjecture was correct.
7.  There are difficulties in a formulaic statement of method, however. Though the scientific method is often presented as a fixed sequence of steps, they are better considered as general principles.
8.  When applying the scientific method to scientific research, determining a good question can be very difficult and affects the final outcome of the investigation
9.  An hypothesis is a conjecture, based on knowledge obtained while formulating the question, that may explain the observed behavior of a part of our universe.
10. An invention is a unique or novel device, method, composition or process
11. The invention process is a process within an overall engineering and product development process.
12. Some inventions can be patented. A patent legally protects the intellectual property rights of the inventor and legally recognizes that a claimed invention is actually an invention.
14. A final point: a scientific hypothesis must be falsifiable, meaning that one can identify a possible outcome of an experiment that conflicts with predictions deduced from the hypothesis; otherwise, it cannot be meaningfully tested.
15. Testing is an investigation of whether the real world behaves as predicted by the hypothesis.
16. Scientists (and other people) test hypotheses by conducting experiments. The purpose of an experiment is to determine whether observations of the real world agree with or conflict with the predictions derived from a hypothesis.
17. Once a hypothesis is strongly supported by evidence, a new question can be asked to provide further insight on the same topic. Evidence from other scientists and experience are frequently incorporated at any stage in the process.
18. Science[nb 1] is a systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the Universe.
19. Scientists perform research toward a more comprehensive understanding of nature, including physical, mathematical and social realms.
20. A computer scientist is a scientist who has acquired knowledge of computer science, the study of the theoretical foundations of information and computation and their application.
21. Computer scientists typically work on the theoretical side of computer systems, as opposed to the hardware side that computer engineers mainly focus on (although there is overlap).
22. Although computer scientists can also focus their work and research on specific areas (such as algorithm and data structure development and design, software engineering, information theory, database theory, computational complexity theory, numerical analysis, programming language theory, computer graphics, and computer vision), their foundation is the theoretical study of computing from which these other fields derive
23. A primary goal of computer scientists is the development (and validation) of models—often mathematical in nature—for estimating the properties of computer-based systems (processors, programs, computers interaction with people, computers interacting with other computers, etc.) with an overarching objective of discovering designs that admit for improved performance (faster, better, cheaper, etc.).
24. A strong aptitude for mathematics is important for a computer scientist.
25. Good communication skills are also important for a computer scientist since a key part of being a good scientist is conveying results for use by others (generally via well-crafted publications and presentations).
26. Additionally, since computer scientists often work in teams on real-world projects, they must be able to communicate effectively with computer personnel, such as programmers and managers, as well as with users or other staff who may have no technical computer background
27. Computer scientists are often hired by software publishing firms, scientific research and development organizations where they develop the theories that allow new technologies to be developed.
28. Computer scientists can also be seen as a type of mathematician, seeing as how much of the field is dependent on mathematics itself.
29.

About Applied Science:
1. Disciplines which use science like engineering and medicine may also be considered to be applied sciences.
2. Applied science is a discipline of science that applies existing scientific knowledge to develop more practical applications, like technology or inventions.
3.

About Technology:
1. Technology ("science of craft") is the collection of techniques, skills, methods and processes used in the production of goods or services or in the accomplishment of objectives, such as scientific investigation.
2. Technology can be the knowledge of techniques, processes, etc. or it can be embedded in machines, computers, devices and factories, which can be operated by individuals without detailed knowledge of the workings of such things.
3.

References:
https://en.wikipedia.org/wiki/Applied_science
https://en.wikipedia.org/wiki/Computer_scientist




References:
https://en.wikipedia.org/wiki/Scientific_method

About Arts:
1. The arts represent an outlet of expression, that is usually influenced by culture and which in turn helps to change culture.
2. Major constituents of the arts include literature – including poetry, novels and short stories, and epics; performing arts – among them music, dance, and theatre; culinary arts such as baking, chocolatiering, and winemaking; media arts like photography and cinematography, and visual arts – including drawing, painting, ceramics, and sculpting.
3. In its most basic abstract definition, art is a documented expression of a sentient being through or on an accessible medium so that anyone can view, hear or experience it.
4. the arts' as "imaginative, creative, and nonscientific branches of knowledge considered collectively, esp. as studied academically
5.

References:
https://en.wikipedia.org/wiki/The_arts

Tuesday, January 5, 2016

Research about theoretical computer science

Knowledge Overview:
1.  Computational complexity theory is a branch of the theory of computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other.
2.  In theoretical computer science and mathematics, the theory of computation is the branch that deals with how efficiently problems can be solved on a model of computation, using an algorithm.
3.  The field is divided into three major branches: automata theory and language, computability theory, and computational complexity theory, which are linked by the question: "What are the fundamental capabilities and limitations of computers?"
4.  In computability theory and computational complexity theory, a model of computation is the definition of the set of allowable operations used in computation and their respective costs.
5.  It is used for measuring the complexity of an algorithm in execution time and or memory space: by assuming a certain model of computation, it is possible to analyze the computational resources required or to discuss the limitations of algorithms or computers.
6.  So in principle, any problem that can be solved (decided) by a Turing machine can be solved by a computer that has a finite amount of memory.
7.  A finite-state machine (FSM) or finite-state automaton (plural: automata), or simply a state machine, is a mathematical model of computation used to design both computer programs and sequential logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states.
8.  An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in automata theory. Abstraction of computing processes is used in both the computer science and computer engineering disciplines and usually assumes a discrete time paradigm
9.  One popular model more similar to real modern machines is the RAM model, which allows random access to indexed memory locations.
10.  In computer science and automata theory, the state of a digital logic circuit or computer program is a technical term for all the stored information, at a given instant in time, to which the circuit or program has access
11.  In electronics, a logic gate is an idealized or physical device implementing a Boolean function; that is, it performs a logical operation on one or more logical inputs, and produces a single logical output.
12.  Digital logic circuits can be divided into two types: combinational logic, whose output signals are dependent only on its present input signals, and sequential logic, whose outputs are a function of both the current inputs and the past history of inputs.
14.  a computer program stores data in variables, which represent storage locations in the computer's memory. The contents of these memory locations, at any given point in the program's execution, is called the program's state.
15.  The term is often used in contrast to declarative programming, which focuses on what the program should accomplish without specifying how the program should achieve the result.
16.  In some of these programs, information about previous data characters or packets received is stored in variables and used to affect the processing of the current character or packet. This is called a "stateful protocol" and the data carried over from the previous processing cycle is called the "state". In others, the program has no information about the previous data stream and starts "fresh" with each data input; this is called a "stateless protocol".
17.  In computability theory and computational complexity theory, a model of computation is the definition of the set of allowable operations used in computation and their respective costs.
18.  A Turing machine is an abstract machine[1] that manipulates symbols on a strip of tape according to a table of rules; to be more exact, it is a mathematical model that defines such a device.
19.  An automaton is supposed to run on some given sequence of inputs in discrete time steps.
20.  In mathematics, computer science, and linguistics, a formal language is a set of strings of symbols that may be constrained by rules that are specific to it.
21.  The alphabet of a formal language is the set of symbols, letters, or tokens from which the strings of the language may be formed; frequently it is required to be finite.
22.  A formal language is often defined by means of a formal grammar such as a regular grammar or context-free grammar, also called its formation rule.
23.  In computational complexity theory, decision problems are typically defined as formal languages, and complexity classes are defined as the sets of the formal languages that can be parsed by machines with limited computational power.
24.  Automata theory is the study of abstract machines (or more appropriately, abstract 'mathematical' machines or systems) and the computational problems that can be solved using these machines.2
25.  Language theory is a branch of mathematics concerned with describing languages as a set of operations over an alphabet.
26.  Because automata are used as models for computation, formal languages are the preferred mode of specification for any problem that must be computed.
27.  The statement that the halting problem cannot be solved by a Turing machine[7] is one of the most important results in computability theory, as it is an example of a concrete problem that is both easy to formulate and impossible to solve using a Turing machine.
28.  Computability theory, also called recursion theory, is a branch of mathematical logic, of computer science, and of the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees.
29.  In order to analyze how much time and space a given algorithm requires, computer scientists express the time or space required to solve the problem as a function of the size of the input problem.
30.  The Millennium Prize Problems are seven problems in mathematics that were stated by the Clay Mathematics Institute in 2000.
31.  Hamilton's mathematical contributions are primarily in the field of differential geometry and more specifically geometric analysis. He is best known for having discovered the Ricci flow and starting a research program that ultimately led to the proof, by Grigori Perelman, of the Thurston geometrization conjecture and the solution of the Poincaré conjecture. In August 2006, Perelman was awarded, but declined, the Fields Medal for his proof, in part citing Hamilton's work as being foundational.
32.  An algorithm is said to be of polynomial time if its running time is upper bounded by a polynomial expression in the size of the input for the algorithm, i.e., T(n) = O(nk) for some constant k.
33.  Problems for which a deterministic polynomial time algorithm exists belong to the complexity class P, which is central in the field of computational complexity theory.
34.  Cobham's thesis states that polynomial time is a synonym for "tractable", "feasible", "efficient", or "fast".
35.  P is the smallest time-complexity class on a deterministic machine which is robust in terms of machine model changes.
36.  the set of problems that can be solved by an abstract machine M using O(f(n)) of resource R, where n is the size of the input.
37.  complexity classes can be defined based on function problems (an example is FP), counting problems (e.g. #P), optimization problems, promise problems, etc.
38.  Logic (from the Ancient Greek: λογική, logike)[1] is the branch of philosophy concerned with the use and study of valid reasoning.
39.  Logic is often divided into three parts: inductive reasoning, abductive reasoning, and deductive reasoning.
40.  An algorithm is an effective method expressed as a finite list[4] of well-defined instructions[5] for calculating a function.
41.  Determinism is the philosophical position that for every event, including human interactions, there exist conditions that could cause no other event.
42.  Usually, efficient data structures are key to designing efficient algorithms.
43.  A computational problem is understood to be a task that is in principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an algorithm.
44.  Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components.
45.  Machine learning is a scientific discipline that deals with the construction and study of algorithms that can learn from data. Such algorithms operate by building a model based on inputs[21]:2 and using that to make predictions or decisions, rather than following only explicitly programmed instructions.
46.  Modern cryptography is heavily based on mathematical theory and computer science practice; cryptographic algorithms are designed around computational hardness assumptions, making such algorithms hard to break in practice by any adversary.
47.  performing appropriate mathematical analysis can contribute to the reliability and robustness of a design

Areas:
Algorithms
Data Structures
Computational Complexity Theory
Distributed Computation
Parallel Computation
Machine Learning
Cryptography
Information Theory
Computational Number Theory
Automata Theory
Coding Theory

Computational Learning Theory
Formal Methods
Program Semantics
Symbolic Computation
Computational Geometry
Very-Large-Scale Integration
Computational Biology
Quantum Computation


Terms:
Halting Problems

Theory:
Automata Theory
Formal Language
Computability Theory/Theory of Computation
Computational Complexity Theory

Programming:
Imperative Programming
Declarative Programming

Machines:
Abstract Machine
RAM Model
Finite State Machine
Turing Machine [Critical]

Time Complexity:
Constant Time
Logarithmic Time
linear Time
Quadratic Time
Polynomial Time
Exponential Time
Factorial Time

Model of Computation:
Turing machines,
finite state machines,
recursive functions,
lambda calculus,
combinatory logic,
cellular automaton,
abstract rewriting systems.

People:
Grigori Yakovlevich Perelman is a Russian mathematician who made landmark contributions to Riemannian geometry and geometric topology before apparently withdrawing from mathematics.

Categories about Model of Computation:
1. abstract machine and models equivalent to it (e.g. lambda calculus is equivalent to the Turing machine) used in proofs of computability and upper bounds on computational complexity of algorithms,
2. decision tree models, used in proofs of lower bounds on computational complexity of algorithmic problems.

Fields:
NP-Hardness
NP-Complete

Examples for FSM:
Vending Machine
Traffic Lights



References:
https://en.wikipedia.org/wiki/Theoretical_computer_science
https://en.wikipedia.org/wiki/Theory_of_computation
https://en.wikipedia.org/wiki/Abstract_machine
https://en.wikipedia.org/wiki/State_(computer_science)
https://en.wikipedia.org/wiki/Model_of_computation
https://en.wikipedia.org/wiki/Finite-state_machine
https://en.wikipedia.org/wiki/Formal_language
https://en.wikipedia.org/wiki/Automata_theory
https://en.wikipedia.org/wiki/Millennium_Prize_Problems
https://en.wikipedia.org/wiki/Time_complexity#Polynomial_time
https://en.wikipedia.org/wiki/Theoretical_computer_science
https://en.wikipedia.org/wiki/Logic
https://en.wikipedia.org/wiki/Amdahl%27s_law