If you know basic high-school math, you can quickly learn and apply the core concepts of computer science with this concise, hands-on book. Led by a team of experts, you’ll quickly understand the difference between computer science and computer programming, and you’ll learn how algorithms help you solve computing problems. Each chapter builds on material introduced earlier in the book, so you can master one core building block before moving on to the next. You’ll explore fundamental topics such as loops, arrays, objects, and classes, using the easy-to-learn Ruby programming language. Then you’ll put everything together in the last chapter by programming a simple game of tic-tac-toe.
Dr. Ophir Frieder holds the McDevitt Chair in Computer Science and Information Processing and is Chair of the Department of Computer Science at Georgetown University. He is also Professor of Biostatistics, Bioinformatics and Biomathematics in the Georgetown University Medical Center. He is a Fellow of the AAAS, ACM, and IEEE.
Well, they don't joke around when they say about basics. That said, it is a good introduction to programming and CS, I wish I had started to learn with a book like this. But do we need yet another introduction book to programming? I guess not. But I enjoyed how the book takes its time to explain what is the difference of bit and byte, binary and hexadecimal numbers.
As a self-taught programmer, there are a few points that I had never taken the time to understand, but they are rare. So if you are a seasoned programmer or have a bit more than the basics, this book is not for you.
But I would definitely recommend this to a total beginner.
As someone who has returned to computer science and programming after a long break, I've been trying to get up to speed (again) with both basics and more advanced topics. I've also been keeping an eye out for a good introduction for my wife, who has some interest in cs after working in librarianship for a while.
But I'm not sure this is that book. Some of the book is very on-target as an intro book to cs/programming: how to approach a problem (state the steps, think about control flow), the usual foundations (binary numbers, variables, loops, arrays and hashes). Some of this gets a little more advanced, but still necessary (searching/sorting); and some of it gets into object-oriented programming which may or may not be necessary. Frankly, I think an intro to cs shouldn't (these days) consider OO foundational without mentioning other programming paradigms. And talk about OO can get a little hairy if you've never been exposed to it before.
And, frankly, though it is hard for me to judge, a lot of the language here seems pretty dense--too dense for an introductory book even when it's covering introductory topics.
That said, I do think the searching/sorting chapter is pretty good for what it covers--finally, a good explanation of radix short. Though, really, even there, the authors try to keep the book manageably sized and do so with that time-honored Fermat technique: "This topic is too large for this size, so go find some other book." That's what you'd expect from an intro book, and yet I wasn't really into what they choose to go into and what they choose to put off.
CS with Ruby is a great combination of classic Cs literature and a modern approach. The choice of Ruby makes the coding as close as possible to English.
The head first theory before any programming remains true to any CS book, but CS with Ruby skips a few parts of the compilation and interpretation done by compilers or interpreters, to ease the reader.
The chapters are nicely organized with really idiomatic summary of the keywords mentioned in each one of the chapters, before going in the exercises. The exercises are surprisingly few though. Yes, they are enough to grasp the basics, but there could be more for the motivated ones.
Reasons why the book is a 4: The installation and setup parts are something that may need more attention. It leaves too much to assume and predict by the reader. This could be avoided by investing 5 more pages into that.
There is a dedicated searching and sorting chapter but not a whole one for Data structures. This is important and worth 30 pages.
Last but not least it needs a refresher addressing the issues and using a newer Ruby version.
However I would recommended CD with Ruby to anyone starting CS Bs or having the programming basics down or so and wanting to learn more CS. Ex read Ruby Wizardry and then reading this one.
A great introduction to CS with lots of examples and code to play with. Unfortunately, as the book progresses, there are a fair amount of grammatical and code errors. I found the code fun to debug, but the grammatical errors are annoying.