Start Here
Explore Avila

OER | Computer Science

On this page you will find OER Computer Science textbooks along with supplemental materials and a few lecture videos.  

The purpose of these discipline specific pages is to display content that might be of interest to faculty who are considering adopting open educational resources for use in their classes. The nature of open educational resources is very collaborative and it is in that spirit that we encourage any comments about the content featured on this page or recommendations of content that are not already listed here. 

Textbooks

Think OS: A Brief Introduction to Operating Systems -Allen B. Downey

In many computer science programs, Operating Systems is an advanced topic. By the time students take it, they usually know how to program in C, and they have probably taken a class in Computer Architecture. Usually the goal of the class is to expose students to the design and implementation of operating systems, with the implied assumption that some of them will do research in this area, or write part of an OS. This book does not assume that you have studied Computer Architecture. As we go along, I will explain what we need. -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

Think Python: How to Think Like a Computer Scientist- Alex B. Downey

Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming are divided into a sequence of smaller steps and introduced over the course of several chapters. Some examples and exercises are based on Swampy, a Python package written by the author to demonstrate aspects of software design, and to give readers a chance to experiment with simple graphics and animation. -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

 

 Think Java: How to Think Like a Computer Scientist - Alex B. Dowey

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. Think Java is concise. It uses a subset of Java that lets students work on interesting projects without getting bogged down in the details of Java.  -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

 

 Think C++: How to Think Like a Computer Scientist  -Allen B. Downey

The single most important skill for a computer scientist is problem solving. The goal of this book is to teach you to think like a computer scientist. Of course, the other goal of this book is to prepare you for the Computer Science AP Exam. We may not take the most direct approach to that goal, though. For example, there are not many exercises in this book that are similar to the AP questions. On the other hand, if you understand the concepts in this book, along with the details of programming in C++, you will have all the tools you need to do well on the exam.

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

 Think Ocaml: How to Think Like a Functional Programmer  -Allen B. Downey, Nicholas Monje

How to Think Like a Computer Scientist is an introductory programming textbook based on the OCaml language. It is a modified version of Think Pythonby Allen Downey. It is intended for newcomers to programming and also those who know some programming but want to learn programming in the function-oriented paradigm, or those who simply want to learn OCaml.

Authors:

Allen B. Downey, Ph.D., Computer Science, Olin College

Nicholas Monje

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

 

How to Think Like a Computer Scientist: Learning with Python  -Allen B. Downey

How to Think... is an introduction to programming using Python, one of the best languages for beginners. -Allen B. Downey

Authors:

Allen B. Downey, Ph.D., Computer Science, Olin College

Jeff Elkner, Northern Virginia Community College

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,

 Think Complexity: Exploring Complexity Science with Python  -Allen B. Downey

An introduction to algorithms and data structures in Python, including graphs and arrays, and complexity science, which includes small world graphs, scale-free networks, cellular automata, self-organized criticality, fractals, and agent-based models. -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

 

 The Little Book of Semaphores -Allen B. Downey

The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own. The book covers the classical problems, including "Readers-writers," "Producer-consumer", and "Dining Philosophers." In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invited to create and submit new problems. -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

 

Physical Modeling in MATLAB

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.  -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

 Learning Perl the Hard Way -Allen B. Downey

This book if for people who already know how to program in another language, but who do not already know Perl. This book spends little time on the basics and emphasizes good programming style in Perl. Additionally, this text focuses on object-oriented Perl programming. 

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

 

Operating Systems and Middleware: Supporting Controlled Interaction -Max Hailperin

This book is intended for upper-level computer science students who want to understand how contemporary operating systems and middleware work. In this book you will find many forms of balance. The high-level application programmer's view, focused on the services that system software provides, is balanced with a lower-level perspective, focused on the mechanisms used to provide those services. Timeless concepts are balanced with concrete examples of how those concepts are embodied in a range of currently popular systems.

Author:

Max Hailperin Ph. D., Computer Science, Gustavus Adolphus College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

Open Textbook Collections

Find more Computer Science textbooks in these collections

 

 

Open Textbook Library

The Open Textbook Library is a collection of open textbooks that features reviews written by professors.  A project of the University of Minnesota, The Open Textbook Library provides a review rubric for faculty to use when evaluating textbooks and displays them for the benefit of potential adopters. 

College Open Textbooks

The College Open Textbooks Collaborative, a collection of twenty-nine educational non-profit and for-profit organizations, affiliated with more than 200 colleges, is focused on driving awareness and adoptions of open textbooks to more than 2000 community and other two-year colleges. This includes providing training for instructors adopting open resources, peer reviews of open textbooks, and mentoring online professional networks that support for authors opening their resources, and other services.  -College Open Textbooks

BC Campus Open Ed

The B.C. Open Textbook Project is funded by the BC Ministry of Advanced Education, and BCcampus is tasked with managing it. A goal of the Project is to provide flexible and affordable access to higher education resources in B.C. by making available 40 openly-licensed textbooks. These texts will be available for selection by B.C. faculty, and digital versions of the texts will be free of charge to students. For those who prefer a printed copy, this format will also be available on demand for a low cost. -BC Campus

  • How to Design Programs, Second Edition - NEU

    This is an introductory textbook that uses DrRacket language. The purpose of this book is to introduce readers without prior experience to the systematic design of programs. In tandem, it presents a symbolic view of computation, a method that explains how the application of a program to data works.

MERLOT

MERLOT is a collection of online resources curated by a community of faculty, staff, and students of higher education.  This subset of the MERLOT collection features openly licensed textbooks for use by students and faculty.  MERLOT allows its users to rate materials and comment on specific resources.

 MIT OCW Bookshelf
This is a collection complete textbooks and textbook-like notes that can be found within all of the open courseware featured in MIT's open courseware site.  As one might expect from MIT, many of the textbooks featured here focus on Mathematics, Computer Science, and Engineering. 

Supplemental Materials

Think Stats: Probability and Statistics for Programmers -Allen B. Downey

Think Stats emphasizes simple techniques you can use to explore real data sets and answer interesting questions. The book presents a case study using data from the National Institutes of Health. Readers are encouraged to work on a project with real datasets. if you have basic skills in Python, you can use them to learn concepts in probability and statistics. Think Stats is based on a Python library for probability distributions (PMFs and CDFs). Many of the exercises use short programs to run experiments and help readers develop understanding. -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License

 Academic Earth Computer Science Courses

A large selection of computer science courses on a variety of topics.

Computer Science -edX

Enroll in the latest computer science courses covering important topics in artificial intelligence, cyber security, software engineering, and big data. Add a portfolio of programming skills or get an overview of the field with Harvard University’s Introduction to Computer Science, a free course that you can start today.

Crash Course Series: Computer Science

In this series, you will trace the origins of our modern computers, take a closer look at the ideas that gave us our current hardware and software, discuss how and why our smart devices just keep getting smarter, and even look towards the future! Computers fill a crucial role in the function of our society, and it's our hope that over the course of this series you will gain a better understanding of how far computers have taken us and how far they may carry us into the future.

Future Learn - Tech & Coding Courses

Learn to code or develop your programming skills with online coding courses - from beginner to advanced level. Explore technology trends - like big data, cyber security, data science or digital marketing - with flexible courses from top universities.

Khan Academy - Computer Programming

Videos covering the fundamentals of programming using JavaScript.

Khan Academy - Cryptography and Information Theory

Videos covering cryptography (how we protect secret information) and information theory (how we encode and compress information).

C++ Reference

In order to better communicate to our computers what exactly it is we want them to do, we've developed a wide range of programming languages to make the communication process easier.

 

Code Academy

Interactive courses on JavaScript, HTML/CSS, PHP, Python, Ruby, APIs created by members of the community.

 

JavaScript Cheat Sheet

This resource is a beginner’s essential JavaScript Cheat Sheet that provides help with JavaScript basics, variables in JavaScript, operators, functions, and other useful codes to know to help learn how to build a website.

 

Stack Exchange

Stack Exchange network consists of 133 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

 

W3Schools

W3Schools is a web developers site, with tutorials and references on web development languages such as HTML, CSS, JavaScript, PHP, SQL, W3.CSS, and Bootstrap, covering most aspects of web programming.

The World Wide Web Consortium (W3C)

W3C's primary activity is to develop protocols and guidelines that ensure long-term growth for the Web. W3C's standards define key parts of what makes the World Wide Web work.

Think Bayes: Bayesian Statistics in Python -Allen B. Downey

Think Bayes is an introduction to Bayesian statistics using computational methods. Most books on Bayesian statistics use mathematical notation and present ideas in terms of mathematical concepts like calculus. This book uses Python code instead of math, and discrete approximations instead of continuous mathematics. As a result, what would be an integral in a math book becomes a summation, and most operations on probability distributions are simple loops. -Allen B. Downey

Author:

Allen B. Downey, Ph.D., Computer Science, Olin College

This text is licensed under a Creative Commons Attribution-NonCommercial 3.0 License.

License

All original content on this page is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. It is not necessary to seek permission to reuse the content, although – per the terms of the license – attribution is required.

Attribution: "Content from University of Oklahoma Libraries."

Attribution: "Content from Humboldt State University Library."

All linked-to content adheres to its respective license.

Creative Commons License

The Avila Promise

  • Lower Tuition Rate
  • Tuition Protection
  • 4-Year Graduation Guarantee
  • Internship or Research Guarantee
  • up to $1,000 Travel Award

 

That’s the Avila Promise.

Arts at Avila: The Diary of Anne Frank

the diary of anne frank

the diary of anne frank
The Diary of Anne Frank 
By Frances Goodrich and Albert Hackett
November 15, 16, 17 & 18

Learn more about The Diary of Anne Frank > 

Transfer to Avila this Spring

transfer to avila this spring

transfer to avila this spring

  • Scholarships
  • Travel Award
  • Books & Campus Fees included        
  • Transfer-friendly

Learn more >

Graduate Studies: Attend an Upcoming Psychology Information Session

graduate psychology

graduate psychology information session

If you are interested in pursuing a graduate degree in psychology, stop by an upcoming Graduate Psychology Coffee Talk on November 28. Let us treat you to a beverage and learn more about our program offerings.

RSVP now >

AU News

Avila University - SOAR 2018
×

Reach Your
Full Potential

Want to know more about Avila University and the Avila Promise?
Fill out the form below.

Clicking the "Request Information" button below constitutes your express written consent to be called and/or texted by Avila University at the number you provided, regarding furthering your education. You understand that these calls may be generated using automated technology.