8 votes

Do you know of a complete textbook for teaching databases?

I've taught a lot of people SQL in person (over 3000), and I've had to cobble together materials out of a bunch of resources to do it. For Exercises: http://sqlzoo.net http://pgexercises.com https://...
Liz H's user avatar
  • 121
8 votes

Java: The Complete Reference, which edition to follow

The fundamental question is, whether your goal is to learn programming (in which case the language doesn't matter at all … theoretically at least) or to learn Java. If you want to learn programming, ...
Jörg W Mittag's user avatar
8 votes
Accepted

What and where should I study for competitive programming?

If your aiming for the IOI, the first step has to be figuring out how to get onto your country's delegation. In the USA (where I am), that means USACO. If not, then you will have to determine what ...
Ben I.'s user avatar
  • 32.9k
8 votes

Book to substitute "Compilers: Principles, Techniques and Tools" by Ullman et. al. (popularly known as the red dragon book)

The "problem" with the dragon book is that it is so complete; intentionally so. Over its lifetime there have been tremendous advances in the theory and practice of building compilers. If you ...
Buffy's user avatar
  • 36k
7 votes

Textbooks: Yes, no, roll your own?

This is difficult to answer in general. I have personally used a lot of different solutions depending on the course. For low level courses it may make less difference, but maybe not. I still have many ...
Buffy's user avatar
  • 36k
7 votes

Paper Books or eBooks?

It is impossible to say which is best, but here are some things to consider. Some factors: paper books vs e-books Paper books can be passed on (sold) to pupils in the next year. E-books can be ...
ctrl-alt-delor's user avatar
7 votes

Paper Books or eBooks?

I would recommend a mixed strategy. There are two sorts of books that are appropriate for e-books, I think. The first category is books that you need now, but wouldn't intend to keep. This includes ...
Buffy's user avatar
  • 36k
6 votes

What and where should I study for competitive programming?

Ben's answer on how to find and join a team is spot on. I'll address what you should be studying. Competitive programming generally is about correct use of algorithms and data structures. There are ...
guitarcat's user avatar
  • 321
6 votes

Reference request for resource with difficult programming exercises

If he wants to have a blast biting into some very fun and challenging problems, Project Euler is fantastic, and entirely language neutral. He may find that certain problems are out of his grasp until ...
Ben I.'s user avatar
  • 32.9k
6 votes

Reference request for resource with difficult programming exercises

Although the question is asking for a book, looking a "Project Euler" mentioned in another answer, I would like to suggest Codewars might be what you are looking for. On codewars you choose ...
moddayjob's user avatar
  • 161
5 votes

Textbooks: Yes, no, roll your own?

My school district does not buy textbooks anymore. That has been a policy for at least the last five years. I do have a very old set of books for Programming I that I will refer to myself, and that ...
Java Jive's user avatar
  • 2,349
5 votes
Accepted

What non-programming book is vital for learning the CS mindset?

The hardest part of determining anything in computer science is the requirements first. If you don't know what the program should do, then there is no way to do it correctly. Thus, Winnie the Pooh ...
user2120's user avatar
5 votes

Textbooks: Yes, no, roll your own?

In my experience, students will try to avoid reading even a single full page if they can get away with it. It has also been my experience that most students don't really know how to learn from text, ...
Ben I.'s user avatar
  • 32.9k
5 votes

Paper Books or eBooks?

I have read E-books since 2008 (completed one today) and found them useful in: Save the Trees Easy/Quick Transportation Multiple copies enable you to comment out etc. Searching, etc. is very easy. ...
Failed Scientist's user avatar
5 votes

Study the book "Computer Architecture- A quantitative approach" (3rd Edition) for the first time

I think you first need to decide what your goals are. Are you interested in computer architecture because: You want to design computer hardware and so need to understand it at a fundamental level? Or ...
lfalin's user avatar
  • 446
5 votes

Java: The Complete Reference, which edition to follow

For a student, any recent edition will be fine. Don't overthink it. The first task is to become thoroughly familiar with the mental model required of a Java programmer. Or even, for the very ...
Buffy's user avatar
  • 36k
5 votes

Java: The Complete Reference, which edition to follow

I'll try to give a few actual textbook recommendations. If the goal is to learn Java for regular programming, I would avoid like the plague any Java book that doesn't at least go through Java 5, at ...
Ben I.'s user avatar
  • 32.9k
5 votes

Book recommendation on human "computers"

It is not clear to me what exactly OP is looking for, but one relevant book is: David Alan Grier, "When Computers Were Human", Princeton University Press 2005. The author served for several ...
njuffa's user avatar
  • 518
5 votes

Reference request for resource with difficult programming exercises

The International Olympiad in Informatics is an international competition for gifted young amateur programmers. The tasks from past editions are available online, including detailed problem ...
meriton's user avatar
  • 258
4 votes

Could you recommend books on concurrent programming?

Concurrent programming is easy, synchronisation is hard. Have a look at this video for an alternative to synchronisation: https://www.youtube.com/watch?v=2yXtZ8x7TXw When you have to synchronize Use ...
ctrl-alt-delor's user avatar
4 votes

Paper Books or eBooks?

Based on my experience, printed textbook is still the best learning materials. You'll gain maximum benefit for reading comprehension, recite and knowledge understanding from traditional paper based ...
Ardiansyah bin Mustar's user avatar
4 votes
Accepted

Paper Books or eBooks?

Cost can be a HUGE burden on a student or school with textbook prices being absolutely ridiculous. I think one has to consider how the student will actually be using the book(s). How many times does ...
Mike Zamansky's user avatar
4 votes
Accepted

Teaching OOP in Java, to students who already know Java

I'm going to jump the gun a bit here and make a suggestion with less than complete information. Assuming that the students have seen a fair amount of Java and its libraries and also assuming that the ...
Buffy's user avatar
  • 36k
4 votes

What non-programming book is vital for learning the CS mindset?

The timeless way of building — Christopher Alexander (https://www.patternlanguage.com/patterns/justsostory.html) This is a 3 volume book that includes A Pattern Language. This set of books is ...
ctrl-alt-delor's user avatar
4 votes

Textbooks: Yes, no, roll your own?

While I like and upped Buffy's answer, I think there's a bit of a pattern that I follow that I'd like to share. Unless hardware is specifically involved, or the course is heavy on theory, I prefer to ...
Gorchestopher H's user avatar
4 votes

Principles of Compiler Design v/s Compilers: Principles, Techniques and Tools by Aho, Ullman

Although it is not quite what you are asking, I deprecated these two books when teaching compiler design as many otherwise capable students are finding them tough going. I started to focus on more ...
Brian Tompsett - 汤莱恩's user avatar
4 votes

Operating System Concepts by Silberschatz and Galvin, how much down the edition timeline can I go to safely understand the core-concept

I don't know this book in particular, but I do know Computer Science text books in general, and offer this advice: Consider the title: Operating System Concepts. It is about basic and fundamental ...
Brian Tompsett - 汤莱恩's user avatar
4 votes

Best book and video lecture series to follow for an "object oriented programming" course for advanced undergraduates

Two books come to mind. Both build a project and you learn about object-oriented program design and testing. However, both assume at least a good grasp of basic Java. Nether will cover all of the ...
Fritz Sieker's user avatar
  • 1,133
4 votes

Book to substitute "Compilers: Principles, Techniques and Tools" by Ullman et. al. (popularly known as the red dragon book)

I last taught the Compiler course in 2008, that's a longtime with probably newer books have appeared. (ie sorry if the answer is somehow outdated) But I did had the same complains from the students, ...
ShAr's user avatar
  • 149
3 votes

Textbook on Optimization

My standard answer for this is the following, copied from another answer I've given here. If you want a thorough study of how to approach and develop algorithms, get a copy of: David Gries, The ...
Buffy's user avatar
  • 36k

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