C Programming For Beginners

Learn C in ten easy steps on Windows, Mac OS X or Linux

C Programming For Beginners

Price$149.00

SchoolUdemy
ScheduleOn Demand
LocationOnline
Duration8 hours
Credits0
Enroll
Rating
Reviews10
Popularity7339 Registered
In CertificateNo
Difficultyall level
EffortN/A
Course DetailsCourse FAQ

C Programming For Beginners

Categories:
Development

The fastest, easiest way to learn to program C on a Mac or Windows. This course will teach you to program the C language from the ground up. You will learn everything from the very fundamentals of programming right through to the complexities of pointers, addresses and File IO. Maybe you've tried to master C before but failed. Or maybe you are new to C or new to programming. If so, this is the course for you!

C is one of the most important of all programming languages. It is used to program desktop applications, compilers, tools and utilities and even hardware devices. The C language is fast and efficient – but it can be hard to learn. Unless you use this course. This course begins with a gentle introduction to C but quickly moves on to explain some of its most confusing features: everything from C's 'scoping' rules to the curious connection between arrays and memory addresses. By the end of the course you will have a deep understanding both of the C language itself and also of the underlying 'architecture' of your computer.

What you will learn:

  • The fundamentals of programming – from the ground up
  • How to program on a Mac or on Windows
  • The nitty-gritty details of the C language
  • Advanced topics such as memory allocation, the stack and heap, and binary file IO

Who should take the course

  • Beginners – if you've never coded before, you can learn C step by step
  • Programmers switching to C from some other language such as Java, Ruby or Python
  • Cross-platform developers – there are C compilers for all major operating systems
  • Anyone who needs to program C++ or Objective-C. The C language is the place to start

Course Details

Getting Ready
online
chapter
On Demand
Welcome to the course
online
lecture
<p style=""> C is an important cross-platform programming language. In this video, I provide a quick introduction to the language and how to learn it using this course. </p>
On Demand
C Editors and IDEs
online
lecture
<p style=""> In order to write C programs you will need a suitable editor or IDE (Integrated Development Environment). Here are a few suggestions&hellip; </p>
On Demand
FAQ - Read This First!
online
lecture
<p> <span>This is a PDF document containing answers to a number of common questions that have been asked by students.</span> </p>
On Demand
Install CodeLite (Windows or Mac)
online
lecture
<p style=""> In this course I will generally use the free CodeLite C editor which is available for OS X, Windows and Linux. This video shows how to get CodeLite installed on your computer. </p>
On Demand
Install a C compiler on a Mac
online
lecture
<p style=""> If you are using a Mac you may need to download some additional tools in order that an editor such as CodeLite is able to find a compiler to build and run your programs. </p>
On Demand
Introduction to CodeLite
online
lecture
<p style=""> Let&rsquo;s take a quick look at the features of the CodeLite editor &ndash; from syntax colouring to keyboard shortcuts. CodeLite makes light work of creating C projects on Windows and OS X. </p>
On Demand
Programming C with NetBeans
online
lecture
<p style=""> Maybe you are already use the NetBeans IDE for Java programming. Or maybe you&#039;d just like to use NetBeans as your C environment. Here I explain how to get up and running. </p>
On Demand
Importing Projects Into NetBeans
online
lecture
<p style=""> There are various ways of importing source code into NetBeans. Here I show a simple way of creating a NetBeans C project using the files from one of my sample projects. </p>
On Demand
Compiling C programs at the system prompt
online
lecture
<p> You don&#039;t need to use an IDE at all. If you are having problems installing an IDE or if you&#039;d prefer to use a simple text editor, you can do so – and compile your programs in a System or Terminal window. </p>
On Demand
Using Visual Studio
online
lecture
<p style=""> If you are using Windows, Microsoft’s Visual Studio (even the free edition) may be used to create C projects. Here I explain how to do that. </p>
On Demand
The Little Book Of C -- (download from Resources panel)
online
lecture
<p> <strong style="">The Little Book Of C</strong> is the course eBook. There is a chapter for each step of the course. Use the book, the source code and the videos together for a full understanding of the topics discussed. </p>
On Demand
C Source Code Archive
online
lecture
On Demand
C Basics
online
quiz
<p style="">Getting ready for C programming</p>
On Demand
C programming basics
online
chapter
On Demand
A first program - Hello world
online
lecture
<p style=""> Here I take a look at a simple program that just displays &ldquo;Hello world&rdquo; and discover that even a few lines of C code illustrate a number of important features of the C language. </p>
On Demand
Arguments and return values
online
lecture
<p style=""> Some &ldquo;Hello world&rdquo; programs are more complex than others. Here I look at a program that takes some data as &lsquo;arguments&rsquo; and returns a value. </p>
On Demand
Passing commandline arguments to your program
online
lecture
<p style=""> Here I explain how to pass arguments from the commandline (or Terminal) to your program. </p>
On Demand
How to open a command prompt on Windows or OS X
online
lecture
<p style=""> If you don&rsquo;t know how to open a command window on Windows or the Terminal on OS X and use it to run your programs, this lesson explains all. </p>
On Demand
printf
online
lecture
<p style=""> The printf() function lets you display the output from your program. It&rsquo;s a very useful function but must be used with care &ndash; as I explain here. </p>
On Demand
Comments
online
lecture
<p style=""> You can document your code with comments that are ignored by the compiler. Here I explain two types of comment. </p>
On Demand
C Programs
online
quiz
<p style=""> Fundamental features of a C program</p>
On Demand
Variables, constants and types
online
chapter
On Demand
Variables and types
online
lecture
<p style=""> Variables are identifiers whose values may vary during the running of your program. This video explains the basics of variables and their types in C. </p>
On Demand
Integers and floating point numbers
online
lecture
<p style=""> You may do calculations with both full numbers &ndash; integers &ndash; and fractional numbers &ndash; floating points. But be careful: the end results may not be what you expect! </p>
On Demand
Constants
online
lecture
<p style=""> If you want to create identifiers to store values that are not expected to change during the execution of a program, you can #define them. </p>
On Demand
More about constants
online
lecture
<p style=""> Identifiers that are created using #define are often used as &lsquo;constants&rsquo; &ndash; but, in fact, there is an alternative &ndash; using the keyword &lsquo;const&rsquo;. Here I explain the difference. </p>
On Demand
Naming conventions
online
lecture
<p style=""> What should you call your variables and constants? Here I consider some of the naming conventions adopted by man C programmers. </p>
On Demand
Variables and constants
online
quiz
<p style=""> How to declare and use variables and constants</p>
On Demand
Operators, tests and user input
online
chapter
On Demand
Operators – equality and assignment
online
lecture
<p style=""> There are two &lsquo;equals&rsquo; operators in C &ndash; one uses a single equals sign to assign a value to a variable. Another uses two equals signs to test for equality. Here I explain the difference. </p>
On Demand
Operators – tests and comparisons
online
lecture
<p style=""> You will frequently need to make comparisons between one value and some other value. C has a number of &lsquo;relational operators&rsquo; to help you do this. </p>
On Demand
Compound assignment operators
online
lecture
<p style=""> Some assignment operators in C perform a calculation prior to assigning the result to a variable. These are called &lsquo;compound assignment operators&rsquo;. </p>
On Demand
Increment and decrement operators
online
lecture
<p style=""> You can use ++ and &ndash; to add and subtract 1 from a variable. But be careful &ndash; you can put these operators either before or after a variable and the position matters! </p>
On Demand
if and else tests
online
lecture
<p style=""> There are times when you need to take different actions according to some test condition. Here I explain how to use if..else tests. </p>
On Demand
Problems with gets() and fgets()
online
lecture
<p style=""> It may seem easy to get input with gets() but this may cause problems. The fgets() function is a safer alternative &ndash; but that too may cause its own problems, as I explain here. </p>
On Demand
Input, buffers and flushing
online
lecture
<p style=""> Sometimes you may have more data lurking in the dark corners of your computer&rsquo;s than you are expecting. Here I explain some of the mysteries of buffers and why they need to be flushed. </p>
On Demand
My own line-reading function
online
lecture
<p style=""> Here I look at two possible ways of writing a function that safely reads in characters entered at the command prompt and also flushes any unneeded characters from the buffer. </p>
On Demand
Logical Operators
online
lecture
<p style=""> If you need to chain together conditions when making tests, you need to use C&rsquo;s &lsquo;logical operators&rsquo;. </p>
On Demand
Operators and tests
online
quiz
<p style=""> Testing and assigning values</p>
On Demand
Functions, arguments and switch
online
chapter
On Demand
Functions
online
lecture
<p style=""> We&rsquo;ve used functions from the very start of this course. In this lesson I explain more about what functions are and how they really work. </p>
On Demand
Arguments
online
lecture
<p style=""> You can pass data to functions are arguments that are assigned to &lsquo;named parameters&rsquo;. Here I explain the nitty-gritty details of arguments . </p>
On Demand
Switch statements
online
lecture
<p style=""> There may be times when you need to take many different possible actions depending on the value of some variable. The switch statement can help out. </p>
On Demand
Switch statements in more detail
online
lecture
<p style=""> In this lesson I look at more examples of switch statements, including some options that are only available with some C compilers. </p>
On Demand
Functions and switch
online
quiz
<p style=""> Declaring functions and making multi-part tests with <strong style="">switch </strong>statements</p>
On Demand
Arrays, loops and break
online
chapter
On Demand
Arrays
online
lecture
<p style=""> Arrays are sequential collections. You can use arrays to store lists of chars, ints and other types of data. Here I explain the fundamentals. </p>
On Demand
Initializing arrays
online
lecture
<p style=""> You can add elements to an array at the same time the array is declared. Here I show how to do this and I also explain how the results of calculations may change according to the &lsquo;precedence&rsquo; of operators. </p>
On Demand
‘while’ loops
online
lecture
<p style=""> Sometimes you might want to run some code not for a predetermined number of times but for just as long as some condition remains true. You can use a &lsquo;while&rsquo; loop to do this. </p>
On Demand
‘do..while’ loops
online
lecture
<p style=""> In some circumstances the code in a &lsquo;while&rsquo; may never be run. If you want to ensure that your code is always run at least once, use a &lsquo;do..while&rsquo; loop. </p>
On Demand
break
online
lecture
<p style=""> Sometimes it is useful to break out of a loop even if the loop&rsquo;s test condition is not false. Here I explain how to use break in a &lsquo;while&rsquo; or &lsquo;for&rsquo; loop. </p>
On Demand
break and continue
online
lecture
<p style=""> Sometimes you may want to break from a loop once but then continue running the loop afterwards. Here I explain the difference between &lsquo;break&rsquo; and &lsquo;continue&rsquo;. </p>
On Demand
Multidimensional arrays
online
lecture
<p style=""> Arrays can have multiple dimensions to let you star arrays inside arrays. Here I explain how you can think of a two-dimensional array as being a bit like a spreadsheet with intersecting rows and columns. </p>
On Demand
Arrays and loops
online
quiz
<p style=""> Creating and iterating over sequential lists</p>
On Demand
Strings, chars and pointers
online
chapter
On Demand
Strings, pointers and addresses
online
lecture
<p style=""> In order to understand strings in C you need to understand how computer memory can be represented by &lsquo;addresses&rsquo; and how pointer variables can refer to those addresses. </p>
On Demand
Null-terminated strings
online
lecture
<p style=""> Many programming languages have a dedicated string data-type. Here we revise the essential features of C strings and explain the significance of its lack of a string type. </p>
On Demand
Char arrays and pointers
online
lecture
<p style=""> At first sight there may seem to be no difference between an array of chars such as char <strong style="">str[] </strong>and a char-pointer such as char <strong style="">*str</strong>. In fact the difference is profound and important. </p>
On Demand
Arrays, pointers and assignment
online
lecture
<p style=""> Here I look at some more examples of using arrays and pointers and consider why you can assign to a pointer variable but not to an array name. </p>
On Demand
Strings and functions, stack and heap
online
lecture
<p style=""> How do you return strings from functions And we also look at the importance of understanding the &lsquo;stack and &lsquo;heap&rsquo; in your computer&rsquo;s memory. </p>
On Demand
String functions
online
lecture
<p style=""> C compilers come with ready-to-use string functions. Here I look at some of the traditional functions as well as some more modern alternatives. </p>
On Demand
char functions
online
lecture
<p style=""> There are also functions that let you analyse individual characters in order to determine to which category each char belongs. </p>
On Demand
chars and strings
online
lecture
<p style=""> What is the difference between &lsquo;x&rsquo; and &ldquo;x&rdquo;? They may look almost identical but, in fact, they are completely different &ndash; as this lesson explains. </p>
On Demand
Pointers and Strings
online
quiz
<p style=""> Strings and memory addresses</p>
On Demand
Structs, enums, header files and scope
online
chapter
On Demand
structs
online
lecture
<p style=""> Let&rsquo;s imagine that you want to create a catalogue of your CD collection in which each record contains a name, the artist name, the number of tacks and a user rating. Here I explain how structs can help. </p>
On Demand
typedef
online
lecture
<p style=""> C lets you define your own named types. This makes it possible to create type names for everything from an int to a string to a custom record or struct. </p>
On Demand
Enums
online
lecture
<p style=""> Enums let you created groups of named constants that can help to document your code. Here I explain their value &ndash; and their limitations. </p>
On Demand
Header files
online
lecture
<p style=""> What is the purpose of the &lsquo;.h&rsquo; header files that most C programs include? Here I explain why header files are useful and how they are used during the compilation of your programs. </p>
On Demand
A custom header file
online
lecture
<p style=""> Here I look at an example of a header file that provides access to a set of functions and constants that I have written. </p>
On Demand
Scope
online
lecture
<p style=""> &lsquo;Scope&rsquo; defines the visibility of functions and variables to your code. Here I explain local and global scope and look at the scoping of two variables with the same name. </p>
On Demand
Scope and external files
online
lecture
<p style=""> What is the scope of functions declared in external files &ndash; that is, functions that are in different files but the same project? </p>
On Demand
Static functions and variables
online
lecture
<p style=""> Sometimes you may want your functions to be &lsquo;private&rsquo; &ndash; hidden from code in other files. Here I explain how static functions can do this, and I also explain static variables. </p>
On Demand
Compiling from the commandline
online
lecture
<p style=""> To understand better how the compiler and linker work and how the compiler may rely on information from header files, try compiling your projects at the system prompt. </p>
On Demand
Structs, enums, headers and scope
online
quiz
<p style="">Delving deeper into C</p>
On Demand
File-handling
online
chapter
On Demand
Opening and closing files
online
lecture
<p style=""> In this step we look at file operations. In this video I explain how to open and close disk files in order to save and load data to and from them. </p>
On Demand
File modes
online
lecture
<p style=""> When you open a file you can use a short string to indicate the file &lsquo;mode&rsquo;. A file mode may make a file available for reading, writing or appending in text or binary format. </p>
On Demand
Reading and writing a text file
online
lecture
<p style=""> Here I go through the code in a sample project to show how text can be saved to and loaded from a file, how the file contents can be erased and how the file itself can be deleted. </p>
On Demand
Counting lines in a text file
online
lecture
<p style=""> Once you&rsquo;ve opened a text file you may want to do something with the text it contains. In this video I show how to count the number of lines in a file. </p>
On Demand
Search in a text file
online
lecture
<p style=""> Now you know how to read and write text files you can write programs to process the text in a variety of ways &ndash; for example, to search for words in a file or encrypt its contents. </p>
On Demand
Files
online
quiz
<p style=""> Opening and closing files for reading and writing</p>
On Demand
Binary files and memory allocation
online
chapter
On Demand
Binary files
online
lecture
<p style=""> Not all files contain plain text. Some files may contain binary data &ndash; for example, if I were to save a CD database to disk, the data stored in each CD <strong style="">struct </strong>would have a binary representation. This video explains the basics. </p>
On Demand
Allocating and freeing memory
online
lecture
<p style=""> Sometimes you need to allocate memory dynamically. But once you&rsquo;ve finished with that memory you need to free it. This lesson gives an example of code that does this. </p>
On Demand
Types and type casts
online
lecture
<p style=""> The C language provides a number of standard data types. Sometimes it is useful to treat one type as another type. In this lesson I explain the hows and whys of &lsquo;type-casting&rsquo;. </p>
On Demand
Creating a CD database
online
lecture
<p style=""> The final project in this course creates a database of CD <strong style="">struct</strong>s that are saved in a binary file on disk. This video introduces you to this project. </p>
On Demand
Saving and loading records in a binary file
online
lecture
<p style=""> Here I explain how to save a collection of records (<strong style="">struct</strong>s) into a binary data file and how to calculate the number of records stored before allocating memory when reading them in again. </p>
On Demand
Adding records to a binary file
online
lecture
<p style=""> Here I explain how to create a new CD <strong style="">struct </strong>in memory and then append its data to the end of an existing binary file storing CD records. </p>
On Demand
Modifying records in a binary file
online
lecture
<p style=""> Finally I show an example of how to find a record in a binary file and modify the data it contains. You can use the sample program as a basis for your own data-saving application. </p>
On Demand
Memory and pointers
online
quiz
<p style=""> More on how C deals with pointers and memory allocation</p>
On Demand
And finally…
online
lecture
<p style=""> We&rsquo;ve covered a lot of ground in the course on C programming. Now it&rsquo;s time to move on&hellip; </p>
On Demand

FAQ

Q. How long do I have access to the course materials?

A. You can view and review the lecture materials indefinitely, like an on-demand channel.

Q. What is the refund policy on the course?

A. We like to keep our users happy, so we have a 30-day no questions asked refund policy. Send an email to [email protected] for refund requests.

Q. Can I take my courses with me wherever I go?

A. Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!


Reviews of C Programming For Beginners

  1. Posted by Jack Z| March 29, 2016

    Superb quality content, dutifully and thoroughly explained by an eloquent and experienced teacher. Can't ask for more really.

  2. Posted by Carlos Elosegui| March 25, 2016

    Easy to follow

  3. Posted by Sal Tubaldare| March 23, 2016

    Huw Collingbourne has put together an excellent C course with C-Programming-for-Beginners. It is well organized and well taught. Huw makes learning C easier than most other learning resources. I would recommend this course to anyone wanting to learn programming in general or more specifically C programming. Great job Huw and thanks.

  4. Posted by Mark Woodall| March 19, 2016

    more linux please

  5. Posted by Marc Thomas| March 18, 2016

    This course is a great introduction to the C language. Some prior programming experience in another language is helpful, but not essential. The accompanying course book "The little book of C" is a useful resource. Thanks Huw for putting this course together! A few suggestions: 1) Provide a lecture on and more info about the debugger. 2) A quick tour of CodeLite itself would be beneficial. 3) Some optional Course Exercises to reinforce the material would be useful.

  6. Posted by Steve Young| March 17, 2016

    Good so far. Clear instructions. Looking forward to more of this course.

  7. Posted by Wilson Esquivel| March 15, 2016

    very easy to follow.

  8. Posted by Jerry Hubbard| March 13, 2016

    The beginning section of the course it great. The progress is logical. The English is much better than mine. I am from the US Midwest.

  9. Posted by Corey Glidden| March 11, 2016

    The instructor is clear and the lessons make sense. I like that they seem to build upon each other. I would like more or longer quizzes, though.

  10. Posted by Moses| March 11, 2016

    Very Good & Clear instructions and easy to follow! Awesome!!

Course provided by: Udemy