Program Development    
  • Code::Blocks
    IDE for C++, C, and Fortran
  • BlueJ
    A free Java Development Environment designed for beginners, used by millions worldwide"
  • jGRASP
    "An Integrated Development Environment with Visualizations for Improving Software Comprehensibility"
  • Visual Studio Express
    This is a free version of Microsoft's superb software development suite.
  • Notepad++
    This is one of the better text editors available and a must have.
  Other Useful Software    
  • MobaXterm (terminal software)
  • PuTTY (terminal software)
  • Inkscape
    This application allows you to create SVG (vector) graphics. It is like a "lite" Adobe Illustrator, but free.
  • Paint .NET
    Tired of the incredibly primitive features of MS Paint? This free application allows you to edit and create multi-layer images
  Academic Websites    
  Helpful websites    
  Computer Science Quotes    
" Success is a lousy teacher. It seduces smart people into thinking they can't lose. And it's an unreliable guide to the future. What seems to be the perfect business plan or the latest technology today may soon be as out-of-date as the eight-track tape player, the vacuum-tube television, or the mainframe computer. I've watched it happen. History is a good teacher, though, and observing many companies over a long period of time can teach us principles that will help us with strategies for the years ahead."
  Bill Gates
"The Road Ahead", Chapter 3, 1995
"  Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
  Brian W. Kernighan
"  We are all shaped by the tools we use, in particular: the formalisms we use shape our thinking habits, for better or for worse, and that means that we have to be very careful in the choice of what we learn and teach, for unlearning is not really possible."
  Edsger W. Dijkstra
"Answers to Questions from Students of Sofware Engineering"
"  Informational tools are symbolic metaphors that amplify the intellect rather than the muscle of their users."
  Bill Gates
"The Road Ahead", pg. 5, 1995
"  There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult."
  C. A. R. Hoare
From "The Emperor's Old Clothes", Turing Award Speech
"  When I speak about computer programming as an art, I am thinking primarily of it as an art form, in an aesthetic sense. The chief goal of my work as an educator and author is to help people learn how to write beautiful programs ... My feeling is that when we prepare a program, the experience can be just like composing poetry or music ... Some programs are elegant, some are exquisite, some are sparkling. My claim is that it is possible to write grand programs, noble programs, truly magnificent ones! ... computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. Programmers who subconsciously view themselves as artists will enjoy what they do and will do it better."
  Donald E. Knuth
"Computer Programming as an Art", Turing Award Speech, 1974
"  Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."
  Donald E. Knuth
"Structured Programming with Go To Statements", ACM Computing Surveys 6, 4 - 1974
"  One can even conjecture that Lisp owes its survival specifically to the fact that its programs are lists, which everyone, including me, has regarded as a disadvantage."
  John McCarthy
From "Early History of Lisp"
"  I have reaffirmed a long-standing and strongly held view: Language comparisons are rarely meaningful and even less often fair."
  Bjarne Stroustrup
From "The Design and Evolution of C++"
"  A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
  Douglas Adams
From "Mostly Harmless"
"  On two occasions I have been asked, "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" In one case a member of the Upper, and in the other a member of the Lower House put this question. I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."
  Charles Babbage
Passages from the Life of a Philosopher (1864), ch. 5: "Difference Engine No. 1"