Skip to content

GeriHonti/ANSIC_TEACH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

ANSIC_TEACH

ANSIC teaching materials. Used for university programming classes.

First encounter with programming to stable understanding of programming paradigms. The class provides the students a basic level of programming skills in C.

Recommended books

List is a copy from SO: original article PB copy: PBLINK

Beginner

Programming in C (4th Edition) - Stephen Kochan (2014). A good general introduction and tutorial.

C Primer Plus (5th Edition) - Stephen Prata (2004)

C Programming: A Modern Approach (2nd Edition) - K. N. King (2008). A good book for learning C.

A Book on C - Al Kelley/Ira Pohl (1998). The C Book (Free Online) - Mike Banahan, Declan Brady, and Mark Doran (1991).

C: How to Program (8th Edition) - Paul Deitel and Harvey M. Deitel (2015). Lots of good tips and best practices for beginners. The index is very good and serves as a decent reference (just not fully comprehensive, and very shallow).

Head First C - David Griffiths and Dawn Griffiths (2012).

Beginning C (5th Edition) - Ivor Horton (2013). Very good explanation of pointers, using lots of small but complete programs.

Sams Teach Yourself C in 21 Days - Bradley L. Jones and Peter Aitken (2002). Very good introductory stuff.

Applications Programming in ANSI C - Richard Johnsonbaugh and Martin Kalin (1996).

Intermediate

Object-oriented Programming with ANSI-C (Free PDF) - Axel-Tobias Schreiner (1993). The code gets a bit convoluted. If you want C++, use C++.

C Interfaces and Implementations - David R. Hanson (1997). Provides information on how to define a boundary between an interface and implementation in C in a generic and reusable fashion. It also demonstrates this principle by applying it to the implementation of common mechanisms and data structures in C, such as lists, sets, exceptions, string manipulation, memory allocators, and more. Basically, Hanson took all the code he'd written as part of building Icon and lcc and pulled out the best bits in a form that other people could reuse for their own projects. It's a model of good C programming using modern design techniques (including Liskov's data abstraction), showing how to organize a big C project as a bunch of useful libraries.

The C Puzzle Book - Alan R. Feuer (1998)

The Standard C Library - P.J. Plauger (1992). It contains the complete source code to an implementation of the C89 standard library, along with extensive discussion about the design and why the code is designed as shown.

21st Century C: C Tips from the New School - Ben Klemens (2012). In addition to the C language, the book explains gdb, valgrind, autotools, and git. The comments on style are found in the last part (Chapter 6 and beyond).

Algorithms in C - Robert Sedgewick (1997). Gives you a real grasp of implementing algorithms in C. Very lucid and clear; will probably make you want to throw away all of your other algorithms books and keep this one.

Pointers on C - Kenneth Reek (1997).

Pointers in C - Naveen Toppo and Hrishikesh Dewan (2013).

Problem Solving and Program Design in C (6th Edition) - Jeri R. Hanly and Elliot B. Koffman (2009).

Data Structures - An Advanced Approach Using C - Jeffrey Esakov and Tom Weiss (1989).

C Unleashed - Richard Heathfield, Lawrence Kirby, et al. (2000). Not ideal, but it is worth intermediate programmers practicing problems written in this book. This is a good cookbook-like approach suggested by comp.lang.c contributors.

Modern C — Jens Gustedt (2017). Covers C in 5 levels (encounter, acquaintance, cognition, experience, ambition) from beginning C to advanced C. It covers C11 threads and atomic access, which few other books do and not all compilers recognize in all environments.

Expert

Expert C Programming: Deep C Secrets - Peter van der Linden (1994). Lots of interesting information and war stories from the Sun compiler team, but a little dated in places.

Advanced C Programming by Example - John W. Perry (1998).

Advanced Programming in the UNIX Environment - Richard W. Stevens and Stephen A. Rago (2013). Comprehensive description of how to use the Unix APIs from C code, but not so much about the mechanics of C coding.

Advanced C: Food for the Educated Palate - Narain Gehani (1985). Great on pointers, pointers to functions, and a variety of advanced topics, such as how stuff is stored in memory, dynamic memory, stack usage, function calling, parameter passing, etc. Assumes you have a good grasp of C to start with. Warning: pre-dates the ANSI standard and a lot of modern programming design.

Computer Programming: An Introduction for the Scientifically Inclined - Sander Stoks (2008). Great book about scientific use of programming languages.

Reversing: Secrets of Reverse Engineering - Eldad Eilam (2005). For those who want to test the limits of their ethics.

References

The C Programming Language (2nd Edition) - Brian W. Kernighan and Dennis M. Ritchie (1988). Still a good, short but complete introduction to C, written by the the inventor of C. However, the language has changed and good C style has developed in the last 25 years, and there are parts of the book that show its age.

C: A Reference Manual (5th Edition) - Samuel P. Harbison and Guy R. Steele (2002). An excellent reference book on C, up to and including C99. It is not a tutorial, and probably unfit for beginners. It's great if you need to write a compiler for C, as the authors had to do when they started.

C Pocket Reference (O'Reilly) - Peter Prinz and Ulla Kirch-Prinz (2002).

The comp.lang.c FAQ - Steve Summit. Web site with answers to many questions about C.

Various versions of the C language standards can be found here.

The new C standard - an annotated reference (Free PDF) - Derek M. Jones (2009). The "new standard" referred to is the old C99 standard rather than C11.

Rationale for C99 Standard.

Recommended skill books (in hungarian)

(1) Pohl Laszlo - Vizsga es ZH feladatok gyujtemenye Programozas alapjai I targybol, informatikusoknak

(2) Dr. Wilde Laszlone - Programozasi feladatok gyujtemenye (Veszpremi egyetemi kiado)

(3) Suranyi Szabolcs - Programozasi alapfeladatok

(4) Smidla Jozsef - Feladatgyujtemény a C programozási nyelvhez

Releases

No releases published

Packages

No packages published