Cochise Linux Users Group
Home > Programming

Main Menu
» Meetings
  When and where the meetings are held
» Linux
  Linux help, links, and information
  BSD, Solaris x86, and Darwin
» Education
  Education programs and resources that you can use with Linux
» Programming
  Linux specific programming links and information
» Security
  Computer and Linux security information
» Mailing List
  Cochise Linux Users Group Mailing List
» Local Links
  Links to local websites, computer user groups, and information
» Files
  Misc files

Next Meeting
Check with the mailing list

Programming Fundamentals

How To Design Programs - This ( is an online version of a book from MIT Press. Its main focus is the design process that leads from problem statements to well-organized solutions. It deemphasizes the study of programming language details, algorithmic minutiae, and specific application domains.

Structure and Interpretation of Computer Programs - This ( is an online version of a book from MIT Press. The entry-level book is a requirement of all students at MIT who major in computer science and electrical engineering. The goal is that students who complete this subject should have a good feel for the elements of style and the aesthetics of programming.

How to Think Like a Computer Scientist - The texts ( provide a short introduction to computer science. There are three different versions, each based on a different programming language, Python, Java, and C++.

How to Solve It - Step-by-step procedure ( on how to solve a problem.

Alice Through the Looking Glass - Good reading ( .

The Jargon File - A lexicon ( of slang, jargon, tech speak, and sidelight information used by the computer hacker culture. This is an older version that hasn't been tainted by Eric Raymond.

Dictionary of Algorithms and Data Structures - A dictionary of algorithms (, algorithmic techniques, data structures, archetypical problems, and related definitions provided by the National Institute of Standards and Technology.

Data Structures and Algorithms - A collection of data structor and algorithms ( used in a class held at the University of Western Australia.

The Stony Brook Algorithm Repository - A comprehensive collection ( of algorithm implementations from the Stoney Brook State University of New York.

Programming Languages


C Programming Notes - Course notes from the University of Washington ( Required reading.

Softpanorama University - C - A very large ( and a very nice collection of links and information on the C programming language.

C Programming - University of Strathclyde - An online course ( on C programming from the University of Strathclyde.

GCC Online Documentatioin - Documentation ( for the GNU Compiler Collection. It describes how to use the GNU compilers, as well as their features and incompatibilities.

The GNU C Library - Documentation ( for the GNU C library. It defines all of the library functions that are specified by the ISO C standard, as well as additional features specific to POSIX and other derivatives of the Unix operating system, and extensions specific to the GNU system.

Debugging with GDB - Documentation ( explaining how to use the GNU Debugger. GDB supports C, C++, Fortran, Java, Chill, assembly, and Modula-2.

GNU Coding Standards - This document ( can also be read as a guide to writing portable, robust and reliable programs. It focuses on programs written in C, but many of the rules and principles are useful even if you write in another programming language.

Recommended C Style and Coding Standards - This document ( is an updated version of the Indian Hill C Style and Coding Standards paper.

Perl - Perl Mongers: The Perl Advocacy People. - A good place to start if you are learning Perl. - O'Reilly's Perl Network. - Comprehensive Perl Archive Network, where you can find All Things Perl.

Java™ - The Source for Java™ Technology on Linux - A site dedicated to the professional development of the Java™ platform for Linux.

GCJ - The GNU Compiler ( for the Java™ Programming Language.

UNIX Programming

UNIX Programming FAQ - The comp.unix.programmer FAQ

UNIX Socket FAQ - A resource for C programmers ( who do socket programming in the Unix environment.

Secure UNIX Programming FAQ - A guide for programmers ( about secure programming in the UNIX environment.

Raw IP Networking FAQ - Attempts to answer questions ( regarding raw IP or low level IP networking, including raw sockets, and network monitoring APIs such as BPF and DLPI.

TCP/IP FAQ - Provides answers to a selection of common questions ( on the various protocols (IP, TCP, UDP, ICMP and others) that make up the TCP/IP protocol suite.

CVS - The Concurrent Versions System ( helps you record the history of your source files.

Secure Programming

Secure Programming Howto - This document ( provides a set of design and implementation guidelines for writing secure programs for Linux and Unix systems. Such programs include application programs used as viewers of remote data, web applications (including CGI scripts), network servers, and setuid/setgid programs. This document includes specific guidance for a number of languages, including C, C++, Java, Perl, Python, and Ada95.

Splint - Splint ( is a tool for statically checking C programs for security vulnerabilities and coding mistakes.

Shmoo Group - A list of resources ( for writing secure code.

Security Code Review Guidelines - This document ( is intended to help speed the code review process by explaining some of the common mistakes and coding practices.

Writing Safe Setuid Programs - Several papers that discuss writing safe privileged (SUID/SGID - programs

Designing Secure Software - This article ( contains a good list on Do's and Don'ts with regard to writing secure programs.

WWW Security FAQ - Some of the most frequently asked questions relating to the security of running web servers and using web browsers ( .

Smashing The Stack For Fun And For Profit - This ( is one of the best articles on how to find and exploit buffer overflows.

How to Find Security Holes - Lists some of the things to look for to find security holes (

CopyLeft © 2012 dentonj
Last Updated 2/28/11