Skip to Main Content
It looks like you're using Internet Explorer 11 or older. This website works best with modern browsers such as the latest versions of Chrome, Firefox, Safari, and Edge. If you continue with this browser, you may see unexpected results.
CWU Libraries logo
Ask a Librarian chat image Ask the Libraries

Computer Science


AlgLab: An Open Laboratory for Experiments on Algorithms

AlgLab contains laboratories for conducting experiments on algorithms.  It includes resources and tools to learn about a problem and its algorithm, run programs to measure performance, and modify programs and run experiments.  AlgLab also provides links to algorithm resources.

Collected Algorithms of the ACM

CALGO contains software associated with papers published in the ACM Transactions on Mathematical Software and other ACM journals. The software is refereed for originality, accuracy, robustness, completeness, portability, and lasting value.

Kremlin:  Cryptographic Algorithms

This site provides an overview and description of secret key cryptographic algorithms.  It is organized into block ciphers, stream ciphers, and hash algorithms.  The descriptions include links to additional information.

The Stony Brook Algorithm Repository

Based on his book The Algorithm Design Manual, Steven S. Skiena has mounted this site containing a collection of algorithm implementations for over seventy of the most fundamental problems in combinatorial algorithms.


Programming Languages

Ada Home

This stie is designed to be the Web resource center for Ada and Ada-related issues. It includes the full text of the Ada 95 Reference Manual and the Ada Lovelace Tutorial.

Ada Information Clearinghouse

Supported by the Ada Resource Association, AdaIC contains information about the Ada programming language including compilers & conformance, news & events, projects & usage, a resource library, education & training, standards & guidelines, products & vendors, and jobs.

The Art of Assembly Language Programming

This is a book length, in depth tutorial on assembly language programming. Two versions are available: the Win32 (32-bit) edition and the DOS (16-bit) edition. Both versions may be viewed online or downloaded. A thorough table of contents and index provides access to each.

C Programming

C Programming is a self-paced, learning module. As an introductory guide to the C programming language, it includes the basics needed to program effectively. The guide also includes worked examples and interactive tests.

C# Station

C# Station is a gateway to resources for programming on Microsoft's .NET platform. Access is provided to articles, recommended books, sample book chapters, discussion forums, documentation, downloads, events and conferences, links to other C# sites, source code and example applications, software tools, and an extensive tutorial.

Computer Aided Instruction Project

Tutorials or lecture notets are furnished for Java, MIPS assembly language, vector algebra for computer graphics, finite-state automata, and bioinformatics.

Cplusplus Resources

Cplusplus Resources contains a bounty of resources for the C++ programming language. It includes basic and advanced resources like technical documents, source code, standard libraries, and discussion forums.

This site contains resources for learning the C and C++ programming languages. There are several tutorials.

CSS Creator

CSS Creator is a site for Web development, covering CSS as well as HTML and JavaScript.  It includes a forum where users can seek help from other users.  There are also a news feed, a tools section, and a site check area to validate code.

Designing and Building Parallel Programs

This is the online version of the Addison-Wesley text Designing and Building Parallel Programs by Ian Foster. The site integrates the contents of the book with a collection of public domain parallel software tools and a set of links to other information on parallel and distributed computing.


EbookOffline provides access to free online books, tutorials, computing tools, and articles as well as other computing resources.  It is arranged by the broad subjects of programming, Web development, and database management, and sub-divided by subjects like C#, Java, MS-DOS, PHP, Ajax, XML, MySQL, Oracle, and DB2.  EbookOffline can be browsed by these subjects, or the entire Website can be searched.

Eiffel Online Book

There are two main sections of the Eiffel Online Book: the language and case study. The language section is a fifteen-chapter online book that begins with the basics and proceeds to present almost every aspect of the Eiffel programming language. The case study section reinforces the material in the book with a continuing example; each part of the case study builds upon the previous part. A download section makes the book, case study, and an Eiffel environment available to users.

Extreme Programming: A Gentle Introduction

Extreme programming is a method of software development that maximizes programming efficiency. This site provides a thorough overview of the techniques, beginning with a general introduction, followed by specific rules and guidelines.

Fortran Library

The Fortran Library contains a collection of general purpose Fortran 90 routines that can be used to simplify the development of programs with a batch-style input/output interface. Most of the routines can be used to perform standard non-numeric coding tasks.

Free Online Resources for Microsoft .NET Developers

Aimed at beginners, this site contains resources for learning programming concepts in the Microsoft .NET Framework.  Included are tutorials and lessons covering VB.NET, C#, ASP.NET, Ajax, and the .NET Framework.  There are worked examples with source code and FAQs.

Free2Code: Tutorials

Submitted by members of the Free2Code community, this site contains numerous tutorials including coverage of programming languages, operating systems, networking and Web development.

A Gentle Introduction to Haskell

The goal of this tutorial is to provide an introduction to the Haskell programming language for a programmer who has experience with at least one other functional language.

The GP Tutorial

A basic tutorial on genetic programming.

HOPL: An Interactive Roster of Programming Languages 

HOPL is an encyclopedia of computer languages. It tracks the evolution, history, function, and relationships among computer languages. Covering over 8,500 languages, HOPL is fully searchable with basic and advanced search modes. Bibliographic references and links to other programming language Websites are also included.

Introduction to Object-Oriented Programming Using C++

This is self-paced course to learn object-oriented programming. Concepts are presented using the C++ programming language, but the course is not intended to learn C++ in all its details.

Introduction to Programming Using Java

This free online textbook uses Java to explain basic programming concepts.

Java Programming Tutorials

This site contains several beginning, intermediate, and advanced Java and JavaScript tutorials as well as tutorials for C#, XML, and Python. Sample programs and source code are also provided.

JavaScript Primer

This primer is an introductory tutorial covering the basics and some advanced features of JavaScript. The site also provides links to JavaScripts and other tutorials.

The Language List

A list and description of all known computer programming languages.

Learn C/C++ Today

After furnishing some background and tools required for C and C++, this site lists several tutorials available on the Web.


This site furnishes resources on how to program in assembly language using free programming tools. It focuses on development for or from the Linux operating system. Resources include tutorials, documentation, and actual programs.

A scientific and technical computing portal covering C/C++, Excel, FORTRAN, Java, Matlab, and Visual Basic. It provides access to tutorials, documentation, source code, software tools, libraries, routines, and applications. The site may be browsed or searched.

MATLAB Help Desk

This site provides extensive documentation and guides for MATLAB, including manuals that describe everything from basic usage to graphics and built-in toolboxes.

Numerical Recipes

This site provides access the complete text of the following Numerical Recipes books from Cambridge University Press.

  • Numerical Recipes in C: The Art of Scientific omputing
  • Numerical Recipes in Fortran 77: The Art of Scientific Computing
  • Numerical Recipes in Fortran 90: The Art of Parallel Scientific Computing
  • .
Object Oriented Programming Tutorial

The purpose of this tutorial is to provide an introduction to object-oriented programming. Although examples are given in Modula-2, C++, and Java, teaching these languages is not the objective. The objective is to teach the basics including objects, classes, and inheritance.

Open Directory Project - Computers: Programming: Languages

This directory has an extensive listing of resources for individual programming languages.


This site from Synopsys contains a wealth of information about the standard and its development. There are many technical papers, but free registration is required to access the specification and language reference manual.

Pascal Programming

This is an interactive introduction to the Pascal programming language that covers the basics of learning to program, data types, declarations, arrays, functions, records, pointers, enumerated and set types, and file handling.

Programmers Heaven

Programmers Heaven features links to programming-related Web sites as well as development tools, utilities, source code, and compilers and interpreters. Access is also provided to technology news headlines, summaries, articles, and the 50 most popular links and downloads. The site can be browsed by languages, platforms, applications, and Web development; and it is fully searchable.

Python Language Website

This site contains the official Python source code distribution, binaries, documentation, and conference proceedings.

This is a collection of resources for the Scheme programming language. In addition to an FAQ and a bibiliography, the site includes access to information about textbooks and other documents, standards, tutorials, educational resources, implementations, libraries, employment, and events. is a technology specific search engine for Visual Basic that not only searches the site but also a set of pre-screened Web sites. Search results may also find news, products, services, and technical tips. This site may also be browsed for tutorials, glossaries, book reviews, periodical articles, career information, source code, and other downloads.

Smalltalk and Object Technology Links

This is a portal to Smalltalk and object technology resources. Resources include tutorials, FAQs, articles, reports, magazines, books, standards, vendors, important people, user groups, organizations, conferences, and other Smalltalk and object technology Web sites.

The Source for JavaTM Technology

From Sun Microsystems, the developers of the Java programming language, this site is the source for Java documentation, applets, servlets, plug-ins, and other resources. It also contains news, tutorials, case studies, and live discussion forums.

SQL Interpreter and Tutorial

This site contains an introductory SQL (structured query language) tutorial and a means to practice with an online SQL interpreter. There is also a link to an advanced SQL tutorial.

SQL Quiz

The goal of SQL Quiz is help students improve their SQL and database understanding by testing their knowledge. Each SQL quiz consists of 15 questions randomly selected from a pool of over 500 questions. When the quiz is completed, SQL Quiz generates a grading sheet that includes the question, the student's answer, whether or not the student was correct, and recommended readings for incorrect answers.

Structure and Interpretation of Computer Programs

This site contains the full text of the MIT Press book Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman. Also included are programming assignments, source code, the instructor's manual, and errata.

Technology Resource Guide: Computer Programming Languages

Briefly covers history, prominent people, elements, design and implementation, usage, and taxonomies.  (Suggested by Lyn in the Cleary Mountain Union Free School District in Virginia.)

Unified Modeling Language Resource Center

The Resource Center is sponsored by the Rational Software Corporation, the developers of the Unified Modeling Language. It contains guides for the beginners as well as advanced materials. Guides for getting started include FAQs, tutorials, and recommended reading lists. Among the advanced materials are documentation, quick reference guides, technical reports, specifications, and whitepapers.

WWW C++ Information

This site provides a very extensive portal to information on the C++ programming language. It is topically arranged and furnishes links to FAQs, learning resources, standards and documentation, the C++ standard libraries, standard temple libraries (STL), book reviews, critiques, style guides, program archives, benchmarks, source code, magazines, newsletters, technical reports, tools, compilers, and newsgroups. focuses on the object-oriented Smalltalk computer language and environment. It provides access to important articles, events like conferences and workshops, FAQs, versions of Smalltalk, user groups, and newsgroups.

XML Technologies

A section on the Sun Microsystems Web site, these pages contain tutorials, downloads, and documentation. There are also links to news, articles, FAQs, and other resources.