|Wikibooks has a book on the topic of C Programming.
C is one of the most widely used programming languages in the world, whose application are in all fields of computer sciences, telecom and electronics embedded devices, graphic applications,... Therefore, C is a common choice for people wanting to learn how to program. This course assumes no previous programming experience and will guide you through all of the aspects of programming in C.
The course will roughly follow the C Programming book at Wikibooks as well as provide supplementary reading material for each lesson primarily through Wikipedia. Exercises will be given at the end of each course along with possible solutions. It is highly recommended that all of the exercises be worked because programming is learned by doing, not just reading.
Beginner level edit
The beginner course, which can be considered as an introduction to C, consists of 15 lessons, plus exercise and answer. This course will give student an overview of C, tools setup to run C program, variables, functions, basic data type and data structure and simple techniques to develop a multi-source files program (with preprocessors and header file). This course gives student knowledge to develop software running at "CLI level", the ability to solve basic data structure and algorithm problem, or providing base knowledge for further investigation on software development with C on embedded devices (micro-controller or Linux embedded single board computer), system programming (Linux, Windows), device driver, desktop application,...
- Before You Start: Introduction about the course, a brief history of C programming language and overview of tools required to start the course
- Introduction: Fundamental concepts of hardware and software, compiler, how the computer executes software, and start with your very first C program
- Data types
- Functions, Flow control
- Basic Output, Input and Output
- Memory Management
Linux system programming edit
|Warning: This course is for those who want to develop software on Linux-based platform. Beginner level students, micro-controller or Windows-based developers can skip this part
|Warning: This course is under construction
- Socket programming
Additional resources edit
- C Source Codes: This page store source codes related to the course
Main contributors edit
This section is for any Wikiversity user who contributes to that course and is ready to support the students
- DamienBlack: Creator of the course
- I8086: Main contributor to introduction lessons
- Dave Braunschweig: Main contributor to introduction lessons
- Guywan: Main contributor to introduction lessons
- Anonymous Agent: Be always available to answer any questions related to this C programming course, as well as other embedded software programming question related to C/CPP programming. Feel free to reach me on my talk page or open a talk on the discusion page then tag me on it.