|May the source be with you, but remember the KISS principle ;-)|
|Contents||Bulletin||Scripting in shell and Perl||Network troubleshooting||History||Humor|
|News||C language||Best C Books||Recommended Links||University courses||Articles and chapters|
See also TutorialSearch Two good books on C were at some point of time available online from InformIt.com (still might be available elsewhere on the web :-)
Teach Yourself C in 24 Hours by Tony Zhang -- very basic, but still good
Teach Yourself C in 21 Days by Peter G. Aitken -- solid intermediate level book
Do not waste time browsing the WEB searching for tutorials, but a good discounted book first. Believe me it would be difficult to find something even close to the quality of a published book on the WEB, unless this is a WEB variant of a published book ;-). See C bookshelf. for printed books recommendations.
All reference below are supplementary. You can also try to buy a decent book , actually you can do this for approximately the cost of your monthly WEB access ;-).
As for sites with similar collections of links also LEARN CC++ TODAY - a list of C/C++ tutorials by Vinit Carpenter (old, last updated in 1996), and CSS Program Web Library; C programming.
There are not the best overall, but used in tandem can probably substitute any paper book if you have no money to buy it.
Softpanorama hot topic of the month
Steve Oualline C Elements of Style Free online book
This is a decent, but not great introductory C book. This is a really good intermediate book. Level of chapters after 5 is too high for the introductory book. Special chapter (ch.8) is devoted to explaining scope. Chapter 15 explains how to use pointers with lists. Ch.19 "Exploring the C Function Library" contains a lot of useful material absent in other books. The book contains both exercises and quizzes. Better deal is to buy is with Visual C++ 6.0 introductory edition
Michael Tregre (firstname.lastname@example.org) from Austin, Texas, United States
of America , July 18, 1998 *****
An easy to follow, comprensive tool for learning C.
An excellent example of Sam's Teach Yourself series, TYC in 21 Days is perfect for those who want to get into the field of computer programming. This book offers a chance to learn the basics of C (which is an extremely useful language in and of itself, as well as a gateway to learning other popular languages such as C++ and Java) in an easy-to-understand format. Everything you learn here will prove invaluable in a career of programming. If I had to recommend a first book to buy for the aspiring coder, this one would be it.
The C Programming Language Answers To Exercises
C Programming Notes by Steve Summit -- this is an excellent online
course that contains both notes and assignments (Introductory course
Intermediate C Programming Assignments). Very knowledgeable and
generous author. Highly recommended if you have K&R book (you should
***+ C Language Tutorial Coronado Enterprises (shareware); This is more or less honest attempt to create a turotial that can is usable.
These notes are part of the UW Experimental College course on Introductory C Programming. They are based on notes prepared (beginning in Spring, 1995) to supplement the book The C Programming Language, by Brian Kernighan and Dennis Ritchie, or K&R as the book and its authors are affectionately known. (The second edition was published in 1988 by Prentice-Hall, ISBN 0-13-110362-8.) These notes are now (as of Winter, 1995-6) intended to be stand-alone, although the sections are still cross-referenced to those of K&R, for the reader who wants to pursue a more in-depth exposition.
ANSI C for Programmers on UNIX Systems by Tim Love, Cambridge University.
redistibutable for educational purposes
Learn C Programming -- a learning CD with an audio track
***** C Programming Notes by Steve Summit -- this is an excellent online course that contains both notes and assignments (Introductory course Assignments. and Intermediate C Programming Assignments). Very knowledgeable and generous author. Highly recommended.
The notes on these pages are for the courses in C Programming I used to teach in the Experimental College at the University of Washington in Seattle, WA. Normally these notes accompany fairly traditional classroom lecture presentations, but they are intended to be reasonably complete (more so, for that matter, than the lectures!) and should be usable as standalone tutorials.
I originally designed the first, Introductory course around The C Programming Language (2nd Edition) by Kernighan and Ritchie, and the notes were designed to complement that text, highlighting important points and explaining subtleties which might be lost on the general reader. Later, I rewrote the notes to stand on their own (in part because, in spite of the first set of notes, too many of my students found K&R a bit too technical for an informal, introductory course). Finally, I occasionally teach an Intermediate course, which covers the topics which tend to be skipped or glossed over in introductory courses (bitwise operators, structures, file I/O, etc.). The Intermediate course has its own set of notes.
All three sets of notes are available here. If you have a copy of K&R2 and would like a thorough treatment of the language, read K&R and the ``Notes to Accompany K&R'' side by side. If you're just getting your feet wet and would like a somewhat simpler introduction, read the ``Introductory Class Notes.'' If you have had an introduction to C (either here or elsewhere) and are now looking to fill in some of the missing pieces, read the ``Intermediate Class Notes.''
Of course, just reading a book or these notes won't really teach you C; you will also want to write and run your own programs, for practice and so that the language concepts will make some kind of practical sense. Most of my programming assignments (including review questions) are here as well, along with their solution sets. (No peeking at the answers until you've given the problems your best shot!)
These notes are arranged for the web in the usual hierarchy by section and subsection. If you want to read through all of them, without keeping track of your own stack to implement a depth-first tree traversal, just follow the ``read sequentially'' links at the bottom of each page.
C Programming Course - Course notes by Steve Holmes. (Strathclyde, Scotland). -- Unix oriented.
EL165 Introduction to Computing using C by Martin Brown
Phil's C Course -- Version 1.1 © Phil Ottewell 1995,1996
Switching to Linux for your development projects can seem like a daunting task at first but given a little direction, you will find that the development environment is both powerful and easy to use.
This paper is designed as an introduction to development under Linux, and will help you get your feet wet with all of the tools that you will need for a large scale development project. For now, the scope of this tutorial is writing a program in C, and includes information on text editing, compiling, debugging, and version control.
Setting Up Your Shell
Developing a Simple C Program with vi and gcc
Using gdb to Debug a C Program
Compiling Multiple .c and .h Files
Using make to Simplify the Build Process
Using the Concurrent Versions System for Source Management
Final Thoughts and Resources
The C programmer's pages -- C and Pascal: The Love Story
C vs Pascal notes -- useful comparison. Need work...
C-Style Page -- good collection of papers
Why Pascal is Not My Favorite Programming Language by B. W. Kernighan -- Must read. A rebellious paper written at the time of when structured programming and verification religious movement was close to its top, and to criticize Pascal what rather dangerous undertaking. Kerningan has problems with finding a publisher.
|howstuffworks : C tutorial||Complete, thoroughly-illustrated C Programming Language tutorial with many examples to assist in becoming a C programmer.|
|C library reference guide||Complete reference to the ANSI C language.|
|tutorial: Pointers and Arrays||A tutorial on pointers and arrays in the C programming language by Ted Jensen.|
|c course||a very good online course|
|c programming notes||c programming notes|
|c in 5 hours||c in 5 hours|
|Programming in C: A Tutorial||Programming in C: A Tutorial|
|C Tutorial For Beginners||Intends to teach C to someone with no previous experience.|
|C for C++ Programmers||Highlights the differences with C++ including comments, input/output, memory allocation, variable declarations, constants, structures, booleans, libraries and suggested reading.|
|C For C++ Programmers||Introduction to the subset of C++ and differences between the languages including scope, data structures, function behavior, library functions, input/output and compiling.|
|Outputting text||outputting text in C|
|Use of variables in C||The use of Variables in 'C'. - Variable types -Global, local, static. Where to Declare Variables. Strings can't be declared as a string.|
|Intro to C||covers a little about C, printf, and newline esc.|
|C variables||a little about variables in C|
|Ground cero guide to C||Attempts to introduce absolute beginners to C.|
|The basics of singly linked lists||The basics of singly linked lists|
|Crash proof C/C++ code||Christopher McGee explains the different causes of crashes and how to make them a thing of the past by following a few simple rules as you write code.|
|C elements of style||This book covers only the C language and is a bit out dated. However it still contains a lot of good advice. HTML and pdf versions available|
|Intro to pointers||An article showing the use of pointers in C and C++|
|First C program||Hello world in C|
|Constants and variables||Constants and variables in C|
|Data types||All about C's data types|
|type modifiers||type modifiers|
|Arithmetic operators||Arithmetic operators|
|Input And Output||Input And Output in C|
|Printf and Scanf||Displaying output and recieving input|
|Comparison and Logical Operators||Comparison and Logical Operators|
|Conditional Branching 1 and 2||Conditional Branching 1 and 2|
|Looping||looping in C|
|Bitwise operators 1||Bitwise operators part 1|
|Bitwise operators 2||Bitwise operators part 2|
|Bitwise operators 3||Bitwise operators part 3|
|Functions||All about functions|
|Arrays 1||Arrays in C part 1|
|Arrays 2||Arrays in C part 2|
|Passing arrays to functions||passing arrays to functions|
|Pointers 1||Pointers tutorial part 1|
|Pointers 2||Pointers tutorial part 2|
|Pointers 3||Pointers tutorial part 3|
|Strings 1||About strings in C part 1|
|Strings 2||About strings in C part 2|
|String / Number conversion||Converting between strings and numbers in C|
|String functions||Functions to manipulate strings in C|
|Enum and Typedef||About enum and typedef in C|
|Structures 1||Structures part 1|
|Structures 2||Structures in C part 2|
|Structures 3||About structures and C part 3|
|Unions||Unions and C|
|Memory allocation||Memory management in your programs|
|Simply C||An intro to C|
|Advanced Linked Lists||This tutorial will cover the rest of the more advanced features and uses of linked lists|
|Bit manipulation||This tutorial will introduce you to the binary and hexadecimal number systems, and teach you how to manipulate individual bits|
|loading a wav file||A tutorial with code, that shows how to load a .wav file in C|
|loops in C||a short tutorial about loops in C|
|pointers in C||This is a small primer on pointers in C. A must for a beginner.|
|Pointers and arrays in C||A well-written and comprehensive tutorial, about pointers and arrays in C.|
|C windows programming||Large tutorial on Windows Programming with C. Explains how to deal with menus, dialogs, windows, files and more...|
|Bug free C code||Online book by Jerry Jongerius advocates a style of programming based upon classes, data abstraction, run-time type checking, and fault tolerant functions which results in bug-free C code.|
|ansi c reference||This is a guide to all ANSI-C functions that exists.|
|gametutorials C tutorials||A nice collection of downloadable code examples . Well documented .|
|Coronado C course (commercial)||The C tutorial teaches you the entire C language. It covers the ANSI-C standard and gives a few illustrations of the original K&R C language. It is composed of 13 chapters which should be studied in order since topics are introduced in a logical sequence and build upon topics introduced in previous chapters.|
|Pointers to functions in C||This article explains Pointers to Functions in C. There may be thousands of programmers who know how to use pointers to functions, but I know that there are many, many more who have no idea what it is and how to use it. This article is for those who know C programming very well, but are not yet familiar with this wonderful concept of using pointers to functions.|
|Variables||Variables in C|
|Operators||Operators in C|
|Constructs||constructs for program flow|
|Arrays||Arrays in C|
|Functions||Functions in C|
|Pointers and strings||Pointers and strings in C|
|Memory||Memory allocation in C|
|Structures||Structures in C|
|Linked lists||Linked lists in C|
|File handling||File handling in C|
|Command line arguments||Command line arguments in C|
|bitwise operators||Bitwise operators in C|
|Debugging||Debugging and testing in C|
|First program||your first ever program - Hello World|
|declaring, variables, keywords, case sensitivness||declaring, variables, keywords, case sensitivness|
|declaring, constants, directives||declaring, constants, directives|
|I/O||input, output, conversion characters, gets, puts, scanf, printf - I/O|
|if.. else and else if - selection statements||if.. else and else if - selection statements|
|logical operators||logical operators - short summary|
|the switch() case statement||the switch() case statement|
|iteration statements||while loop, do..while loop, for loop - iteration statements|
|one dimensional arrays, string literals||one dimensional arrays, string literals|
|introduction to pointers||introduction to pointers|
|functions, function protytypes||functions, function protytypes|
|Introduction to C/C++ Compilers||Introduction to C/C++ Compilers|
|Input, Output and Libraries||Input, Output and Libraries|
|Using Different Data Types||Using Different Data Types|
|Initializing Variables and Arithmetic Operators||Initializing Variables and Arithmetic Operators|
|Declaring Constants and Preprocessor Directives||Declaring Constants and Preprocessor Directives|
|Comments, Errors, clrscr(), writing good readable programs||Comments, Errors, clrscr(), writing good readable programs|
|One Dimensional Arrays and Strings||One Dimensional Arrays and Strings|
|Relational Operators||Relational Operators, the switch statement and use of indentation|
|for loops||for loops|
|while and do ...while Loops||while and do ...while Loops|
|Functions, Local and Global Variables||Functions, Local and Global Variables|
|using atoi(), atof(), strcpy(), toupper(), stdlib.h, ctype.h, string.h header files||using atoi(), atof(), strcpy(), toupper(), stdlib.h, ctype.h, string.h header files|
|libraries||libraries in C|
|c guide||programmers guide to C|
|ctutorde||C language tutorial, style, and quiz program|
|Lesson 1: Hello World||Lesson 1: Hello World|
|Lesson 2: Variables||Lesson 2: Variables|
|Lesson 3: Constants||Lesson 3: Constants|
|Lesson 4: Input and Output||Lesson 4: Input and Output|
|Lesson 6: Conditional Processing, Part 2||Lesson 6: Conditional Processing, Part 2|
|Lesson 7: Looping||Lesson 7: Looping|
|Lesson 8: Introduction to Pointers||Lesson 8: Introduction to Pointers|
|Lesson 10: Strings||Lesson 10: Strings|
|Lesson 11: Structures||Lesson 11: Structures|
|Lesson 12: Memory Allocation||Lesson 12: Memory Allocation|
|Lesson 13: File I/0 and Command Line Arguments||Lesson 13: File I/0 and Command Line Arguments|
|Lesson 14: Functions||Lesson 14: Functions|
|Lesson 15: Scope and Program Structure||Lesson 15: Scope and Program Structure|
|VGA Basics||Setting the video mode, plotting a pixel, and mode 0x13 memory.|
|Primitive Shapes & Lines||Drawing lines, polygons, rectangles, and circles. Also, Bresenham's algorithm, fixed-point math and pre-computing tables.|
|Bitmaps & Palette Manipulation||The BMP file format, drawing bitmaps, and palette manipulation.|
|Mouse Support & Animation||Mouse status, motion, and buttons. Also, animation.|
|Double Buffering, Page Flipping, & Unchained Mode||Double buffering, page flipping, structure of unchained mode, and 256-color modes other than 320x200.|
|Pointers And Arrays||Pointers And Arrays|
|Brief Intro on Recursion||Brief Intro on Recursion|
|Codevision C turorial||A simple tutorial in PDF format to get up and running with codevision C compiler for AVR microcontrollers|
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes. If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner.
ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.
Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers : Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism : The Iron Law of Oligarchy : Libertarian Philosophy
War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds : Larry Wall : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting Languages : Perl history : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history
The Peter Principle : Parkinson Law : 1984 : The Mythical Man-Month : How to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor
The Last but not Least
Copyright © 1996-2016 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.
Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...
|You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info|
The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.
Last modified: October 20, 2015