Book picks similar to
Numerical Ecology with R by Daniel Borcard
statistics
programming
science
biology
Cultural Anthropology: An Applied Perspective
Gary P. Ferraro - 2007
This contemporary and student-relevant text gives you all the key material you need for your introductory course, plus it will show you that anthropology is for you! With real world applications of the principles and practices of anthropology, this book will help you learn to appreciate other cultures as well as your own. Apply what you learn in this course to those situations that you are likely to encounter in your personal and professional life. What can you do with anthropology today? Check out the real-life examples of cross-cultural misunderstandings and issues (in our popular "Cross-Cultural Miscues" features) to view 'culture at work.' Also, the book takes a look at specialized vocabularies as illustrated by "chickspeak" (the language of single, urban, upwardly mobile women), the war in Iraq, environmental degradation, and other contemporary topics.
Cracking the Coding Interview: 150 Programming Questions and Solutions
Gayle Laakmann McDowell - 2008
This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other advice.The full list of topics are as follows:The Interview ProcessThis section offers an overview on questions are selected and how you will be evaluated. What happens when you get a question wrong? When should you start preparing, and how? What language should you use? All these questions and more are answered.Behind the ScenesLearn what happens behind the scenes during your interview, how decisions really get made, who you interview with, and what they ask you. Companies covered include Google, Amazon, Yahoo, Microsoft, Apple and Facebook.Special SituationsThis section explains the process for experience candidates, Program Managers, Dev Managers, Testers / SDETs, and more. Learn what your interviewers are looking for and how much code you need to know.Before the InterviewIn order to ace the interview, you first need to get an interview. This section describes what a software engineer's resume should look like and what you should be doing well before your interview.Behavioral PreparationAlthough most of a software engineering interview will be technical, behavioral questions matter too. This section covers how to prepare for behavioral questions and how to give strong, structured responses.Technical Questions (+ 5 Algorithm Approaches)This section covers how to prepare for technical questions (without wasting your time) and teaches actionable ways to solve the trickiest algorithm problems. It also teaches you what exactly "good coding" is when it comes to an interview.150 Programming Questions and AnswersThis section forms the bulk of the book. Each section opens with a discussion of the core knowledge and strategies to tackle this type of question, diving into exactly how you break down and solve it. Topics covered include• Arrays and Strings• Linked Lists• Stacks and Queues• Trees and Graphs• Bit Manipulation• Brain Teasers• Mathematics and Probability• Object-Oriented Design• Recursion and Dynamic Programming• Sorting and Searching• Scalability and Memory Limits• Testing• C and C++• Java• Databases• Threads and LocksFor the widest degree of readability, the solutions are almost entirely written with Java (with the exception of C / C++ questions). A link is provided with the book so that you can download, compile, and play with the solutions yourself.Changes from the Fourth Edition: The fifth edition includes over 200 pages of new content, bringing the book from 300 pages to over 500 pages. Major revisions were done to almost every solution, including a number of alternate solutions added. The introductory chapters were massively expanded, as were the opening of each of the chapters under Technical Questions. In addition, 24 new questions were added.Cracking the Coding Interview, Fifth Edition is the most expansive, detailed guide on how to ace your software development / programming interviews.
How to Solve It: A New Aspect of Mathematical Method
George Pólya - 1944
Polya, How to Solve It will show anyone in any field how to think straight. In lucid and appealing prose, Polya reveals how the mathematical method of demonstrating a proof or finding an unknown can be of help in attacking any problem that can be reasoned out--from building a bridge to winning a game of anagrams. Generations of readers have relished Polya's deft--indeed, brilliant--instructions on stripping away irrelevancies and going straight to the heart of the problem.
Elementary Number Theory and Its Applications
Kenneth H. Rosen - 1984
The Fourth Edition builds on this strength with new examples, additional applications and increased cryptology coverage. Up-to-date information on the latest discoveries is included.Elementary Number Theory and Its Applications provides a diverse group of exercises, including basic exercises designed to help students develop skills, challenging exercises and computer projects. In addition to years of use and professor feedback, the fourth edition of this text has been thoroughly accuracy checked to ensure the quality of the mathematical content and the exercises.
Amazon Elastic Compute Cloud (EC2) User Guide
Amazon Web Services - 2012
This is official Amazon Web Services (AWS) documentation for Amazon Compute Cloud (Amazon EC2).This guide explains the infrastructure provided by the Amazon EC2 web service, and steps you through how to configure and manage your virtual servers using the AWS Management Console (an easy-to-use graphical interface), the Amazon EC2 API, or web tools and utilities.Amazon EC2 provides resizable computing capacity—literally, server instances in Amazon's data centers—that you use to build and host your software systems.
The Theoretical Minimum: What You Need to Know to Start Doing Physics
Leonard Susskind - 2013
In this unconventional introduction, physicist Leonard Susskind and hacker-scientist George Hrabovsky offer a first course in physics and associated math for the ardent amateur. Unlike most popular physics books—which give readers a taste of what physicists know but shy away from equations or math—Susskind and Hrabovsky actually teach the skills you need to do physics, beginning with classical mechanics, yourself. Based on Susskind's enormously popular Stanford University-based (and YouTube-featured) continuing-education course, the authors cover the minimum—the theoretical minimum of the title—that readers need to master to study more advanced topics.An alternative to the conventional go-to-college method, The Theoretical Minimum provides a tool kit for amateur scientists to learn physics at their own pace.
Understanding Human Behavior and the Social Environment
Charles Zastrow - 1987
Now available with a personalized online learning plan, this social work-specific book looks at lifespan through the lens of social work theory and practice. The authors use an empowerment approach to cover human development and behavior theories within the context of family, organizational, and community systems. Using a chronological lifespan approach, the authors present separate chapters on biological, psychological, and social impacts at the different lifespan stages with an emphasis on strengths and empowerment.
Interpersonal Communication
Kory Floyd - 2011
"Interpersonal Communication, 2e" demonstrates how effective interpersonal communication can make students' lives better. With careful consideration given to the impact of computer-mediated communication, the program reflects the rapid changes of the modern world in which today's students live and interact. The program also helps students understand and build interpersonal skills and choices for their academic, personal, and professional lives.
Data Structures Using C++
D.S. Malik - 2003
D.S. Malik is ideal for a one-semester course focused on data structures. Clearly written with the student in mind, this text focuses on Data Structures and includes advanced topics in C++ such as Linked Lists and the Standard Template Library (STL). This student-friendly text features abundant Programming Examples and extensive use of visual diagrams to reinforce difficult topics. Students will find Dr. Malik's use of complete programming code and clear display of syntax, explanation, and example easy to read and conducive to learning.
Social Statistics for a Diverse Society
Chava Frankfort-Nachmias - 1996
The authors help students learn key sociological concepts through real research examples related to the dynamic interplay of race, class, gender, and other social variables.
Modern Operating Systems
Andrew S. Tanenbaum - 1992
What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson
Python Machine Learning
Sebastian Raschka - 2015
We are living in an age where data comes in abundance, and thanks to the self-learning algorithms from the field of machine learning, we can turn this data into knowledge. Automated speech recognition on our smart phones, web search engines, e-mail spam filters, the recommendation systems of our favorite movie streaming services – machine learning makes it all possible.Thanks to the many powerful open-source libraries that have been developed in recent years, machine learning is now right at our fingertips. Python provides the perfect environment to build machine learning systems productively.This book will teach you the fundamentals of machine learning and how to utilize these in real-world applications using Python. Step-by-step, you will expand your skill set with the best practices for transforming raw data into useful information, developing learning algorithms efficiently, and evaluating results.You will discover the different problem categories that machine learning can solve and explore how to classify objects, predict continuous outcomes with regression analysis, and find hidden structures in data via clustering. You will build your own machine learning system for sentiment analysis and finally, learn how to embed your model into a web app to share with the world
Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People
Aditya Y. Bhargava - 2015
The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for you. This fully-illustrated and engaging guide makes it easy for you to learn how to use algorithms effectively in your own programs.Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply common algorithms to the practical problems you face in day-to-day life as a programmer. You'll start with problems like sorting and searching. As you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression or artificial intelligence. Whether you're writing business software, video games, mobile apps, or system utilities, you'll learn algorithmic techniques for solving problems that you thought were out of your grasp. For example, you'll be able to:Write a spell checker using graph algorithmsUnderstand how data compression works using Huffman codingIdentify problems that take too long to solve with naive algorithms, and attack them with algorithms that give you an approximate answer insteadEach carefully-presented example includes helpful diagrams and fully-annotated code samples in Python. By the end of this book, you will know some of the most widely applicable algorithms as well as how and when to use them.
An Introduction to Functional Programming Through Lambda Calculus
Greg Michaelson - 1989
This well-respected text offers an accessible introduction to functional programming concepts and techniques for students of mathematics and computer science. The treatment is as nontechnical as possible, and it assumes no prior knowledge of mathematics or functional programming. Cogent examples illuminate the central ideas, and numerous exercises appear throughout the text, offering reinforcement of key concepts. All problems feature complete solutions.
Linear Algebra and Its Applications
Gilbert Strang - 1976
While the mathematics is there, the effort is not all concentrated on proofs. Strang's emphasis is on understanding. He explains concepts, rather than deduces. This book is written in an informal and personal style and teaches real mathematics. The gears change in Chapter 2 as students reach the introduction of vector spaces. Throughout the book, the theory is motivated and reinforced by genuine applications, allowing pure mathematicians to teach applied mathematics.