Computer Science (Faculty Reviewed)

16 affiliated resources

Search Resources

View
Selected filters:
Applied Discrete Structures
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

The wide range of examples in the text are meant to augment the "favorite examples" that most instructors have for teaching the topcs in discrete mathematics.

To provide diagnostic help and encouragement, we have included solutions and/or hints to the odd-numbered exercises. These solutions include detailed answers whenever warranted and complete proofs, not just terse outlines of proofs.

Our use of standard terminology and notation makes Applied Discrete Structures a valuable reference book for future courses. Although many advanced books have a short review of elementary topics, they cannot be complete.

The text is divided into lecture-length sections, facilitating the organization of an instructor's presentation.Topics are presented in such a way that students' understanding can be monitored through thought-provoking exercises. The exercises require an understanding of the topics and how they are interrelated, not just a familiarity with the key words.

An Instructor's Guide is available to any instructor who uses the text.

Subject:
Mathematics
Material Type:
Textbook
Author:
Al Doerr
Ken Levasseurr
Date Added:
01/01/2017
Blueprints: Creating, Describing, and Implementing Designs for Larger-Scale Software Projects
Conditional Remix & Share Permitted
CC BY-SA
Rating

Blueprints is a concise yet comprehensive coverage of Object-Oriented Analysis and Design concepts, suitable for a second programming course in Computer Science. It introduces and teaches application development in a command-line environment, and assumes basic expertise with the Java programming language.

Table of Contents
1 Getting off the ground
2 The “software crisis”
3 Classes and objects
4 Memory matters
5 Exceptions
6 UML class diagrams
7 The Singleton pattern
8 Java odds ’n’ ends
9 UML sequence diagrams
10 Persistence and hydration
11 Inheritance (1 of 2)
12 Inheritance (2 of 2)
13 The Factory pattern
14 Team software development
15 Doing design (1 of 2)
16 Doing design (2 of 2)
17 Use cases
18 Documenting an API

Subject:
Computer Science
Material Type:
Textbook
Author:
Stephen Davies
Date Added:
09/08/2021
Computer Science I - Version 1.3.7
Conditional Remix & Share Permitted
CC BY-SA
Rating

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.

Table of Contents
I. The C Programming Language
II. The Java Programming Language
III. The PHP Programming Language

Subject:
Computer Science
Material Type:
Textbook
Author:
Chris Bourke
Date Added:
09/08/2021
Discrete Mathematics: An Open Introduction
Conditional Remix & Share Permitted
CC BY-SA
Rating

Discrete Mathematics: An Open Introduction is a free, open source textbook appropriate for a first or second year undergraduate course for math majors, especially those who will go on to teach. The textbook has been developed while teaching the Discrete Mathematics course at the University of Northern Colorado. Primitive versions were used as the primary textbook for that course since Spring 2013, and have been used by other instructors as a free additional resource. Since then it has been used as the primary text for this course at UNC, as well as at other institutions.

Subject:
Mathematics
Material Type:
Textbook
Author:
Oscar Levin
Date Added:
12/05/2019
Discrete Mathematics, Vol. 1
Conditional Remix & Share Permitted
CC BY-SA
Rating

A Cool Brisk Walk Through Discrete Mathematics - and its companion site "allthemath" - are completely-and-forever-free-and-open-source educational materials dedicated to the mathematics that emerging computer science practitioners actually need to know.

Subject:
Computer Science
Mathematics
Material Type:
Lecture
Textbook
Author:
Stephen Davies
Date Added:
06/29/2020
Eloquent JavaScript: A Modern Introduction to Programming
Conditional Remix & Share Permitted
CC BY-NC
Rating

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.

Subject:
Computer Science
Material Type:
Textbook
Author:
Marijn Haverbeke.
Date Added:
12/05/2019
Foundations of Computation
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Foundations of Computation is a free textbook for a one-semester course in theoretical computer science. It has been used for several years in a course at Hobart and William Smith Colleges. The course has no prerequisites other than introductory computer programming. The first half of the course covers material on logic, sets, and functions that would often be taught in a course in discrete mathematics. The second part covers material on automata, formal languages, and grammar that would ordinarily be encountered in an upper level course in theoretical computer science.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Hobart and William Smith Colleges
Author:
Carol Critchlow, David Eck
Date Added:
12/05/2019
Introduction to Programming using Fortran 95/2003/2008
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Computers are everywhere in our daily lives. Between the desktop, laptop, phone, bank, and vehicle, it is difficult to completely get away from computers. It only makes sense to learn a little about how a computer really works.This text provides an introduction to programming and problem solving using the Fortran 95/2003/2008 programming language. This introduction is geared for non-computer science majors. The primary focus is on an introduction to problem solving and algorithm development. As such, many details of the Fortran 95/2003/2008 language are omitted.

Subject:
Computer Science
Material Type:
Textbook
Author:
Ed Jorgensen
Date Added:
12/05/2019
Object Oriented Programming
Unrestricted Use
CC BY
Rating

Object-oriented programming (OOP) has become exceedingly popular in the past few years. Software producers rush to release object oriented versions of their products. This module will introduce you to Introduction to object oriented programming , objects, classes, inheritance, interfaces, packages and Libraries and Handling of Exception. Each discussion focuses on how these concepts relate to the real world, while simultaneously providing an introduction to the syntax of the Java programming language.

Subject:
Computer Science
Material Type:
Module
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
Lucy Gitau
Date Added:
12/11/2020
Programming Fundamentals - A Modular Structured Approach using C++
Unrestricted Use
CC BY
Rating

Programming Fundamentals - A Modular Structured Approach using C++ is written by Kenneth Leroy Busbee, a faculty member at Houston Community College in Houston, Texas. The materials used in this textbook/collection were developed by the author and others as independent modules for publication within the Connexions environment. Programming fundamentals are often divided into three college courses: Modular/Structured, Object Oriented and Data Structures. This textbook/collection covers the first of those three courses.

Subject:
Computer Science
Material Type:
Full Course
Provider:
Rice University
Provider Set:
OpenStax CNX
Author:
Kenneth Leroy Busbee
Date Added:
01/10/2013
Think Data Structures: Algorithms and Information Retrieval in Java
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

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.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Green Tea Press
Author:
Allen Downey
Date Added:
01/01/2016
Think Java: How to Think Like a Computer Scientist
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Think Java is an introduction to Java programming for beginners. It is tailored for students preparing for the Computer Science Advanced Placement (AP) Exam, but it is for anyone who wants to learn Java.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Green Tea Press
Author:
Allen B. Downey
Chris Mayfield
Date Added:
01/01/2012
Think Python 2nd Edition
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

The goal of this book is to teach you to think like a computer scientist. This way of thinking combines 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.

Subject:
Computer Science
Material Type:
Primary Source
Textbook
Provider:
Green Tea Press
Author:
Allen B. Downey
Date Added:
12/05/2019
Think Raku: How to Think Like a Computer Scientist
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Think Raku is an introduction to computer science and programming intended for people with little or no experience.

The aim of this book is not primarily to teach Raku, but instead to teach the art of programming, using the Raku language. After having completed this book, you should hopefully be able to write programs to solve relatively difficult problems in Raku, but my main aim is to teach computer science, software programming, and problem-solving rather than solely to teach the Raku language itself.

Think Raku is a free book available under a Creative Commons license. Readers are free to copy and distribute the text; they are also free to modify it, which allows them to adapt the book to different needs, and to help develop new material.

Table of Contents
Preface
I Starting with the Basics
1 The way of the program
2 Variables, Expressions and Statements
3 Functions
4 Loops, Conditionals and Recursion
5 Fruitful Subroutines
6 Iteration
7 Strings
8 Case study: Word Play
9 Arrays and Lists
10 Hashes
11 Case study: Data Structure Selection
II Moving Forward
12 Classes and Objects
13 Regexes and Grammar
14 Functional Programming in Raku
15 Some Final Advice

Subject:
Computer Science
Material Type:
Textbook
Author:
About The Contributors
Date Added:
09/08/2021