59

If you have a few minutes, most people know how to add and multiply two three-digit numbers on paper. Ask them to do that, (or to admit that they could, if they had to) and ask them to acknowledge that they do this task methodically: if this number is greater than 9, then add a carry, and so forth. This description they just gave of what to do that is an ...


18

I would try something like this: Programmers can tell computers what to do. To do that, they need to use a programming language. That is a language that is understood by both computers and humans. For example, if you edit a Word document and press a key, the computer will show the letter you pressed. That's because a programmer wrote a program saying: If ...


12

Most people understand recipes. If you follow the instructions, you'll get a decent meal. Sometimes, though, the instructions can be difficult to follow. For example, when you're making perogies, you'll find instructions like this, taken word for word from Grandma's Polish Perogies: To cook perogies: Bring a large pot of lightly salted water to a boil. ...


11

In my experience, it is better to learn stuff as you need it. Otherwise, you don't have the motivation to really "get" it, and there is always the risk of getting lost in the forest of interesting stuff out there (that in the end is of no use). Be at the lookout for results that could help you (Google or citeseerx or ..., or even this site, are your friends)....


7

Here is how I would (try) to explain this to my mom: Programming languages are used by people to provide instructions to a computer. Everything that a computer does is done through some computer code written in a programming language by a programmer. So if, for instance, we want the TV channel to change when we press a button, then we would need to write ...


7

Your best bet may be to form analogies with human languages. Programming languages are used to provide instructions to computers. Human languages are used to communicate ideas to other people and to help form our own thoughts. The Sapir-Whorf hypothesis says that the language that you use influences your thought. (The degree to which the Sapir-Whorf ...


7

"By definition" recent research papers usually contain non-trivial results and they often (always?) require a deep knowledge of the argument in order to be well understood, so if you pick a paper at random you'll probably find a bunch of obscure signs in your hands :-) So my suggestion is to look at "old" research papers (but not "too old"): pick a ...


7

There is no such thing as the "format" for algorithms. A general agreement¹ is to use pseudocode, i.e. code that abstracts from the particulars of specific programming languages, machines and/or libraries. The most important thing is to be consistent. If you want to follow a specific style, I recommend you pick up some textbooks on algorithms and/or data ...


7

Let's do these in the order you listed. I will not be comprehensive, I will just try to impress you by pointing out cool applications of mathematics in CS. Others may know of even cooler applications. Linear algebra is used to compute the Page rank of web pages, which is the basis of Google engine ordering pages from more relevant to less relevant. Abstract ...


5

Knuth's scale goes up to 50 (for "unsolved research problems"). Note that the scale is meant to be (roughly) logarithmic, i.e., adding 10 to the number multiplies the work required by a factor, with 50 meaning some so ridiculously large amount of work to be done that it can be taken practically as "infinite". Fermat's Last Theorem used to be 50 as an ...


5

The bottom line advice is: Use whichever voice best aids understanding. Many people over-use the passive voice, thinking that it makes them sound more scientific. In practice, it's more common for the passive voice to make sentences harder to follow. Therefore, as a rough guideline, it's helpful to use the following principle: use the active voice ...


5

If you have no formal degree in CS, I think what you need is textbook instead of scientific papers. Being a self-taught programmer is a great achievement and I think you can build up on that with theory. But, reading papers require some deep knowledge in some area. I would suggest you to buy one of these books: Algorithms by Robert Sedgewick and Kevin ...


5

I'll cover problems that are easy to solve (i.e. in $P$) and problems whose solutions are easy to verify (i.e. in $NP$), and some problems that are probably not, and try to explain why people think one way or the other. Under standard complexity-theoretic assumptions, $P=BPP$, meaning that most randomized algorithms can be "derandomized" (this family of ...


4

There is no universal objective answer to the question of how to tell what counts as theory and what counts as practice, or what counts as science vs engineering; the precise dividing line between theory and practice, or science and engineering, is subjective and a matter of opinion. Those terms are not precisely defined -- they are fuzzy, subjective terms. ...


4

I agree that you will be more motivated for deep understanding once you have already begun working. At the same time, you want to make sure that you have covered enough background that you don't "reinvent the wheel". I suggest alternating your background reading and more focused work. Once you've started working, it will help focus your reading. Your reading ...


4

One very close overlap is of course Computer Architecture. Another close overlap (which incidentally happens to be my speciality) is EDA (CAD for VLSI designers). EDA requires development of fairly sophisticated parallel algorithms for things such as routing, RC extraction, optical proximity correction, etc., as well as understanding of the underlying VLSI ...


4

Assuming "older" papers are ok, what about Stephen Cook's well known The Complexity of Theorem-Proving Procedures [1]? It is 8 pages long, and if for the most part you have been able to keep up in your computability class, you can likely keep up with this paper as well. A copy is freely available from the author's website, or alternatively you can get a "...


4

No. You must use the test set only once. Otherwise your result will not be representative of the true performance of your scheme. That's bad. Instead, use the validation set for checking the performance of your algorithm on different parameters, different initialization strategies, different architectures, etc. That's what the validation set is there ...


3

A quick google search will tell you what an algorithm is. Now for "convential algorithm format" I think it would be helpful to look at how to write pseudocode. From wikipedia: "Pseudocode is an informal high-level description of the operating principle of a computer program or other algorithm." It is useful to express ideas and main concepts behind an ...


3

Distributed systems, algorithms and even graph theory are fields that are likely to be relevant. But, in a sense, "fields" aren't particularly relevant. You don't get a PhD "in a field" but, rather, by finding an advisor who wants to do a research project with you. That person would probably be in one of the fields I've suggested but being in a field isn't ...


3

There are many reasons that you may not see a lot of complex mathematics in the papers you are reading. First, the tools used depend on the task at hand. If a task is simple, a simple tool might be adequate. Also, if the task runs on a simple system, a simple tool is often best. Second, usually in Computer Science, the goal is usually to make things ...


3

I'd look at the "further reading" suggestions in your textbook. If the author made some effort here, the papers listed should be on-topic, important, and probably accessible.


3

Here are two analogies that you may find useful: My work is somewhat like exploring new approaches to musical notation. (example) Although the predominant notation systems are quite sophisticated, it is valuable to explore alternatives that reduce time/effort/errors for the composer, for the performer, or allow things that are clunky or not possible to ...


3

Simple Google search reveals a thesis from 2010 that defines and proves the complexity of scheduling university courses as NP-Complete. See Fig. 42 towards the end. Lovelace, April L. "On the complexity of scheduling university courses." (2010). There is also a technical report dating back to 1995 that does the same thing: Cooper, Tim B., and Jeffrey H. ...


3

You simply say "I am helping the guys who teach computers to work" The idea is programmers teach computers to do stuff using programs and you are helping them. I think it will work assuming they already know a bit about computers.


3

computer languages relate somewhat roughly to human languages. they use standard/ common/ shared words. consider that there are thousands of human languages, some defunct, others active, and their vocabulary and usage is continually evolving over time. some people create new useful words to express concepts that were not previously expressible. another ...


3

If you don't want to use comparisons, although I think the "algorithm" one that Lieuwe brought up is very nice to convey the idea, you could say that you want to reduce misunderstandings between humans and computers. After all, you're dealing with languages, and that's something very basic to humans, I guess. So why not pretend the computer is just another ...


3

I'm assuming you are really asking how is it possible that the same source code can be compiled to different architectures? In order to achieve this feat different systems use different solutions. Interpreter Some languages use an interpreter. In this case there is no underlying architecture. The source code gets interpreted as written. Virtual ...


3

As has already been noted, papers probably are not the best way for you to start. Perhaps you might like to check out the ArsDigita University website. This has been a project running in 2000 and 2001 (yes, some time has passed since then, but I think this does not really matter for the basics of CS), providing an intensive introduction to the most ...


3

Rule of thumb: Theoretical research concerns itself with models: defining models, determining their properties and theorems that hold given a set of models. Applied research concerns itself with the real world: solving problems given a real context governed by physical (or social) laws. Obviously, the two are intertwined and not always clearly separated. ...


Only top voted, non community-wiki answers of a minimum length are eligible