Computer Science

23 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
Delftse Foundations of Computation
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Delftse Foundations of Computation is a textbook for a one quarter introductory course in theoretical computer science. It includes topics from propositional and predicate logic, proof techniques, set theory and the theory of computation, along with practical applications to computer science. It has no prerequisites other than a general familiarity with computer programming.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Delft University of Technology
Author:
Neil Yorke-Smith
Stefan Hugtenburg
Date Added:
12/05/2019
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 Computer Science
Unrestricted Use
CC BY
Rating

This course introduces learners to basics notions in Computer Science and computing. It covers topics such as the development of history of computers and computing; the characteristics of computer systems; the organization of a computer system; the Von Neumann architecture, the history of the Internet; basic software applications. It is designed for learners with little or no experience in computer use

Subject:
Computer Science
Material Type:
Full Course
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
Dessalegn Mequanint
Date Added:
12/11/2020
Introduction to Computer Science
Conditional Remix & Share Permitted
CC BY-SA
Rating

Dear student! You are starting to learn about computation and its purpose. This course covers the same materials as an introductory class for undergraduate computer science majors. Its curriculum, which includes software, hardware and algorithms, resembles that of a one- or two-semester first-year college course or the high school Advanced Placement (AP) Computer Science. It does not require a formal computer science background.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Wikibooks
Date Added:
06/15/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
Open Data Structures: An Introduction
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. Focusing on a mathematically rigorous approach that is fast, practical, and efficient, Morin clearly and briskly presents instruction along with source code.

Analyzed and implemented in Java, the data structures presented in the book include stacks, queues, deques, and lists implemented as arrays and linked-lists; space-efficient implementations of lists; skip lists; hash tables and hash codes; binary search trees including treaps, scapegoat trees, and red-black trees; integer searching structures including binary tries, x-fast tries, and y-fast tries; heaps, including implicit binary heaps and randomized meldable heaps; graphs, including adjacency matrix and adjacency list representations; and B-trees.

A modern treatment of an essential computer science topic, Open Data Structures is a measured balance between classical topics and state-of-the art structures that will serve the needs of all undergraduate students or self-directed learners.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Athabasca University
Author:
Pat Morin
Date Added:
12/05/2019
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
Spiral Workbook for Discrete Mathematics
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

This is a text that covers the standard topics in a sophomore-level course in discrete mathematics: logic, sets, proof techniques, basic number theory, functions, relations, and elementary combinatorics, with an emphasis on motivation. It explains and clarifies the unwritten conventions in mathematics, and guides the students through a detailed discussion on how a proof is revised from its draft to a final polished form. Hands-on exercises help students understand a concept soon after learning it. The text adopts a spiral approach: many topics are revisited multiple times, sometimes from a different perspective or at a higher level of complexity. The goal is to slowly develop students’ problem-solving and writing skills.

Subject:
Mathematics
Functions
Numbers and Operations
Material Type:
Textbook
Provider:
State University of New York
Provider Set:
OpenSUNY Textbooks
Author:
Harris Kwong, SUNY Fredonia
Date Added:
11/06/2015
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