Created by Katherine St. John, CSci 127 Introduction to Computer Science "presents an overview of computer science (CS) with an emphasis on problem-solving and computational thinking through 'coding': computer programming for beginners. Other topics include: organization of hardware, software, and how information is structured on contemporary computing devices."
The CSci 127 OER courseware includes:
Created by Professor Stewart Weiss, the CSci 335 Software Design and Analysis II OER courseware includes:
From the Preface:
"What you are reading is the first of what I hope to be many everimproving iterations of a useful C++ textbook. We’ve gone fairly quickly from whim to print on an all-volunteer basis, and as a result, there are many things that I’d add and change if I had an infinite amount of time in my schedule. The vast majority of the contents were written in less than 36 hours by 25 students (mostly freshmen!) at Norwich University over a long weekend. Some of it is mine, and some was added by our crack team of technical editors as we translated sleep-deprived poor grammar into sleep-deprived better grammar.
Where it goes from here is mostly up to you! If there’s a section that’s missing or in need of clarification, please take a bit of time and make those changes. If you don’t want to bother yourself with the GitHub repository, send me your additions and modifications directly."
From the Site:
"To understand how computers work, we will want to understand the fundamentals of digital circuits. As it turns out, digital circuits are built on the foundation of basic logic."
From the Introduction:
"This tutorial is for those people who want to learn programming in C++ and do not necessarily have any previous knowledge of other programming languages. Of course any knowledge of other programming languages or any general computer skill can be useful to better understand this tutorial, although it is not essential. It is also suitable for those who need a little update on the new features the language has acquired from the latest standards.
If you are familiar with the C language, you can take the first 3 parts of this tutorial as a review of concepts, since they mainly explain the C part of C++. There are slight differences in the C++ syntax for some C features, so I recommend you its reading anyway.
The 4th part describes object-oriented programming.
The 5th part mostly describes the new features introduced by ANSI-C++ standard. "
The Missing Link: An Introduction to Web Development
From the Description:
"Web development is an evolving amalgamation of languages that work in concert to receive, modify, and deliver information between parties using the Internet as a mechanism of delivery. While it is easy to describe conceptually, implementation is accompanied by an overwhelming variety of languages, platforms, templates, frameworks, guidelines, and standards. Navigating a project from concept to completion often requires more than mastery of one or two complementing languages, meaning today’s developers need both breadth, and depth, of knowledge to be effective. This text provides the developer with an understanding of the various elements of web development by focusing on the concepts and fundamentals through the examples within, providing a foundation that allows easier transition to other languages and a better understanding of how to approach their work. The reader will be introduced to topics in a manner that follows most project development methods, from initial conceptualization and design through front end development, back end development, and introducing additional concepts like accessibility and security, while focusing on responsive design techniques. Each section of the text includes opportunities to practice the material and assess increased knowledge after examining the topics. "
From the Introduction:
"Why learn the basics of programming using robots instead of more traditional method? For the last 50 years mainstream computer science has centered on the manipulation of abstract digital information. Programming for devices that interact with the physical world has always been an area of specialization for individuals that have already run the gauntlet of abstract information-based computer science. In recent years, we have seen a proliferation of processing devices that collect and manage information from their real-time environments via some physical interface component–among them, anti-lock brakes, Mars rovers, tele-surgery, artificial limbs, and even iPods. As these devices become ubiquitous, a liberally educated person should have some familiarity with the ways in which such devices work–their capabilities and limitations. "
Computer Science 2.0
from BC Campus
From the Introduction:
"Programming is not a “spectator sport”. It is something you do, something you participate in.< br /> This book is meant to provide [students] with an interactive experience as you learn to program. You can read the text, watch videos, and write and execute Python code. In addition to simply executing code, there is a unique feature called codelens that allows you to control the flow of execution in order to gain a better understanding of how the program works."
See the Instructor's Guide for more information.
Computer Networking: Principles, Protocols and Practice
From the Preface:
"This open textbook aims to fill the gap between the open-source implementations and the open-source network specifications by providing a detailed but pedagogical description of the key principles that guide the operation of the Internet. The book is released under a creative commons licence. Such an open-source license is motivated by two reasons. The first is that we hope that this will allow many students to use the book to learn computer networks. The second is that I hope that other teachers will reuse, adapt and improve it. Time will tell if it is possible to build a community of contributors to improve and develop the book further. As a starting point, the first release contains all the material for a one-semester first upper undergraduate or a graduate networking course."
Computer Science | MIT Open CourseWare makes available course packages for both undergraduate and graduate study created by MIT Chemistry Department faculty, including: