Think Data Structures: Algorithms and Information Retrieval in Java
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=49&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=+Data+Structures%2C+Algorithms%2C++Information+Retrieval+in+Java"> Data Structures, Algorithms, Information Retrieval in Java</a>
This book is intended for college students in computer science and related fields, as well as professional software engineers, people training in software engineering, and people preparing for technical interviews. Before you start this book, you should know Java pretty well; in particular,
you should know how to define a new class that extends an existing class or implements an interface. If your Java is rusty, here are two books you might start with
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=39&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Allen+B.+Downey">Allen B. Downey</a>
https://open.umn.edu/opentextbooks
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=45&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Green+Tea+Press">Green Tea Press</a>
2016
Baihaqi
Creative Commons
PDF
English
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=51&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Textbooks">Textbooks</a>
How to think like a computer scientist
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=49&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=+computer+scientist"> computer scientist</a>
The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the
behavior of complex systems, form hypotheses, and test predictions. The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving
skills. That’s why this chapter is called “The way of the program.”
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=39&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Allen+B.+Downey">Allen B. Downey</a>
http://www.greenteapress.com/thinkcpp
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=45&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=+Green+Tea+Press"> Green Tea Press</a>
2012
Baihaqi
Creative Commons
PDF
English
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=51&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Textbook">Textbook</a>
Physical Modeling in MATLAB
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=49&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=MATLAB">MATLAB</a>
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=49&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Computer+Science">Computer Science</a>
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=49&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Mathematics">Mathematics</a>
Most books that use MATLAB are aimed at readers who know how to program. This book is for people who have never programmed before.
As a result, the order of presentation is unusual. The book starts with scalar values and works up to vectors and matrices very gradually. This approach is good for beginning programmers, because it is hard to understand composite objects until you understand basic programming semantics. But there are
problems:
• The MATLAB documentation is written in terms of matrices, and so are the error messages. To mitigate this problem, the book explains the necessary vocabulary early and deciphers some of the messages that beginners ﬁnd confusing.
• Many of the examples in the ﬁrst half of the book are not idiomatic MATLAB. I address this problem in the second half by translating the examples into a more standard style.
The book puts a lot of emphasis on functions, in part because they are an important mechanism for controlling program complexity, and also because they are useful for working with MATLAB tools like fzero and ode45.
I assume that readers know calculus, diﬀerential equations, and physics, but not linear algebra. I explain the math as I go along, but the descriptions might not be enough for someone who hasn’t seen the material before.
There are small exercises within each chapter, and a few larger exercises at the end of some chapters.
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=39&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Allen+B.+Downey">Allen B. Downey</a>
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=45&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Green+Tea+Press%0D%0A">Green Tea Press
</a>
Cut Rita Zahara
Creative Commons
<a href="/items/browse?advanced%5B0%5D%5Belement_id%5D=51&advanced%5B0%5D%5Btype%5D=is+exactly&advanced%5B0%5D%5Bterms%5D=Textbooks">Textbooks</a>