Complexity classIn computational complexity theory, a complexity class is a set of computational problems "of related resource-based complexity". The two most commonly analyzed resources are time and memory. In general, a complexity class is defined in terms of a type of computational problem, a model of computation, and a bounded resource like time or memory. In particular, most complexity classes consist of decision problems that are solvable with a Turing machine, and are differentiated by their time or space (memory) requirements.
Computational complexityIn computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time (generally measured by the number of needed elementary operations) and memory storage requirements. The complexity of a problem is the complexity of the best algorithms that allow solving the problem. The study of the complexity of explicitly given algorithms is called analysis of algorithms, while the study of the complexity of problems is called computational complexity theory.
Computational complexity theoryIn theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and relating these classes to each other. A computational problem is a task solved by a computer. A computation problem is solvable by mechanical application of mathematical steps, such as an algorithm. A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used.
Space complexityThe space complexity of an algorithm or a computer program is the amount of memory space required to solve an instance of the computational problem as a function of characteristics of the input. It is the memory required by an algorithm until it executes completely. This includes the memory space used by its inputs, called input space, and any other (auxiliary) memory it uses during execution, which is called auxiliary space. Similar to time complexity, space complexity is often expressed asymptotically in big O notation, such as etc.
Parameterized complexityIn computer science, parameterized complexity is a branch of computational complexity theory that focuses on classifying computational problems according to their inherent difficulty with respect to multiple parameters of the input or output. The complexity of a problem is then measured as a function of those parameters. This allows the classification of NP-hard problems on a finer scale than in the classical setting, where the complexity of a problem is only measured as a function of the number of bits in the input.
PovertyPoverty is a state or condition in which one lacks the financial resources and essentials for a certain standard of living. Poverty can have diverse social, economic, and political causes and effects. When evaluating poverty in statistics or economics there are two main measures: absolute poverty compares income against the amount needed to meet basic personal needs, such as food, clothing, and shelter; relative poverty measures when a person cannot meet a minimum level of living standards, compared to others in the same time and place.
ComplexityComplexity characterises the behaviour of a system or model whose components interact in multiple ways and follow local rules, leading to non-linearity, randomness, collective dynamics, hierarchy, and emergence. The term is generally used to characterize something with many parts where those parts interact with each other in multiple ways, culminating in a higher order of emergence greater than the sum of its parts. The study of these complex linkages at various scales is the main goal of complex systems theory.
Cycle of povertyIn economics, a cycle of poverty or poverty trap is caused by self-reinforcing mechanisms that cause poverty, once it exists, to persist unless there is outside intervention. It can persist across generations, and when applied to developing countries, is also known as a development trap. Families trapped in the cycle of poverty have few to no resources. There are many self-reinforcing disadvantages that make it virtually impossible for individuals to break the cycle.
Kolmogorov complexityIn algorithmic information theory (a subfield of computer science and mathematics), the Kolmogorov complexity of an object, such as a piece of text, is the length of a shortest computer program (in a predetermined programming language) that produces the object as output. It is a measure of the computational resources needed to specify the object, and is also known as algorithmic complexity, Solomonoff–Kolmogorov–Chaitin complexity, program-size complexity, descriptive complexity, or algorithmic entropy.
Poverty reductionPoverty reduction, poverty relief, or poverty alleviation is a set of measures, both economic and humanitarian, that are intended to permanently lift people out of poverty. Measures, like those promoted by Henry George in his economics classic Progress and Poverty, are those that raise, or are intended to raise, ways of enabling the poor to create wealth for themselves as a conduit of ending poverty forever. In modern times, various economists within the Georgism movement propose measures like the land value tax to enhance access to the natural world for all.
Theories of povertyTheories on the causes of poverty are the foundation upon which poverty reduction strategies are based. While in developed nations poverty is often seen as either a personal or a structural defect, in developing nations the issue of poverty is more profound due to the lack of governmental funds. Some theories on poverty in the developing world focus on cultural characteristics as a retardant of further development.
InfectionAn infection is the invasion of tissues by pathogens, their multiplication, and the reaction of host tissues to the infectious agent and the toxins they produce. An infectious disease, also known as a transmissible disease or communicable disease, is an illness resulting from an infection. Infections can be caused by a wide range of pathogens, most prominently bacteria and viruses. Hosts can fight infections using their immune systems. Mammalian hosts react to infections with an innate response, often involving inflammation, followed by an adaptive response.
Infectious diseases (medical specialty)Infectious diseases or ID, also known as infectiology, is a medical specialty dealing with the diagnosis and treatment of infections. An infectious diseases specialist's practice consists of managing nosocomial (healthcare-acquired) infections or community-acquired infections. An ID specialist investigates the cause of a disease to determine what kind of Bacteria, viruses, parasites, or fungi the disease is caused by. Once the pathogen is known, an ID specialist can then run various tests to determine the best antimicrobial drug to kill the pathogen and treat the disease.
Emerging infectious diseaseAn emerging infectious disease (EID) is an infectious disease whose incidence has increased recently (in the past 20 years), and could increase in the near future. The minority that are capable of developing efficient transmission between humans can become major public and global concerns as potential causes of epidemics or pandemics. Their many impacts can be economic and societal, as well as clinical. EIDs have been increasing steadily since at least 1940.
ImplementationImplementation is the realization of an application, execution of a plan, idea, model, design, specification, standard, algorithm, policy, or the administration or management of a process or objective. In computer science, an implementation is a realization of a technical specification or algorithm as a program, software component, or other computer system through computer programming and deployment. Many implementations may exist for a given specification or standard.
ResearchResearch is "creative and systematic work undertaken to increase the stock of knowledge". It involves the collection, organization and analysis of evidence to increase understanding of a topic, characterized by a particular attentiveness to controlling sources of bias and error. These activities are characterized by accounting and controlling for biases. A research project may be an expansion on past work in the field. To test the validity of instruments, procedures, or experiments, research may replicate elements of prior projects or the project as a whole.
Unit testingIn computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures—are tested to determine whether they are fit for use. It is a standard step in development and implementation approaches such as Agile. Before unit testing, capture and replay testing tools were the norm. In 1997, Kent Beck and Erich Gamma developed and released JUnit, a unit test framework that became popular with Java developers.
Eradication of infectious diseasesThe eradication of infectious diseases is the reduction of an infectious disease's prevalence in the global host population to zero. Two infectious diseases have successfully been eradicated: smallpox in humans, and rinderpest in ruminants. There are four ongoing programs, targeting the human diseases poliomyelitis (polio), yaws, dracunculiasis (Guinea worm), and malaria. Five more infectious diseases have been identified as potentially eradicable with current technology by the Carter Center International Task Force for Disease Eradication—measles, mumps, rubella, lymphatic filariasis (elephantiasis) and cysticercosis (pork tapeworm).
Test automationIn software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.
Humanitarian interventionHumanitarian intervention is the use or threat of military force by a state (or states) across borders with the intent of ending severe and widespread human rights violations in a state which has not given permission for the use of force. Humanitarian interventions are aimed at ending human rights violations of individuals other than the citizens of the intervening state. Humanitarian interventions are only intended to prevent human rights violations in extreme circumstances.