Search Resources

263 Results

View
Selected filters:
  • Computer Science
Advanced Algorithms, Fall 2008
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

" This is a graduate course on the design and analysis of algorithms, covering several advanced topics not studied in typical introductory courses on algorithms. It is especially designed for doctoral students interested in theoretical computer science."

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Goemans, Michel
Date Added:
01/01/2008
Advanced Artificial Intelligence
Unrestricted Use
CC BY
Rating

This course will present advanced topics in Artificial Intelligence (AI), including inquiries into logic, artificial neural network and machine learning, and the Turing machine. Upon successful completion of this course, students will be able to: define the term 'intelligent agent,' list major problems in AI, and identify the major approaches to AI; translate problems into graphs and encode the procedures that search the solutions with the graph data structures; explain the differences between various types of logic and basic statistical tools used in AI; list the different types of learning algorithms and explain why they are different; list the most common methods of statistical learning and classification and explain the basic differences between them; describe the components of Turing machine; name the most important propositions in the philosophy of AI; list the major issues pertaining to the creation of machine consciousness; design a reasonable software agent with java code. (Computer Science 408)

Subject:
Computer Science
Philosophy
Material Type:
Full Course
Provider:
The Saylor Foundation
Date Added:
04/29/2019
Advanced Circuit Techniques, Spring 2002
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Following a brief classroom discussion of relevant principles, each student completes the paper design of several advanced circuits such as multiplexers, sample-and-holds, gain-controlled amplifiers, analog multipliers, digital-to-analog or analog-to-digital converters, and power amplifiers. One of each student's designs is presented to the class, and one may be built and evaluated. Associated laboratory emphasizing the use of modern analog building blocks. Alternate years.

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Roberge, Jim
Date Added:
01/01/2002
Advanced Computer Organisation Architecture
Unrestricted Use
CC BY
Rating

This course introduces students to Advanced Computer Organization and Architecture. Where architecture is a term used to describe the attributes of a system as seen by the programmer. Its concerned with designs and operations of a computer. Computer organization is the way the system is structured so that all those cataloged tools can be used, and that in an efficient fashion. This course has its emphasis on system design and performance.

Subject:
Computer Science
Material Type:
Module
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
Harrison Njoroge
Date Added:
02/22/2018
Advanced Computer Security
Unrestricted Use
CC BY
Rating

There are both practical and theoretical reasons to study algorithms. From a practical standpoint, you have to know a standard set of important algorithms from different areas of computing; in addition, you should be able to design new algorithms and analyze their efficiency. From the theoretical standpoint, the study of algorithms, sometimes called algorithmics, has come to be as the cornerstone of computer science.

Subject:
Computer Science
Material Type:
Module
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
Richard Musabe
Date Added:
04/20/2018
Advanced Database Systems
Unrestricted Use
CC BY
Rating

At the heart of any major system is a data storage back-end. This back-end is what is refered to as a database. Taking that a database forms the core of systems, there is every need for the data to have integrity and also available for use. Database systems when well designed will ensure the system achieves those goals. Persons with skills to develop and manage these databases are therefore vital in modern day systems. The course principals of Database Systems is needed to help provide the competencies and skills needed by entry-level systems analyst or programmers. This course is about understanding and developing application logic in databases.

Subject:
Computer Science
Material Type:
Module
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
John Kandiri
Date Added:
02/22/2018
Advanced Databases
Unrestricted Use
CC BY
Rating

This course will expand upon SQL as well as other advanced topics, including query optimization, concurrency, data warehouses, object-oriented extensions, and XML. Additional topics covered in this course will help you become more proficient in writing queries and will expand your knowledge base so that you have a better understanding of the field. Upon successful completion of this course, the student will be able to: write complex queries, including full outer joins, self-joins, sub queries, and set theoretic queries; write stored procedures and triggers; apply the principles of query optimization to a database schema; explain the various types of locking mechanisms utilized within database management systems; explain the different types of database failures as well as the methods used to recover from these failures; design queries against a distributed database management system; perform queries against database designed with object-relational extensions; develop and query XML files. (Computer Science 410)

Subject:
Computer Science
Material Type:
Full Course
Provider:
The Saylor Foundation
Date Added:
04/29/2019
Advanced Topics in Cryptography, Spring 2003
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Recent results in cryptography and interactive proofs. Lectures by instructor, invited speakers, and students. Alternate years. The topics covered in this course include interactive proofs, zero-knowledge proofs, zero-knowledge proofs of knowledge, non-interactive zero-knowledge proofs, secure protocols, two-party secure computation, multiparty secure computation, and chosen-ciphertext security.

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Micali, Silvio
Date Added:
01/01/2003
Adventures in Advanced Symbolic Programming, Spring 2009
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

" This course covers concepts and techniques for the design and implementation of large software systems that can be adapted to uses not anticipated by the designer. Applications include compilers, computer-algebra systems, deductive systems, and some artificial intelligence applications. Topics include combinators, generic operations, pattern matching, pattern-directed invocation, rule systems, backtracking, dependencies, indeterminacy, memoization, constraint propagation, and incremental refinement. Substantial weekly programming Assignments and Labs are an integral part of the subject. There will be extensive programming Assignments and Labs, using MIT/GNU Scheme. Students should have significant programming experience in Scheme, Common Lisp, Haskell, CAML or some other "functional" language."

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Sussman, Gerald
Date Added:
01/01/2009
Agent-Based Evolutionary Game Dynamics
Unrestricted Use
CC BY
Rating

This book is a guide to implement simple agent-based evolutionary models using NetLogo.

All the models we implement are agent-based, i.e. individual agents and their interactions are explicitly represented in the models. To formalise agents’ interactions we use the basic framework of Evolutionary Game Theory.

NetLogo is a multi-agent programmable modeling environment used by hundreds of thousands of students, teachers and researchers all around the globe. No coding experience is necessary to fully understand the contents of this book.

Table of Contents
0. Introduction

0.1. Introduction to evolutionary game theory
0.2. Introduction to agent-based modeling
0.3. Introduction to Netlogo
0.4. The fundamentals of NetLogo
1. Our first agent-based evolutionary model

1.0. Our very first model
1.1. Extension to any number of strategies
1.2. Noise and initial conditions
1.3. Interactivity and efficiency
1.4. Analysis of these models
1.5. Answers to exercises
2. Spatial interactions on a grid

2.0. Spatial chaos in the Prisoner's Dilemma

Subject:
Computer Science
Material Type:
Textbook
Author:
Luis R. Izquierdo
Segismundo S. Izquierdo
William H. Sandholm
Date Added:
06/11/2020
Agent Based Modeling of Complex Adaptive Systems (Advanced)
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Building on Complex Adaptive Systems theory and basic Agent Based Modeling knowledge presented in SPM4530, the Advanced course will focus on the model development process. The students are expected to conceptualize, develop and verify a model during the course, individually or in a group. The modeling tasks will be, as much as possible, based on real life research problems, formulated by various research groups from within and outside the faculty.
Study Goals The main goal of the course is to learn how to form a modeling question, perform a system decomposition, conceptualize and formalize the system elements, implement and verify the simulation and validate an Agent Based Model of a socio-technical system.

Subject:
Computer Science
Material Type:
Full Course
Provider:
Delft University of Technology
Provider Set:
Delft University OpenCourseWare
Author:
Dr. Ir. I. Nikolic
Date Added:
03/03/2016
Algorithim Design and Analysis
Unrestricted Use
CC BY
Rating

There are both practical and theoretical reasons to study algorithms. From a practical standpoint, you have to know a standard set of important algorithms from different areas of computing; in addition, you should be able to design new algorithms and analyze their efficiency. From the theoretical standpoint, the study of algorithms, sometimes called algorithmics, has come to be as the cornerstone of computer science.

This course aim to provide an in-depth understanding of the fundamental algorithmic techniques for design and analysis, in turn impart knowledge and practical competence in use of advanced data structures and the design and Welcome to Advanced computer Security Module. This module provides a study of high-level computer security issues in computer networks and advanced methods of data encryption. It focuses on advanced aspects of computer security, such as encryption, security practices, system security, security for authentication on the Web and password management techniques. Finally this module, students should be able to create secure network architectures adapted to the investment level and required security. Take responsibility for installation, configuration and network security maintenance.

The module aims to give IT infrastructure management skills, where the role of computer security is critical to ensure the integrity of data and the normal operation of the various systems: computer networks, servers and personal computers in the organization. The course will also explore various Information Security controls, how to handle various risk assessment in an organization and finally creating a security policy in organization.

Today, we note that the information is considered the key business of an organization / company due to its usefulness and importance, however, the issue of the company’s Information Security is a priority task for managers, because they recognize the value it has and therefore organizations must make sure that it is managed effectively. For this reason, this module is important because you will learn the methods and tools for computer security that can ensure the confidentiality of information in organizations and also learn how to protect their information and systems in a network environment.

Subject:
Computer Science
Material Type:
Module
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
Richard Musabe
Date Added:
02/22/2018
Algorithim Design and Analysis
Unrestricted Use
CC BY
Rating

There are both practical and theoretical reasons to study algorithms. From a practical standpoint, you have to know a standard set of important algorithms from different areas of computing; in addition, you should be able to design new algorithms and analyze their efficiency. From the theoretical standpoint, the study of algorithms, sometimes called algorithmics, has come to be as the cornerstone of computer science.

This course aim to provide an in-depth understanding of the fundamental algorithmic techniques for design and analysis, in turn impart knowledge and practical competence in use of advanced data structures and the design and analysis of algorithms.

Subject:
Computer Science
Material Type:
Module
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
Godfry Justo
Date Added:
02/22/2018
Algorithms
Unrestricted Use
CC BY
Rating

This course focuses on the fundamentals of computer algorithms, emphasizing methods useful in practice. Upon successful completion of this course, the student will be able to: explain and identify the importance of algorithms in modern computing systems and their place as a technology in the computing industry; indentify algorithms as a pseudo-code to solve some common problems; describe asymptotic notations for bounding algorithm running times from above and below; explain methods for solving recurrences useful in describing running times of recursive algorithms; explain the use of Master Theorem in describing running times of recursive algorithms; describe the divide-and-conquer recursive technique for solving a class of problems; describe sorting algorithms and their runtime complexity analysis; describe the dynamic programming technique for solving a class of problems; describe greedy algorithms and their applications; describe concepts in graph theory, graph-based algorithms, and their analysis; describe tree-based algorithms and their analysis; explain the classification of difficult computer science problems as belonging to P, NP, and NP-hard classes. (Computer Science 303)

Subject:
Computer Science
Material Type:
Full Course
Provider:
The Saylor Foundation
Date Added:
04/29/2019
Algorithms for Computer Animation, Fall 2002
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

In-depth study of an active research topic in computer graphics. Topics change each term. Readings from the literature, student presentations, short assignments, and a programming project. Animation is a compelling and effective form of expression; it engages viewers and makes difficult concepts easier to grasp. Today's animation industry creates films, special effects, and games with stunning visual detail and quality. This graduate class will investigate the algorithms that make these animations possible: keyframing, inverse kinematics, physical simulation, optimization, optimal control, motion capture, and data-driven methods. Our study will also reveal the shortcomings of these sophisticated tools. The students will propose improvements and explore new methods for computer animation in semester-long research projects. The course should appeal to both students with general interest in computer graphics and students interested in new applications of machine learning, robotics, biomechanics, physics, applied mathematics and scientific computing.

Subject:
Computer Science
Literature
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Popovic, Jovan
Date Added:
01/01/2002
Ambient Intelligence, Spring 2005
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

This course will provide an overview of a new vision for Human-Computer Interaction (HCI) in which people are surrounded by intelligent and intuitive interfaces embedded in the everyday objects around them. It will focus on understanding enabling technologies and studying applications and experiments, and, to a lesser extent, it will address the socio-cultural impact. Students will read and discuss the most relevant articles in related areas: smart environments, smart networked objects, augmented and mixed realities, ubiquitous computing, pervasive computing, tangible computing, intelligent interfaces and wearable computing. Finally, they will be asked to come up with new ideas and start innovative projects in this area.

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Maes, Patricia
Date Added:
01/01/2005
Artifical Intelligence
Unrestricted Use
CC BY
Rating

Artificial Intelligence is a subject is one of the most important and exciting sub-fields of Computer Science. This specialist programme covers the fundamentals of Computer Science and Computer Information Systems so as to maximise your future employment opportunities. It also offers the chance to carry out cutting-edge research in this high profile area.

Introductory modules cover Programming in Java, Computer Systems, Databases, Human-Centric Computing, and Algorithmic Foundations. The course is completed by a selection of modules covering important topics within the subject: Knowledge Representation, the study of Multi-Agent Systems, and Robotics among the others. The course also includes a related second year group project and an individual year project.

Subject:
Computer Science
Material Type:
Module
Provider:
African Virtual University
Provider Set:
OER@AVU
Author:
Kebbeh Saffiong
Date Added:
02/22/2018
Artificial Intelligence
Unrestricted Use
CC BY
Rating

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
Date Added:
04/29/2019
Artificial Intelligence, Fall 2008
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

An introduction to the main techniques of Artifical Intelligence: state-space search methods, semantic networks, theorem-proving and production rule systems. Important applications of these techniques are presented. Students are expected to write programs exemplifying some of techniques taught, using the LISP lanuage.

Subject:
Computer Science
Material Type:
Full Course
Homework/Assignment
Syllabus
Provider:
UMass Boston
Provider Set:
UMass Boston OpenCourseWare
Author:
Ph.D.
Professor Wei Ding
Date Added:
04/25/2019
Artificial Intelligence, Fall 2010
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

This course introduces students to the basic knowledge representation, problem solving, and learning methods of artificial intelligence. Upon completion of 6.034, students should be able to develop intelligent systems by assembling solutions to concrete computational problems, understand the role of knowledge representation, problem solving, and learning in intelligent-system engineering, and appreciate the role of problem solving, vision, and language in understanding human intelligence from a computational perspective.

Subject:
Computer Science
Information Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Winston, Patrick Henry
Date Added:
01/01/2010
Automata, Computability, and Complexity, Spring 2011
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

This course provides a challenging introduction to some of the central ideas of theoretical computer science. Beginning in antiquity, the course will progress through finite automata, circuits and decision trees, Turing machines and computability, efficient algorithms and reducibility, the P versus NP problem, NP-completeness, the power of randomness, cryptography and one-way functions, computational learning theory, and quantum computing. It examines the classes of problems that can and cannot be solved by various kinds of machines. It tries to explain the key differences between computational models that affect their power.

Subject:
Computer Science
Information Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Aaronson, Scott
Date Added:
01/01/2011
Automate the Boring Stuff
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

If you've ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you?

In Automate the Boring Stuff with Python, you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand-no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to:

Search for text in a file or across multiple files
Create, update, move, and rename files and folders
Search the Web and download online content
Update and format data in Excel spreadsheets of any size
Split, merge, watermark, and encrypt PDFs
Send reminder emails and text notifications
Fill out online forms

Step-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.

Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in Automate the Boring Stuff with Python.

Subject:
Computer Science
Material Type:
Textbook
Author:
Al Sweigert
Date Added:
04/24/2019
Automatic Speech Recognition, Spring 2003
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Graduate-level introduction to automatic speech recognition. Provides relevant background in acoustic theory of speech production, properties of speech sounds, signal representation, acoustic modeling, pattern classification, search algorithms, stochastic modeling techniques (including hidden Markov modeling), and language modeling. Examines approaches of state-of-the-art speech recognition systems. Introduces students to the rapidly developing field of automatic speech recognition. Its content is divided into three parts. Part I deals with background material in the acoustic theory of speech production, acoustic-phonetics, and signal representation. Part II describes algorithmic aspects of speech recognition systems including pattern classification, search algorithms, stochastic modelling, and language modelling techniques. Part III compares and contrasts the various approaches to speech recognition, and describes advanced techniques used for acoustic-phonetic modelling, robust speech recognition, speaker adaptation, processing paralinguistic information, speech understanding, and multimodal processing.

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Glass, James Robert
Date Added:
01/01/2003
Behavior of Algorithms, Spring 2002
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Study of an area of current interest in theoretical computer science. Topic varies from term to term. This course is a study of Behavior of Algorithms and covers an area of current interest in theoretical computer science. The topics vary from term to term. During this term, we discuss rigorous approaches to explaining the typical performance of algorithms with a focus on the following approaches: smoothed analysis, condition numbers/parametric analysis, and subclassing inputs.

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Spielman, Daniel
Date Added:
01/01/2002
Big Data Strategies to Transform Your Business
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

While big data infiltrates all walks of life, most firms have not changed sufficiently to meet the challenges that come with it. In this course, you will learn how to develop a big data strategy, transform your business model and your organization.

This course will enable professionals to take their organization and their own career to the next level, regardless of their background and position.

Professionals will learn how to be in charge of big data instead of being subject to it. In particular, they will become familiar with tools to:

assess their current situation regarding potential big data-induced changes of a disruptive nature,
identify their options for successfully integrating big data in their strategy, business model and organization, or if not possible, how to exit quickly with as little loss as possible, and
strengthen their own position and that of their organization in our digitalized knowledge economy
The course will build on the concepts of product life cycles, the business model canvas, organizational theory and digitalized management jobs (such as Chief Digital Officer or Chief Informatics Officer) to help you find the best way to deal with and benefit from big data induced changes.

Subject:
Computer Science
Engineering
Business and Communication
Material Type:
Full Course
Provider:
Delft University of Technology
Provider Set:
Delft University OpenCourseWare
Author:
Claudia Wakker
Dr. Scott Cunningham
Marijn Janssen
Date Added:
04/25/2019
Blender 3D: Noob to Pro
Conditional Remix & Share Permitted
CC BY-SA
Rating

Blender 3D: Noob to Pro is a product of shared effort by numerous team members and anonymous editors. Its purpose is to teach people how to create three-dimensional computer graphics using Blender, a free software application. This book is intended to be used in conjunction with other on-line resources that complement it.

Subject:
Computer Science
Graphic Design
Material Type:
Textbook
Provider:
Wikibooks
Date Added:
04/26/2019
Blueprints: Creating, Describing, and Implementing Designs for Larger-Scale Software Projects
Conditional Remix & Share Permitted
CC BY-SA
Rating

Table of Contents

1 Getting off the ground
2 The "Software crisis" and encapsulation
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

About the Book

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.

Subject:
Computer Science
Material Type:
Textbook
Author:
Stephen Davis
Date Added:
06/29/2020
A Byte of Python
Conditional Remix & Share Permitted
CC BY-SA
Rating

"A Byte of Python" is a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you. There are many translations of the book available in different human languages.

Subject:
Computer Science
Material Type:
Textbook
Author:
Swaroop C.H.
Date Added:
04/24/2019
C++ Programming
Unrestricted Use
CC BY
Rating

The student will learn the mechanics of editing and compiling a simple program written in C++ beginning with a discussion of the essential elements of C++ programming: variables, loops, expressions, functions, and string class. Next, the student will cover the basics of object-oriented programming: classes, inheritance, templates, exceptions, and file manipulation. The student will then review function and class templates and the classes that perform output and input of characters to/from files. This course will also cover the topics of namespaces, exception handling, and preprocessor directives. In the last part of the course, the student will learn some slightly more sophisticated programming techniques that deal with data structures such as linked lists and binary trees. Upon successful completion of this course, students will be able to: Compile and execute code written in C++ language; Work with the elementary data types and conditional and iteration structures; Define and use functions, pointers, arrays, struct, unions, and enumerations; Write C++ using principles of object-oriented programming; Write templates and manipulate the files; Code and use namespaces, exceptions, and preprocessor instructions; Write a code that represents linked lists and binary trees; Translate simple word problems into C++ language. (Computer Science 107)

Subject:
Computer Science
Material Type:
Full Course
Provider:
The Saylor Foundation
Date Added:
04/29/2019
C Programming
Conditional Remix & Share Permitted
CC BY-SA
Rating

C is the most commonly used programming language for writing operating systems. The first operating system written in C is Unix. Later operating systems like GNU/Linux were all written in C. Not only is C the language of operating systems, it is the precursor and inspiration for almost all of the most popular high-level languages available today. In fact, Perl, PHP, Python and Ruby are all written in C. By way of analogy, let's say that you were going to be learning Spanish, Italian, French, or Portuguese. Do you think knowing Latin would be helpful? Just as Latin was the basis of all of those languages, knowing C will enable you to understand and appreciate an entire family of programming languages built upon the traditions of C. Knowledge of C enables freedom.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Wikibooks
Date Added:
04/26/2019
C# Programming
Conditional Remix & Share Permitted
CC BY-SA
Rating

Although C# is derived from the C programming language, it introduces some unique and powerful features, such as delegates (which can be viewed as type-safe function pointers) and lambda expressions which introduce elements of functional programming languages, as well as a simpler single class inheritance model (than C++) and, for those of you with experience in "C-like" languages, a very familiar syntax that may help beginners become proficient faster than its predecessors. Similar to Java, it is object-oriented, comes with an extensive class library, and supports exception handling, multiple types of polymorphism, and separation of interfaces from implementations. Those features, combined with its powerful development tools, multi-platform support, and generics, make C# a good choice for many types of software development projects: rapid application development projects, projects implemented by individuals or large or small teams, Internet applications, and projects with strict reliability requirements. Testing frameworks such as NUnit make C# amenable to test-driven development and thus a good language for use with Extreme Programming (XP). Its strong typing helps to prevent many programming errors that are common in weakly typed languages.

Subject:
Computer Science
Material Type:
Textbook
Provider:
Wikibooks
Date Added:
04/26/2019
CS120: Computer Literacy
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

CS120: A survey of the general concepts of computers and their applications. Concepts include computer systems, system and applications software, data organization and management, and computers in society. Specific applications with hands-on projects will include word processing, presentation management, spreadsheets, database, graphics, and web authoring.

This a computer literacy course. Computer literacy is knowing both how computers are involved with the world today and knowing how to get stuff done with current software. We will explore concepts to help you better use Internet resources.

This class is organized in weekly modules. Students work through the materials in each module sequentially.This course uses free resources from the Web instead of a text book.

Subject:
Computer Science
Material Type:
Module
Author:
Blue Mountain Community College
Date Added:
11/27/2019
CS 160 Course Reader: Introduction to Computer Science
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Course Description
Explores the disciplines and professions of Computer Science and Software Engineering.Overviews computer hardware and software architecture, the study of algorithms, software design and development, data representation and organization, problem-solving strategies, ethics in the digital world, and the history of computing and its influences on society. Explores career options and begins the process of planning a program of study. Exposes students to both low-level and high-level programming languages.

Book contents:
Computation and Computer Science
1. Computing Related Fields
2. History of computers
3. Binary and Bits
4. Data Representation
5. Logic Gates & Circuits
6. Computer Architecture & The Machine Cycle
7. Programming Languages
8. Algorithms
9. Operating Systems
10. Parallel Processing
11. Limits and Future of Computing

Nine Algorithms Book Supplements
Supplements to Nine Algorithms
Page Rank (Ch 3)
Diffie Hellman (Ch 4)
Error Detection & Correction (Ch 5)
Pattern Recognition & Machine Learning
Data Compression (Ch 7)
Authentication & Public Key Encryption (Ch 9 Replacement)
Search & AI
Databases And Concurrency (Ch 8)
Computability (Ch 10)

Subject:
Computer Science
Material Type:
Textbook
Author:
Chemeketa Community College
Date Added:
11/27/2019
Cascading Style Sheets
Conditional Remix & Share Permitted
CC BY-SA
Rating

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
Date Added:
04/26/2019
Cloud and Server GIS
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Is your understanding of Cloud GIS a bit hazy? Does thinking about it leave you in a fog? We've designed GEOG 865, Cloud and Server GIS, to help you understand how all of the various pieces of architecture fit together. By the end of the class you'll have a clear understanding of esri's and others' offerings in the space, how to implement ArcGIS Enterprise on Amazon EC2, make online maps with Carto and Mapbox, and engage in some blue sky thinking of your own in our weekly discussions about trends and directions.

Subject:
Computer Science
Physical Geography
Material Type:
Full Course
Provider:
Penn State University
Provider Set:
Penn State's College of Earth and Mineral Sciences (http:// e-education.psu.edu/oer/)
Author:
Sterling Quinn
Date Added:
04/25/2019
Compilers
Unrestricted Use
CC BY
Rating

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
Date Added:
04/29/2019
Computation Structures, Spring 2009
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

" 6.004 offers an introduction to the engineering of digital systems. Starting with MOS transistors, the course develops a series of building blocks ‰ŰÓ logic gates, combinational and sequential circuits, finite-state machines, computers and finally complete systems. Both hardware and software mechanisms are explored through a series of design examples. 6.004 is required material for any EECS undergraduate who wants to understand (and ultimately design) digital systems. A good grasp of the material is essential for later courses in digital design, computer architecture and systems. The problem sets and lab exercises are intended to give students "hands-on" experience in designing digital systems; each student completes a gate-level design for a reduced instruction set computer (RISC) processor during the semester."

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Ward, Steve
Date Added:
01/01/2009
Computational Cognitive Science, Fall 2004
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

This course is an introduction to computational theories of human cognition. Drawing on formal models from classic and contemporary artificial intelligence, students will explore fundamental issues in human knowledge representation, inductive learning and reasoning. What are the forms that our knowledge of the world takes? What are the inductive principles that allow us to acquire new knowledge from the interaction of prior knowledge with observed data? What kinds of data must be available to human learners, and what kinds of innate knowledge (if any) must they have?

Subject:
Computer Science
Psychology
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Tenenbaum, Joshua
Date Added:
01/01/2004
Computational Design I: Theory and Applications, Fall 2005
Conditional Remix & Share Permitted
CC BY-NC-SA
Rating

Introduces design as a computational enterprise in which rules are developed to compose and describe architectural and other designs. The class covers topics such as shapes, shape arithmetic, symmetry, spatial relations, shape computations, and shape grammars. It focuses on the application of shape grammars in creative design, and teaches shape grammar fundamentals through in-class, hands-on exercises with abstract shape grammars. The class discusses issues related to practical applications of shape grammars.

Subject:
Computer Science
Material Type:
Full Course
Provider:
M.I.T.
Provider Set:
M.I.T. OpenCourseWare
Author:
Knight, Terry W.
Date Added:
01/01/2005