10
votes
Accepted
Is computer science pointless
Your question takes a very narrow and untrue view of what computer science is. Computer science doesn't "assume a static problem" -- there is an entire subfield studying Online Algorithms, ...
Community wiki
9
votes
Accepted
What's role of software verification in modern software engineering
This is actually a surprisingly complex topic.
Who verifies the verifiers?
Have you heard of Ada/SPARK?
Ada is a programming language which is mostly used in embedded contexts, including in military ...
5
votes
Accepted
What is the closest theory to "The theory of code refactoring"?
Basic code refactoring is not about symmetries but rather about equivalences. When code $C$ is transformed by refactoring to become code $C'$, we expect $C$ and $C'$ to "do the same thing". (...
4
votes
Accepted
Suitability of high-level languages for embedded systems
What is a high level language? What is an embedded system? Once upon a time C was a high level language and a Raspberry Pi would have changed the outcome of major wars, now almost every ...
4
votes
Where in the toolchain does formal specification come in?
Tests can be written based on either a formal spec or an informal spec.
Verification always requires a formal specification. Formal verification might be manual or automated, or some combination of ...
D.W.♦
- 164k
4
votes
what are all the domains of computer sciences?
You'll be able to better understand all the branches and subfields of Computer Science if you take a look at the ACM Computing Classification System. This system is normally used by scientists to ...
4
votes
Applications of ω-automaton in engineering
Sure. They are used in model checking. Specifically, if we want to check liveness properties of systems, then typically we use $\omega$-automata (e.g., Büchi automata) to formalize the property we ...
D.W.♦
- 164k
4
votes
What's role of software verification in modern software engineering
To be honest this feels like it's a question of just practicality and feasibility. The reality is that all of our systems are just so complex these days, that it's almost impossible to just verify ...
3
votes
Regretting Computer Science?
There are 2 parts of building "stuff". The physical components of the system and the behaviour of the system. To build the physical components of the system you need to learn about the physics and ...
3
votes
Accepted
How many telescoping constructors will I have?
You'll need $2^n$ constructors. You need one constructor for each possible subset of optional parameters. There are $2^n$ such subsets. You have $n$ things, and there are $2^n$ possible ways to ...
D.W.♦
- 164k
3
votes
Why do errors occur in programming?
Errors occur in programming because programs are written by humans and humans make errors.
3
votes
Accepted
Which "entity" is working at more deeper level than Characters of a program?
There are many pieces of software involved in rendering an "A" when you type it in to a program like a text editor.
First, the key press is handled by the hardware of the keyboard, which sends a ...
3
votes
What we lack to do automatic programming?
We already have the formalization of norms
I don't think we do. Norms are written in natural languages (e.g. English). And truly understanding text written in a natural language (even a subset of it, ...
3
votes
what are all the domains of computer sciences?
Broadly speaking, computer science can be divided into Theoretical Computer Science, Artificial Intelligence, and Computer Systems. Each of these categories has many subcategories, and each ...
2
votes
What is the theory behind testing fixes for intermittent bugs?
You juggle with "probabilities" without defining any. There are two different questions here.
For practical programs, can I use random testing to establish that any given execution has close to 100%...
2
votes
Revolutions in Computer Science
Computer science is, at its core, the study of algorithms. What can we compute, and how fast can we compute it? Its sub-fields, such as image processing, AI, Operating Systems, Programming Languages, ...
2
votes
Is computer science pointless
Even though computer science can be understood as a science of problem solving, as a science, it is above all interested in framing (answerable) questions. Questions about problem solving methods, ...
2
votes
Names of power-of-two bit operations on bitsets that would not assume any number interpretation
You can think of a bitvector as a set, by giving names to the various bits. For example, if we name the bits in an 8-bit integer using the numbers $0,\ldots,7$ (where $0$ is the LSB and $7$ is the MSB)...
2
votes
Accepted
How to Get Started in Computer Science
Theoretical computer science means different things to different people. However, here are some areas which are commonly taught in undergraduate theoretical computer science classes:
Combinatorics ...
2
votes
Accepted
How a Data Compression Software Reads a File as pure Binary File and makes Output?
A file is a byte stream
Although OSes provide some bells and whistles (such as metadata, or forks), most define a file as a sequence of 0 or more bytes.
Each byte in the file is a numerical value ...
2
votes
Practice of setting parallelism as the default behaviour
Have fun. If you use multiple threads you need to make sure that the overhead doesn’t outweigh the savings. The number of processors to use depends on the number of available processors, their ...
2
votes
Accepted
Subclass specification
CharSet is not a subtype of Set<E>, but it is a subtype of Set<Character>. If ...
D.W.♦
- 164k
2
votes
Accepted
What are the minimum functions, services, or features of a software to be called as an operating system?
That depends on your definition of "operating system". Some authors define that as the kernel (i.e., Linux, providing process control, a filesystem and simple/controlled access to devices), ...
2
votes
Why was the fast inverse square root algorithm so ingenious?
What you can take away from this: When you are given a problem, it is often possible to solve the problem, without solving obvious sub-problems. Like here, where you can calculate 1/sqrt(x) ...
2
votes
Why was the fast inverse square root algorithm so ingenious?
A simple reason for wanting this non-standard way is to think about how many operations you would need to do in finding sqrt(x), and by extension 1/sqrt(x).
One approach to finding sqrt(x) is as ...
2
votes
Accepted
Why was the fast inverse square root algorithm so ingenious?
Inverse square root is used a lot for vector normalisation :
$$xn = \frac{x }{ \sqrt{x^2 + y^2 + z^2}}$$
Which has many uses in computer graphics, such as calculating illumination.
With a traditional ...
2
votes
Do modern computers prevent instructions being executed by audio? If so, how?
Yes, it absolutely could, if the software that plays the audio has a vulnerability that allows that to happen.
I suggest learning about the nature of these vulnerabilities, to understand better how it ...
D.W.♦
- 164k
2
votes
Accepted
Do modern computers prevent instructions being executed by audio? If so, how?
It already exists and we can find the examples with CVE mpeg or CVE mp3, or searching some other formats. Three examples among the many;
CVE-2014-2299
Buffer overflow in the mpeg_read function in ...
2
votes
Name of class of errors where the real state differs from the recorded state?
Maybe hypnosis, as used by Raymond Chen to describe a closely related set of bugs?
It’s like saying, “I am a bad guy from a 1960’s spy movie. I have successfully hypnotized the victim into obeying ...
1
vote
Which topics of mathematics should I need to learn to be a good app developer?
An employer needs one person who is good at maths. Unless you go deep into scientific software, 90% of all programming jobs rarely require any mathematical skills at all.
You will sometimes find ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
software-engineering × 118programming-languages × 18
reference-request × 15
terminology × 8
software-testing × 8
computer-architecture × 6
operating-systems × 6
logic × 5
formal-methods × 5
software-verification × 5
object-oriented × 5
computability × 4
compilers × 4
knowledge-representation × 4
empirical-research × 4
design-patterns × 4
algorithms × 3
graphs × 3
discrete-mathematics × 3
applied-theory × 3
algorithm-analysis × 2
optimization × 2
automata × 2
finite-automata × 2
formal-grammars × 2