Sponsored by AVG
CNET Top Weekly Download for Free Anti-Virus view!
free.avg.com - 2.4 million people a week get AVG Anti-Virus Free, for the best protection against web threats.
70 Comments
- duke, on 10/12/2007, -0/+14I still think in BASIC, but I'm old and I don't code for a living.
- cmdrrobot, on 10/12/2007, -1/+14Computer Scientist actually means something. It's not just an euphemism for programmer, and definitely sould not be applied to novice codemonkeys. Without a solid foundation in mathematics (not algebra, arithmetic, or calculus), one is in no way a computer scientist, even if one can string together a program using GOTO.
- cmdrrobot, on 10/12/2007, -1/+14Computer scientists think in algorithms and mathematics, not in C++ or Python; those are for code monkeys.
P.S. Less than 10% of computer scientists in most universities are female, so your use of the female pronoun is peculiar. - Jovan, on 10/12/2007, -2/+15Listen.
Python and C# zealots: nobody cares. This is about C++. Leave your ignorance of other languages outside and embrace this rather useful documentation. Can we please, just for a minute, take our heads out of our asses and quit saying how Python/C# are awesome -- the article has nothing to do with it -- and look at this ***** document as a C++ primer? - cmdrrobot, on 10/12/2007, -3/+13Computer science and computer engineering are quite different; akin to the difference between physics and civil engineering. Is physics civil engineering for pussies?
- cmdrrobot, on 10/12/2007, -1/+9@duke:
There are more practical branches of physics than astrophysics. Without physics, electrical engineering, computer engineering, and civil engineering could not exist That being said, a lot of physicists (especially astrophysicists) nowadays are ivory tower douches studying things that have no conceivable real world application, but one day, we may find a practical use for that knowledge as well (if Western civilization is still around by then). - espek, on 10/12/2007, -1/+7"Computer Scientist".....that's cute. We used to call you guys "programmers". Dont' get fancy kids.
At my last job, our Receptionist had the title of "Director of First Impressions" -- I ***** you not. - RealityBender, on 10/12/2007, -0/+6I would call this good intro to c and abstract data types.
it explain nothing of the advantage and disadvantage of different implementation of the Abstract Data Type.
Sorting
a computer scientist would examine the data before choosing a sort. Someone that know programing would just use the fast sort they knew of like quick-sort
If it did that then i would say it make you think like a computer scientist
all in all it a good programming tutorial - reversial, on 10/12/2007, -4/+9Heh, "first year college or advanced high school". I'm not even IN highschool and I understand it.
By the way, I would bet money on this being buried because of my tender years. - inactive, on 10/12/2007, -0/+5Thanks for all the links I want to learn more! dugg!
- duke, on 10/12/2007, -2/+6True enough. We owe a lot to Isaac Newton, Albert Einstein, Neils Bohr, James Maxwell, and a host of other physicists born in the 19th Century or before. But I assumed that your comparative comment was talking about physicists and civil engineers who are still alive. ;-)
Anyway, I was just goofing around. Didn't mean to go off insulting physicists. You made a good point, and I dugg it, FWIW. - cmdrrobot, on 10/12/2007, -7/+11@mfratt
C++ is C with classes, but still the same mess as C in the other respects. C# is Microsoft's improved take on Java; it uses garbage collection, everything is a object reference (except for primitives), and it is nicer to program in than C++ or C is the majority of cases. Pascal was designed for education and should be easier than C or C# (theoretically); Pascal does not have classes, though it has structs. Some versions of object oriented pascal have been created; they are decent -- look into Delphi. Personally, I prefer Smalltalk for object oriented programming; it is by far the cleanest language (right up there with Ruby).
Here are some free smalltalk books: http://www.iam.unibe.ch/~ducasse/FreeBooks.html
and a free Smalltalk implementation: http://www.squeak.org/ - Pictographer, on 10/12/2007, -0/+4"A Brief Introduction to Programming in C++" would be a better title. To imply computer scientists think like this is like saying mathematicians think about elementary arithmetic--sometimes they do, but generally they take it for granted focusing instead on more advanced concepts, but when they do focus on elementary arithmetic, it's at a more abstract level.
- pkrumins, on 10/12/2007, -2/+5Does a computer scientist think in C++ or does she think in Python http://www.ibiblio.org/obp/thinkCSpy/ ?
- JamesWilson, on 10/12/2007, -0/+3Secret ingredient is... free time!
- inactive, on 10/12/2007, -0/+3What the hell does this have to do with thinking like a computer scientist (yes, I am one)?
- doktorseven, on 10/12/2007, -0/+2The example program in Chapter 1 uses an outdated header file, doesn't return int from main, and doesn't declare the namespace.
Try
#include < iostream > // no spaces inside < >, digg thinks it's HTML otherwise though
// main: generate some simple output
using namespace std;
int main ()
{
cout < < "Hello World" < < endl; // no spaces between < here either
return 0;
} - jamesvaughn, on 10/12/2007, -0/+2I prefer to invent my own computer language based on the project at hand.
- MikeWeller, on 10/12/2007, -0/+2Also, void main () is deprecated as well... it should be int main, with a return value. Sorry to complain, but these things *are* important.
- jamesvaughn, on 10/12/2007, -0/+2One night a programmer walked into the bedroom where his wife was in bed reading. She looked at him carrying two glasses and said "what is the empty one for?" He said, "in case I am not thirsty." :)
- jamesvaughn, on 10/12/2007, -0/+2Assembly, baby!
- cranley, on 10/12/2007, -1/+3out of curiosity, what exactly would you define a "computer scientist" to be? I have a degree and have been working in the industry for 6 years, designing and developing enterprise apps that are on the cutting edge, yet I only have a high-school level education in math. Does this make me a mere code monkey?
Personally, when it comes to comp sci, I think mathematics only does you so much depending on what your role is within the industry. I think a far superior skill is something you failed to mention: the ability to see and think holistically. - cmdrrobot, on 10/12/2007, -2/+4@cranley
Computer scientist is not a term for a super programmer, or something along those lines. It is a field quite diferent from computer programming. Computer scientists are to software engineers as physicists are to civil engineers.
"Computer science is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.[1] Many diverse fields exist within the broader discipline of computer science; some emphasize the computation of specific results (such as computer graphics), while others (such as computational complexity theory) relate to properties of computational problems. Still others focus on the challenges in implementing computations. For example, programming language theory studies approaches to describing a computation, while computer programming applies specific programming languages to craft a solution to some concrete computational problem." - eastshores, on 10/12/2007, -0/+2cmdrrobot:
I I am glad that you feel the way you do. Knowledge leads way to the ability to imagine in greater detail, and that is good for everyone involved. I think we are on the same page. And for the record, no sir! I won't take it easy if presented the same threads I was when I commented =) - lvraab, on 10/12/2007, -0/+2If you prefer PDF or Postscript: http://www.greenteapress.com/thinkcpp/thinkCScpp.pdf
http://www.greenteapress.com/thinkcpp/thinkCScpp.ps
The Java "Computer Scientist" book is good too. - Karisson, on 10/12/2007, -1/+3This brings back memories of struggling through Pascal.
- bcrowell, on 10/12/2007, -0/+2The Think Like a Computer Scientist books are cool, because they're free downloads, but they're also available in print. For more free books, check out http://theassayer.org.
- cmdrrobot, on 10/12/2007, -1/+3@eastshores:
Take it easy. I have nothing against self taught or self made people; in fact, I respect them quite a bit more than most of the douches you find in University whose tuition is paid by their parents and who spend most of their time partying and smoking weed.
As for imagination being more important than knowledge, that's definitely true. Imagination facilitates all innovation (aside from accidental discoveries, I suppose). What knowledge brings to the table is each person not having to rediscover the wheel all the time, each person standing on the shoulder of those that came before them; of course, knowledge can also box you in, and prevent you from seeing things if you get too stuck in a manner of thinking.
As for the code monkey comment, I don't mean to disparage you or any other programmer who produces useful programs; rather, those programmers with very poor coding style and knowledge, incapable of producing much more than spaghetti code. - inactive, on 10/12/2007, -0/+2Yeah, you must be a regular genius, having majored in business and all (Father: "Son, what do you want to be when you grow up?" Son: "The boss!"). The companies computer scientists work for are generally computer companies, not regular companies where they're just the "computer people." You don't get a bachelor's degree or above in computer science to be some random company's code monkey.
- dtmfdan, on 10/12/2007, -0/+2what no jeff elkner?
- rm999, on 10/12/2007, -0/+2"Computer scientist is not a term for a super programmer, or something along those lines. It is a field quite diferent from computer programming."
I agree with you *theoretically,* but in a modern computer science education that is not so true. Majority of the people who go into computer science go into computer programming. Colleges realize this, and require programming classes. I admit there is a big difference between software engineering and computer science, but in universities you would never be able to tell. When I think of the pure definition of "computer science" I think of math more than programming. Yet somehow more than half the computer science undergraduate students I know don't know basic college math like calculus and linear algebra very well. - inactive, on 10/12/2007, -5/+7>So C# is different from C/C++?
Yes, C# is the way Microsoft spells **JAVA** - apantomimehorse, on 10/12/2007, -1/+3Nonsense.
Saying C++ is 'C with classes' makes perfect sense. Sure there are important differences to C++ other than classes and related object-oriented features, notably a stronger typing system, but these aren't really conceptual differences. As far as a beginner needs to know, C++ is C with classes, but C++ isn't necessarily a strict super set of everything found in C, so you should watch out for subtle differences.
As for C# being more like C++ than Java? Sure the language tries to merge virtues of C++ and Java together, but it very very clearly does so by making Java more like C++ rather than C++ more like Java . If you want to learn C#, you're much better off learning Java first rather than learning C++. You'll find just about all of the major concepts of Java 1.5 in C# 2.0, with some variations and additions. - rm999, on 10/12/2007, -2/+4"Computer science and computer engineering are quite different; akin to the difference between physics and civil engineering. Is physics civil engineering for pussies?"
Incorrect - civil engineering is a (very) applied form of physics. Computer engineering is about as applied as most fields of computer science, and can be quite similar. Computer engineering is a mix of hardware (basically understanding how the computer works) and software (usually low level stuff like OS, programming languages, and microcode). Obviously there is a lot of overlap between this and computer science, because a computer science degree should teach you at least some of these things.
I wouldn't say computer science is for pussies, but as a computer engineering undergrad and computer science grad student, I can say for sure that computer engineers come out with more knowledge about the way computers work. Computer science people have no knowledge of basic electronics and hardware (nor do most of them need it). But a computer engineering student can often code just as well as a computer science student (I consider good coding skills more in-born than something you can learn in four years at a college). - sbrown123, on 10/12/2007, -1/+3Had a discussion once with a computer scientist. He was finding it hard to believe that companies were easily satisfied with hiring large numbers of "application developers" over those skilled such as himself. The question I asked was simple, "Why should a company hire you over one of these people". He went on, and on, and on with a bunch of serious BS that, although may be interesting to a geek, it had absolutely zero worth to anyone concerned with business. But that was the difference he didn't notice and I could since I was not a computer scientist, but instead majored in business.
- bmpwe, on 10/12/2007, -0/+2I do this sometime during my every day life...
A long time ago, when I first learned what a summation was I wrote it in my notes as a set of nesteled 'for loops'. Simularly, in my economics classes I also describe some of the relationships in C syntax.
I guess those few classes I took in highschool really left an impression.
Any one else do anything like this? - lnxaddct, on 10/12/2007, -0/+2Computer science, for the most part, is a very large subset of discrete mathematics. Computer scientists study the theory of computation, computers have nothing to do with that and are merely a tool that is used (more so today than in the past). It is a common misconception that any code monkey can claim to be a computer scientist. In reality, many universities require CS majors to have enough math credits to have earned a math major, in addition to the traditional CS credits. As Dijkstra himself stated:
"Computer Science is no more about computers than astronomy is about telescopes."
-Steve ( http://krenzel.info ) - apantomimehorse, on 10/12/2007, -0/+2The "Think like a computer scientist..." tutorials are a series. There is "Think like a computer scientist in Python", "Think like a computer scientiest in Java", and a few others.
- perral1, on 10/12/2007, -0/+2Did anyone else notice that "Chapter 21: Trees" appears to be written at least partly about java?
I program in C plus plus (EDIT: why won't it let me put any pluses?), and have never done anything with java; most of the code on the page looks familiar to me. However, search "java" and you'll see it many times in the text of that chapter. I didn't see it anywhere else on the site.
-Perral1 - MikeWeller, on 10/12/2007, -0/+2#include <iostream.h>
This is wrong. Standard Cplusplus (digg lames it up if i use ) headers should NOT have the .h. If this tutorial can't even get the basic headers right, I'm not sure what the rest will be like. - lvraab, on 10/12/2007, -0/+1Keep in mind this was written in 1999. Standards will, and have, changed since then. The important part about this is the content. If anything, it encourages thinking because it's a bit outdated; you have to come up with the way to make it work.
- tricheco, on 10/12/2007, -0/+1Does C++ support dinamic typing and binding? Well I suppose not, that's why I love objective-C. More powerful than C++ (maybe slower sometimes :-)) and simpler than C#. Wooooo.
P.S. I think this is a clone of "thinking in C++" and yes, that was a lot better.
Anyway, i know for sure that computer scientists always think about sex, and I couldn't read anything about sex in this article :-D. - Karisson, on 10/12/2007, -0/+1>IntrynZik: I know Pascal sucked. That's why I had such a hard time with it. :)
- RealityBender, on 10/12/2007, -1/+2Program know how to use an algorithm
Computer scientist know when to use an algorithm
just because an algorithm does the same job doesn't mean it will work just as good. - monkeybui, on 10/12/2007, -0/+1oops.
- PlaidPhantom, on 10/12/2007, -0/+1Ha! I digg just to prove you wrong!
- webcrumb, on 10/12/2007, -0/+1"Why isnt there c# script for webpages, or embeded c# programs in webpages?"
There is. It's called ASP.NET. Look for webpages that have the extension .aspx. - FilCab, on 10/12/2007, -0/+1quote = j_bellone
"Java is nothing like Javascript.
C# improves on Java as well, but isn't that what all langauges are? Improvements on their predecessors?"
No... Lisp is an improvement of itself. :P - IntrynZik, on 10/12/2007, -0/+1In response to the original thread, Pascal sucked. Fortran and COBOL certainly weren't any fun either.
- peerk, on 10/12/2007, -0/+1If you ever look at a CS curriculum, you will realize that this statement is absolutely wrong.
-
Show 51 - 70 of 70 discussions



What is Digg?