You are currently viewing BSc Computer Science 05

BSc Computer Science 05

Courtesy : BSc Computer Science

Theoretical computer science

Main article: Theoretical computer science

Theoretical Computer Science is mathematical and abstract in spirit, but it derives its motivation from the practical and everyday computation. Its aim is to understand the nature of computation and, as a consequence of this understanding, provide more efficient methodologies. # ISO certification in India

Theory of computation

Main article: Theory of computation

According to Peter Denning, the fundamental question underlying computer science is, “What can be automated?” Theory of computation is focused on answering fundamental questions about what can be computed and what amount of resources are required to perform those computations. In an effort to answer the first question, computability theory examines which computational problems are solvable on various theoretical models of computation. The second question is addressed by computational complexity theory, which studies the time and space costs associated with different approaches to solving a multitude of computational problems. # ISO certification in India

The famous P = NP? problem, one of the Millennium Prize Problems, is an open problem in the theory of computation.

{\displaystyle M=\{X:X\not \in X\}}{\displaystyle M=\{X:X\not \in X\}}
Automata theoryFormal languagesComputability theoryComputational complexity theory
Models of computationQuantum computing theoryLogic circuit theoryCellular automata

Information and coding theory

Main articles: Information theory and Coding theory

Information theory, closely related to probability and statistics, is related to the quantification of information. This was developed by Claude Shannon to find fundamental limits on signal processing operations such as compressing data and on reliably storing and communicating data. Coding theory is the study of the properties of codes (systems for converting information from one form to another) and their fitness for a specific application. Codes are used for data compression, cryptography, error detection and correction, and more recently also for network coding. Codes are studied for the purpose of designing efficient and reliable data transmission methods. 

Coding theoryChannel capacityAlgorithmic information theorySignal detection theoryKolmogorov complexity

Data structures and algorithms

Main articles: Data structure and Algorithm

Data structures and algorithms are the studies of commonly used computational methods and their computational efficiency.

O(n2)
Analysis of algorithmsAlgorithm designData structuresCombinatorial optimizationComputational geometryRandomized algorithms

Programming language theory and formal methods

Main articles: Programming language theory and Formal methods

Programming language theory is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and their individual features. It falls within the discipline of computer science, both depending on and affecting mathematics, software engineering, and linguistics. It is an active research area, with numerous dedicated academic journals.

Formal methods are a particular kind of mathematically based technique for the specification, development and verification of software and hardware systems.  The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design. They form an important theoretical underpinning for software engineering, especially where safety or security is involved. Formal methods are a useful adjunct to software testing since they help avoid errors and can also give a framework for testing. For industrial use, tool support is required. However, the high cost of using formal methods means that they are usually only used in the development of high-integrity and life-critical systems, where safety or security is of utmost importance. Formal methods are best described as the application of a fairly broad variety of theoretical computer science fundamentals, in particular logic calculi, formal languages, automata theory, and program semantics, but also type systems and algebraic data types to problems in software and hardware specification and verification. # ISO certification in India

{\displaystyle \Gamma \vdash x:{\text{Int}}}\Gamma \vdash x:{\text{Int}}
Formal semanticsType theoryCompiler designProgramming languagesFormal verificationAutomated theorem proving

Computer systems

Computer architecture and organization

Main articles: Computer architecture, Computer organisation, and Computer engineering

Computer architecture, or digital computer organization, is the conceptual design and fundamental operational structure of a computer system. It focuses largely on the way by which the central processing unit performs internally and accesses addresses in memory. Computer engineers study computational logic and design of computer hardware, from individual processor components, microcontrollers, personal computers to supercomputers and embedded systems. The term “architecture” in computer literature can be traced to the work of Lyle R. Johnson and Frederick P. Brooks, Jr., members of the Machine Organization department in IBM’s main research center in 1959.

130px
Processing unitMicroarchitectureMultiprocessingProcessor design
Ubiquitous computingSystems architectureOperating systemsInput/output
Embedded systemReal-time computingDependabilityInterpreter

Concurrent, parallel and distributed computing

Main articles: Concurrency (computer science) and Distributed computing

Concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other. A number of mathematical models have been developed for general concurrent computation including Petri nets, process calculi and the Parallel Random Access Machine model. When multiple computers are connected in a network while using concurrency, this is known as a distributed system. Computers within that distributed system have their own private memory, and information can be exchanged to achieve common goals. # ISO certification in India