Computer Science Collection Resources (27)

View
Selected filters:
  • MCO Computer Science
Database Design-2nd Edition
Conditions of Use:
No Strings Attached
Rating

Database Design - 2nd Edition covers database systems and database design concepts. ...

Database Design - 2nd Edition covers database systems and database design concepts. New to this edition are SQL info, additional examples, key terms and review exercises at the end of each chapter.

Subject:
Computer Science
Material Type:
Textbook
Provider:
BCcampus
Provider Set:
BCcampus Open Textbooks
Author:
Adrienne Watt
Nelson Eng
Artificial Intelligence
Conditions of Use:
Read the Fine Print
Rating

This course includes materials on AI programming, logic, search, game playing, machine ...

This course includes materials on AI programming, logic, search, game playing, machine learning, natural language understanding, and robotics, which will introduce the student to AI methods, tools, and techniques, their application to computational problems, and their contribution to understanding intelligence. The material is introductory; the readings cite many resources outside those assigned in this course, and students are encouraged to explore these resources to pursue topics of interest. Upon successful completion of this course, the student will be able to: Describe the major applications, topics, and research areas of artificial intelligence (AI), including search, machine learning, knowledge representation and inference, natural language processing, vision, and robotics; Apply basic techniques of AI in computational solutions to problems; Discuss the role of AI research areas in growing the understanding of human intelligence; Identify the boundaries of the capabilities of current AI systems. (Computer Science 405)

Subject:
Computer Science
Material Type:
Full Course
Reading
Syllabus
Textbook
Provider:
The Saylor Foundation
Cascading Style Sheets
Conditions of Use:
Remix and Share
Rating

This book is a guide to Cascading Style Sheets (CSS), a technique ...

This book is a guide to Cascading Style Sheets (CSS), a technique widely used in web pages including Wikipedia to describe their visual style and appearance. CSS can take HTML to new places creatively and functionally. Once you learn how to style mark-up, you can additionally learn JavaScript functions that make dynamic web pages.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Wikibooks
Compilers
Conditions of Use:
Read the Fine Print
Rating

This course introduces the compilation process, presenting foundational topics on formal languages ...

This course introduces the compilation process, presenting foundational topics on formal languages and outline each of the essential compiler steps: scanning, parsing, translation and semantic analysis, code generation, and optimization. Upon successful completion of this course, the student will be able to: describe the compilation process and explain the function of the components that comprise the structure of a compiler; apply concepts of formal languages and finite-state machines to the translation of computer languages; identify the compiler techniques, methods, and tools that are applicable to other software applications; describe the challenges and state-of-the-practice of compiler theory and practice. This free course may be completed online at any time. (Computer Science 304)

Subject:
Computer Science
Material Type:
Assessment
Full Course
Homework/Assignment
Lecture Notes
Reading
Syllabus
Textbook
Provider:
The Saylor Foundation
Computer Networking: Principles, Protocols, and Practice
Conditions of Use:
No Strings Attached
Rating

Computer Networking: Principles, Protocols, and Practice was written and submitted to the ...

Computer Networking: Principles, Protocols, and Practice was written and submitted to the Open Textbook Challenge by Dr. Olivier Bonaventure of the UniversitĄ_偀ŕ catholique de Louvain (UCL) in Louvain-la-Neuve, Belgium. He also serves as the Education Director of ACM SIGCOMM. Computer Networking has already been used by several universities around the world, including UCL.

Subject:
Computer Science
Material Type:
Full Course
Textbook
Provider:
The Saylor Foundation
Author:
Olivier Bonaventure
Cryptography
Conditions of Use:
Read the Fine Print
Rating

This course introduces cryptography by addressing topics such as ciphers that were ...

This course introduces cryptography by addressing topics such as ciphers that were used before World War II, block cipher algorithms, the advanced encryption standard for a symmetric-key encryption adopted by the U.S. government, MD5 and SHA-1 hash functions, and the message authentication code. The course will focus on public key cryptography (as exemplified by the RSA algorithm), elliptic curves, the Diffie-Hellman key exchange, and the elliptic curve discrete logarithm problem. The course concludes with key exchange methods, study signature schemes, and discussion of public key infrastructure. Note: It is strongly recommended that you complete an abstract algebra course (such as the Saylor FoundationĺÎĺ_ĺĚĺ_s MA231) before taking this course. Upon successful completion of this course, students will be able to: explain how symmetric and asymmetric key ciphers work; list and define cryptographyĺÎĺ_ĺĚĺ_s goals; list and define the most common classical ciphers; explain the workings of mechanical ciphers Enigma and Lorenz; describe the principles of substitution-permutation networks; describe the algorithms for data encryption and the advanced encryption standard; describe and use the MD5 and SHA-1 hash functions; explain the idea behind public key cryptography; use the RSA cryptography system by applying it to practical problems; test whether the large integer is prime with the mathematical tools presented in this course; define the elliptic curve and use it in cryptography; explain the Diffie-Hellman key exchange; describe the most common signature and autokey identity schemes; describe the conceptual workings of public key infrastructure. This free course may be completed online at any time. (Computer Science 409)

Subject:
Computer Science
Material Type:
Assessment
Full Course
Homework/Assignment
Lecture
Reading
Syllabus
Textbook
Provider:
The Saylor Foundation
A First Course in Electrical and Computer Engineering
Conditions of Use:
No Strings Attached
Rating

Electrical and computer engineering students take this in the second semester of ...

Electrical and computer engineering students take this in the second semester of their freshman year, just before their first circuits course. Students electing to take this course have completed one semester of calculus, computer programming, chemistry, and humanities. Concurrently with this course, students take physics and a second semester of calculus, as well as a second semester in the humanities.

Subject:
Computer Science
Engineering
Material Type:
Full Course
Textbook
Provider:
Rice University
Provider Set:
OpenStax CNX
Author:
Louis Scharf
Foundations of Computation
Conditions of Use:
Remix and Share
Rating

Foundations of Computation is a free textbook for a one-semester course in ...

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
How to Think Like a Computer Scientist: Learning with Python
Conditions of Use:
No Strings Attached
Rating

Python is a fun and extremely easy-to-use programming language that has steadily ...

Python is a fun and extremely easy-to-use programming language that has steadily gained in popularity over the last few years. Developed over ten years ago by Guido van Rossum, Python's simple syntax and overall feel is largely derived from ABC, a teaching language that was developed in the 1980's. However, Python was also created to solve real problems and it borrows a wide variety of features from programming languages such as C++, Java, Modula-3, and Scheme. Because of this, one of Python's most remarkable features is its broad appeal to professional software developers, scientists, researchers, artists, and educators. 278 page pdf file.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Green Tea Press
Author:
Allen B. Downey
Jeffrey Elkner
Introduction to the Modeling and Analysis of Complex Systems
Conditions of Use:
Remix and Share
Rating

Introduction to the Modeling and Analysis of Complex Systems introduces students to ...

Introduction to the Modeling and Analysis of Complex Systems introduces students to mathematical/computational modeling and analysis developed in the emerging interdisciplinary field of Complex Systems Science. Complex systems are systems made of a large number of microscopic components interacting with each other in nontrivial ways. Many real-world systems can be understood as complex systems, where critically important information resides in the relationships between the parts and not necessarily within the parts themselves. This textbook offers an accessible yet technically-oriented introduction to the modeling and analysis of complex systems. The topics covered include: fundamentals of modeling, basics of dynamical systems, discrete-time models, continuous-time models, bifurcations, chaos, cellular automata, continuous field models, static networks, dynamic networks, and agent-based models. Most of these topics are discussed in two chapters, one focusing on computational modeling and the other on mathematical analysis. This unique approach provides a comprehensive view of related concepts and techniques, and allows readers and instructors to flexibly choose relevant materials based on their objectives and needs. Python sample codes are provided for each modeling example.

Subject:
Applied Science
Computer Science
Material Type:
Activity/Lab
Textbook
Provider:
State University of New York
Provider Set:
OpenSUNY Textbooks
Author:
Hiroki Sayama, Binghamton University, State University of New York.
The Little Book of Semaphores
Conditions of Use:
Read the Fine Print
Rating

The Little Book of Semaphores is a free (in both senses of ...

The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming.In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems.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.

Subject:
Computer Science
Information Science
Material Type:
Textbook
Provider:
Green Tea Press
Author:
Allen B. Downey
The Missing Link: An Introduction to Web Development and Programming
Conditions of Use:
Remix and Share
Rating

Web development is an evolving amalgamation of languages that work in concert ...

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.

Subject:
Computer Science
Material Type:
Activity/Lab
Homework/Assignment
Textbook
Provider:
State University of New York
Provider Set:
OpenSUNY Textbooks
Author:
Michael Mendez
Network Applications Development
Conditions of Use:
Read the Fine Print
Rating

This course focuses on Object-Oriented Programming and programming techniques both at the ...

This course focuses on Object-Oriented Programming and programming techniques both at the application layer and the transport layer of the TCP/IP protocol stack. Additional concepts covered include text transport (moving text from one computer to another over the network), data transport, object transport, remote function calls, and, finally, class transport. Upon successful completion of this course, the student will be able to: code solutions using the fundamental concepts of object-oriented programming in Java; compare and contrast the usage of the Java APIs for each of the different network protocols with emphasis on the application and transport layers; explain how consistency and reusability are achieved in network processing from input through output; complete a variety of introductory to complex network programming tasks utilizing Java; solve problems that use XML to activate Java; compare and contrast object sharing with Java RMI and SOAP. This free course may be completed online at any time. (Computer Science 407)

Subject:
Computer Science
Material Type:
Full Course
Provider:
The Saylor Foundation
Non-Standard Computing
Conditions of Use:
Read the Fine Print
Rating

Inspired by reality-based computing from the natural world, this course covers several ...

Inspired by reality-based computing from the natural world, this course covers several unconventional computational methods and theories, such as quantum computation, DNA and molecular computation, genetic algorithms, self-organizing networks, and cellular automata. Note: for this course, it will be quite helpful to have a working knowledge of cellular biology (available from the Saylor FoundationĺÎĺ_ĺĚĺ_s BIO301). Upon successful completion of this course, the student will be able to: describe abstracted finite-memory program, a finite state automaton, and regular language; list and explain the characteristics of universal Turing transducers; describe the computational idea behind the DNA-based computer; explain the differences between bio-electronic, biochemical, and biomechanical computers; describe the functional principles of genetic algorithms and list their limitations; define the cellular automaton and the cellular neural network, and show examples of how they compute; describe how logic gates may be constructed for quantum bits; describe a simple model for a quantum computer based on a classical computer; describe an algorithm which makes use of quantum parallelism. This free course may be completed online at any time. (Computer Science 411)

Subject:
Computer Science
Material Type:
Full Course
Provider:
The Saylor Foundation
Open Data Structures
Conditions of Use:
No Strings Attached
Rating

The goal of this project is to free undergraduate computer science students ...

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.

Subject:
Computer Science
Material Type:
Textbook
Provider:
BCcampus
Provider Set:
BCcampus Open Textbooks
Author:
Pat Morin
Operating Systems and Middleware: Supporting Controlled Interaction
Conditions of Use:
Remix and Share
Rating

In this book, you will learn about all three kinds of interaction. ...

In this book, you will learn about all three kinds of interaction. In all three cases, interesting software techniques are needed in order to bring the computations into contact, yet keep them sufifciently at arm’s length that they don’t compromise each other’s reliability. The exciting challenge, then, is supporting controlled interaction. This includes support for computations that share a single computer and interact with one another, as your email and word processing programs do. It also includes support for data storage and network communication. This book describes how all these kinds of support are provided both by operating systems and by additional software layered on top of operating systems, which is known as middleware.

Subject:
Computer Science
Material Type:
Textbook
Provider:
University of Minnesota
Provider Set:
Open Textbook Library
Author:
Max Hailperin
Programming Languages
Conditions of Use:
Read the Fine Print
Rating

This course covers the entire family of programming languages, starting with an ...

This course covers the entire family of programming languages, starting with an introduction to programming languages in general and a discussion of the features and functionality that make up a modern programming language. Upon successful completion of this course, the student will be able to: identify the common concepts used to create programming languages; compare and contrast factors and commands that affect the programming state illustrate how execution ordering affects programming; identify the basic objects and constructs in Object-Oriented Programming; explain the characteristics of pure functional functions in functional programming; describe the structures and components utilized in logical programming. (Computer Science 404)

Subject:
Computer Science
Material Type:
Assessment
Lecture
Lecture Notes
Reading
Syllabus
Textbook
Provider:
The Saylor Foundation
Programming Languages: Application and Interpretation
Conditions of Use:
Remix and Share
Rating

Unlike some other textbooks, this one does not follow a top-down narrative. ...

Unlike some other textbooks, this one does not follow a top-down narrative. Rather it has the flow of a conversation, with backtracking. We will often build up programs incrementally, just as a pair of programmers would. We will include mistakes, not because I don’t know the answer, but because this is the best way for you to learn. Including mistakes makes it impossible for you to read passively: you must instead engage with the material, because you can never be sure of the veracity of what you’re reading.

The main programming language used in this book is Racket. Like with all operating systems, however, Racket actually supports a host of programming languages, so you must tell Racket which language you’re programming in.

This textbook has been used in classes at: Brown University, Cal Poly, Columbus State University, Northeastern University, NYU, Reed College, UC-San Diego, UC-Santa Cruz, University of Rhode Island, University of Utah, Westmont College, Williams College, and Worcester Polytechnic Institute.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Brown University
Author:
Shriram Krishnamurthi