All resources in OpenWA Computer Science

Computer Science I - Version 1.3.7

(View Complete Item Description)

This textbook covers the traditional introductory Computer Science I topics but takes a unique approach. Topics are covered in a language-agnostic manner in the first part with supplemental parts that cover the same concepts in a specific language. The current version covers C, Java, and PHP. This textbook as been used in several Computer Science I sections over multiple years at the University of Nebraska-Lincoln.

Material Type: Textbook

Author: Chris Bourke

Java, Java, Java: Object-Oriented Problem Solving

(View Complete Item Description)

We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the “objects first” approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.

Material Type: Textbook

Authors: Ralph Morelli, Ralph Wade

Think Data Structures: Algorithms and Information Retrieval in Java

(View Complete Item Description)

Data structures and algorithms are among the most important inventions of the last 50 years, and they are fundamental tools software engineers need to know. But in my opinion, most of the books on these topics are too theoretical, too big, and too bottom-up: *Too theoretical: Mathematical analysis of algorithms is based on simplifying assumptions that limit its usefulness in practice. Many presentations of this topic gloss over the simplifications and focus on the math. In this book I present the most practical subset of this material and eliminate the rest. *Too big: Most books on these topics are at least 500 pages, and some are more than 1000. By focusing on the topics I think are most useful for software engineers, I kept this book under 250 pages. *Too bottom-up: Many data structures books focus on how data structures work (the implementations), with less about how to use them (the interfaces). In this book, I go “top down”, starting with the interfaces. Readers learn to use the structures in the Java Collections Framework before getting into the details of how they work. Finally, many present this material out of context and without motivation: it’s just one damn data structure after another! I try to alleviate the boredom by organizing the topics around an application—web search—that uses data structures extensively, and is an interesting and important topic in its own right. This application also motivates some topics that are not usually covered in an introductory data structures class, including persistent data structures, with Redis, and streaming algorithms. I have made difficult decisions about what to leave out, but I have made some compromises. I include a few topics that most readers will never use, but that they might be expected to know, possibly in a technical interview. For these topics, I present both the conventional wisdom as well as my reasons to be skeptical. This book also presents basic aspects of software engineering practice, including version control and unit testing. Each chapter ends with an exercise that allows readers to apply what they have learned. Each exercise includes automated tests that check the solution. And for most exercises, I present my solution at the beginning of the next chapter. 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. I assume that the reader knows Java at an intermediate level, but I explain some Java features along the way, and provide pointers to supplementary material. People who have read Think Java or Head First Java are prepared for this book.

Material Type: Textbook

Author: Allen Downey

Java with BlueJ

(View Complete Item Description)

This book is Part I of a two-part set that introduces the Java programminglanguage. The text assumes the student will be using the BlueJ developmentenvironment and provides some introductory BlueJ material. Our experiencehas been that BlueJ is easy to learn and provides a good programmingenvironment for the beginner programmer.

Material Type: Textbook

Author: Ron McFayden

Eloquent JavaScript: A Modern Introduction to Programming

(View Complete Item Description)

This book contains roughly three parts. The first 11 chapters discussthe JavaScript language itself. The next eight chapters are about webbrowsers and the way JavaScript is used to program them. Finally,two chapters are devoted to Node.js, another environment to programJavaScript in.Throughout the book, there are five project chapters, which describelarger example programs to give you a taste of real programming. Inorder of appearance, we will work through building an artificial life simulation,a programming language, a platform game, a paint program,and a dynamic website.

Material Type: Textbook

Author: Marijn Haverbeke.

Open Data Structures

(View Complete Item Description)

The goal of this project is to free undergraduate computer science students from having to pay for an introductory data structures book. I have decided to implement this goal by treating this book like an Open Source software project. The LATEX source, Java source, and build scripts for the book are available to download from the author’s website and also, more importantly, on a reliable source code management site.

Material Type: Textbook

Author: Pat Morin