General questions regarding learning computer science disciplines and CS education
Questions tagged [education]
142 questions
132
votes
15 answers
How to fool the "try some test cases" heuristic: Algorithms that appear correct, but are actually incorrect
To try to test whether an algorithm for some problem is correct, the usual starting point is to try running the algorithm by hand on a number of simple test cases -- try it on a few example problem instances, including a few simple "corner cases". …
D.W.
- 167,959
- 22
- 232
- 500
111
votes
9 answers
How/when is calculus used in Computer Science?
Many computer science programs require two or three calculus classes.
I'm wondering, how and when is calculus used in computer science? The CS content of a degree in computer science tends to focus on algorithms, operating systems, data structures,…
Victor
- 1,289
- 2
- 9
- 8
102
votes
5 answers
What are the reasons to learn different algorithms / data structures serving the same purpose?
I have been wondering about this question since I was an undergraduate student.
It is a general question but I will elaborate with examples below.
I have seen a lot of algorithms - for example, for maximum flow problems, I know around 3 algorithms…
shole
- 1,210
- 1
- 10
- 10
63
votes
14 answers
How can I explain to my parents that I study programming languages?
I am currently finishing my MSc in computer science. I am interested in programming languages, especially in type systems. I got interested in research in this field and next semester I will start a PhD on the subject.
Now here is the real question:…
effeffe
- 741
- 1
- 5
- 10
41
votes
6 answers
How does a computer work?
I have been a computer nerd for many many years. I can program in quite a few languages, and I can even build them. I sat down with a buddy the other day and asked how a computer actually takes electricity and does something with it, and we just…
Christian
- 519
- 5
- 6
40
votes
7 answers
Explaining the relevance of asymptotic complexity of algorithms to practice of designing algorithms
In algorithms and complexity we focus on the asymptotic complexity of algorithms, i.e. the amount of resources an algorithm uses as the size of the input goes to infinity.
In practice, what is needed is an algorithm that would work fast on a finite…
Kaveh
- 22,661
- 4
- 53
- 113
40
votes
13 answers
What should I do with a bunch of 16-17 year olds to get them interested in computer science?
I'm going to be involved with a sort of 'open day' at my university in a few weeks. As part of this time, I (along with a coworker) am being given a whole bunch of high-school level students for two hours, as well as a computer lab big enough to…
Koz Ross
- 823
- 7
- 12
35
votes
2 answers
on "On the cruelty of really teaching computing science"
Dijkstra, in his essay On the cruelty of really teaching computing science, makes the following proposal for an introductory programming course:
On the one hand, we teach what looks like the predicate calculus, but we do it very differently from…
Matthew Towers
- 780
- 7
- 14
35
votes
14 answers
Criteria for selecting language for first programming course
As a university-level CS educator, the issue of which programming language to teach in the first programming course often comes up for discussion. There are thousands of languages to choose between, and lots of religious fever (or fevour) supporting…
Dave Clarke
- 20,345
- 4
- 70
- 114
34
votes
7 answers
Why do we need assembly language?
We mostly write programme in high level language. So while studying I came across assembly language. So an assembler converts assembly language to machine language and a compiler does the same with high level language. I found assembly language has…
Nithin Jose
- 459
- 1
- 4
- 6
32
votes
3 answers
Teaching NP-completeness - Turing reductions vs Karp reductions
I'm interested in the question of how best to teach NP-completeness to computer science majors. In particular, should we teach it using Karp reductions or using Turing reductions?
I feel that the concepts of NP-completeness and reductions are…
D.W.
- 167,959
- 22
- 232
- 500
30
votes
8 answers
Is it a problem to be a programmer with no knowledge about computational complexity?
I've been assigned an exercise in my university. I took it home and tried to program an algorithm to solve it, it was something related to graphs, finding connected components, I guess.
Then I made the most trivial thing that came into my mind and…
Red Banana
- 479
- 4
- 7
30
votes
9 answers
Explaining the difference between computer science and computer literacy
What is a good metaphor or example to explain to an English major the difference between classical computer science and "being good with using MS-Windows"
computer science
computer programming
using computers
3 profoundly different things. …
JackOfAll
- 419
- 4
- 6
27
votes
7 answers
Start learning about Theory of Distributed Systems?
What's the best way that anyone can do to have a good introduction to the theory of distributed system, any books or references, and topics should be covered first and requirements to start learning in this topic.
Sameh K. Mohamed
- 381
- 1
- 4
- 6
26
votes
13 answers
False proofs that look correct
I remember seeing a list of False Proofs when I was taking Discrete Maths and I found it to be very interesting and also helpful.
So, if anyone knows some common proof mistakes students make or some cool sneaky way to trick people in a proof send…
proof-of-correctness
- 572
- 4
- 9