This course lets you master all fundamentals concepts of C programming language because:
The course is not assumption oriented. So we assume that
The Course contains
All concepts explained using animation supported by voice-over
Tests at the end of chapter and at the end of important units
Gradually this course would be 15+ hours of course. The number of hours taken may vary from programmer to programmer. If you write sufficient programs at the end of each chapter then you will become master in C programming language. Support material will be uploaded continuously.
If you are undergraduate engineering or polytechnic student or a professional or a job aspirant then this course is for you. The course is going to cover writing programs in conventional DOS based TC compiler, latest IDEs as well as gcc compilation in Linux environment.
The addition of notes, glossary, e-contents will be continuous process.
If the automobile had followed the same development as the computer, a Rolls Royce would today cost $100, get a million miles per gallon, and explode once a year killing everyone inside...!
Here is introduction to computers. Even you know about computers, just enjoy the beginning...!
This quiz is to test how carefully you have listened to recently covered lecture
Demystifying C programming language has more than 17 hours of animated videos to help you with other resource material. There is one video for many exercises where I either demonstrate the exercise, or give you tips
for completing the exercise. The best way to use the videos is to listen it carefully either single time or multiple times. Then attempt or complete the exercises. If you fail to write error free code then review what you have learned. if you are stuck, don't worry. Just move ahead. Go for next chapter. Come back and attempt exercises in your break time. This will slowly wean you off of using videos repeatedly to learn programming and build your skills
at understanding code directly. Stick with it.
Software innovations, like every other kind of innovation, requires the ability to collaborate and share ideas with other people and to sit down and talk with customers and get their feedback and understand their needs
Here is a video explaining software part of computers. We need to know before we start learning language
Here is test on fundamental concepts of Software
When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.
Let's see what the computer programming language is all about...
Take a quiz on fundamentals of Programming languages
"It's not good because it's old, it's old because it's good.".
He might have written for C... who knows?
A Simple test on Introduction to C
If you talk to a man in a language he understands, that goes to his head. If you talk to him in his language that goes to his heart
Let's have a look at building blocks of C language
Take an exhaustive test on this topic
This unit explains basic structure of any standard C Program which is prerequisite for writing first C program.
Any C statement will come under either of the 4 categories of general structure of C program viz. Type declaration statement, input/output statement, arithmetic instruction and control structure.
Each of the above category except control structure has been covered in detail using animation and assuming that student does not know anything about general structure of any program
Special focus is given on operators, category of operators, operands and arithmetic instruction
The unit is concluded by focusing on two of the frequently used functions in C i.e. printf and scanf in C
Try out an interesting quiz on structure of any standard C program
First, solve the problem. Then, write the code.
Here is a video that explains how to open compiler (DOS based TC), open file, write program and how to save the program. Further two programs have been been taken in this video and each step has been explained with appropriate animation. What happens at the background has been shown using animation which will boost your confidence before you write programs on your own.
This is final test on first chapter of Demystifying C
C is quirky, flawed, and an enormous success...
Unix is basically a simple operating system but you have to be a genius to understand the simplicity...!
C the Princess of Programming Languages...!
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program...
This is the new topic inserted for those who want to write and compile programs in Ubuntu based gcc compiler. My designers, animators are working round the clock to complete contents of this chapter and are committed to finish remaining topics in this chapter as early as possible.
Controlling complexity is the essence of computer programming...!
Here is the most popular program in the world i.e. "Hello World"....
In this program you would learn about commenting and header files...
Computers are good at following instructions, but not at reading your mind...!
In the second part I am covering basics of main function in C like return type of main function, arguments taken by main function and comparison of gcc with DOS based TC editor
Replace "I'm not good at this" with "I'm Not Good At This Yet"...!
The part 3 covers a few gcc commands once code is written using gedit editor and use of terminal window.
The video explains you compilation and execution of C program using gcc commands
Unix is simple. It just takes a genius to understand its simplicity....!
Here is sample program to convert Temperature in Fahrenheit to degree centigrade.
Here is second part of an interesting program. Listen Carefully
Here is an interesting code for you to study.
Here is summary of this chapter....what you have learnt so far
Take an interesting quiz....! Refresh your mind....Recall your memory....Analyse your understanding...
A good decision is based on knowledge and not on numbers... Plato
Decision is inherent part of everybody's life. So how could be C is away from inclusion of decision while writing program...?
Here the revision of first section is followed by need of decision control structure in C with a few real life examples. Before you learn such control structure in C, you need to know why is it necessary and in which situations...
Here you can learn first decision control structure in C i.e. if control structure
Listen and watch carefully what is the syntax proposed by Dennis and how it can be used while writing a C program
This section also covers a one more operators category like relational operators in C
Take a refreshing test on if control structure in C
Here is second decision control structure i.e. if...else control structure in C. Apart from syntax, I am focusing on design aspect of any program i.e. importance of flowchart...
Along with syntax, the flow of control has been explained using animation and a correlated with real life examples.
A typical C program also has been explained with step by step explaination
Attempt this tricky questions on if-else control structure in C
Sometimes single decision is not sufficient but multiple decisions need to be taken to arrive at the conclusion. The video gives you interesting real life examples for complete clarity of the nesting of if else blocks...!
conditions... more conditions.... many conditions... life becomes complex know...to fulfil the expections...
Same happens with C program and logical operators would help you to convert complex program. Over all there are 3 logical operators in C viz. logical AND, logical OR, and logical NOT
Take a mind twisting test on logical operators in C. To solve this quiz you need to have sufficient knowledge of not only logical operators but relational operators as well. But Don't be discouraged if you score less in this test as it is designed to impart you more knowledge than test your knowledge
It's not at all important to get it right the first time. It's vitally important to get it right the last time...!
When Dennis worked on C, he wanted it to be compact language. Many such facilities are there in C, which justify his attitude. Ternary operator is one of the best example to make the code compact.
Same is explained here with example. Enjoy learning
Take an exhausted test on if-else control structure in C
The one skill that separates bad programmers from good programmers is attention to detail. In fact, it's what separates the good from the bad in any profession. You must pay attention to the tiniest details of your work or you will miss important elements of what you create. In programming, this is how you end up with bugs and difficult-to-use systems
For infrastructure technology, C will be hard to displace...!
repetition in our life makes us perfect...
In programming if we want certain part of the code to be executed repetitively then Dennis has provided the solution in the form of loop control structure
Here is introduction to this 3rd control structure in C language i.e. Loop Control Structure in C
Before learning types, semantics of loops in C, its time to have a look at common parts of loop. Prima facie parts of loop are easy to understand...
But beware... the word "Loophole" is derived from the loop only...
you know what I mean...! Don't you?
Take a simple test on parts of loop... Get fresh...Get Confident
This video explains the first of 3 loops in C and that is wile loop
The syntax is explained with real life animation and real life examples followed by sample program. You can pause and play simultaneously while writing program... Interesting know?
It's said that there is no formula for success or even to become popular...!
Here is second type of loop control structure in C and it is for loop in C. Though all loop serves same purpose and fulfills the need of a programmer, for loop is largely used while writing programs.
May be because of it's syntax, this is most popular loop among programmers community at least at the academic level...
As apparent in the name, this is the 3rd type of loop in C which is slightly modified version of the first loop i.e. while loop...
Seasoned programmers use this loop while implementing data structures in C...!
Take a combined test on while, for and do...while loop in C
IDE features are language smells....!
Story listening should not necessarily be restricted to childhood...!
So here is wonderful story followed by explanation of nesting of loops in C.
To reduce the speed of life we need to apply break... at the same time we forget the past and move on i mean continue... Isn't that the way we live life...?
Here is syntax and use of 2 statements in C incidentally keywords, wonderfully explained using animation
Special dish is always modified version of basic dish particularly prepared to suit food lovers taste and demand... So is the case of this loop in C. So special loop neither a keyword nor a official loop but is a modified version of while or do while loop in C but very useful in practical applications...
Take an exhausted test on loop control structure in C
People are always making rules for themselves and always finding loop-holes...!
Here is first game program for you...
It's simple but interesting. Try it out
Go to withdraw cash at the ATM, get into the car, open your laptop or unlock your smart phone... everywhere you will see Menu... The world is changing and options are numerous... Be it gadgets or utilities... Dennis perhaps was aware about that and so made a provision of one more control structure in C for menu driven programming...!
So here is switch case control structure in C in most interesting way.
By the way if you faced solving a few tricky questions in the quiz section of previous two chapters, I am keeping intricacies of pre-fix and post-fix increment operator in C for download.
The golden rule when reading the menu is, if you cannot pronounce it, you cannot afford it
C is for cookie, it's good enough for me; oh cookie cookie cookie starts with C...
I am like an expensive menu... You can look but you can't afford...!
Take a test on switch-case control structure in C
A very important skill (that most programmers develop over time) is the ability to visually notice differences between things. An experienced programmer can take two pieces of code that are slightly different and immediately start pointing out the differences. Programmers have invented tools to make this even easier, but we won't be using any of these. You first have to train your brain the hard way, then use the tools.
Functions are building blocks of C language. Its time to learn now techniques to break large code into small and manageable modules. This small piece of codes carrying independent tasks are called as functions in C. That is the reason C is called as structured language as well as modular language which ultimately is based on procedure oriented programming methodology. In this lecture let's have a look at introduction to functions in C
In first 4 sections we were writing code inside single function i.e. main function. Besides we were calling a few library functions like printf and scanf. Here we will have a look at types i.e. categories of functions in C language.
Here we are going to study important terminology related with function calling mechanism. Careful listening to these concepts would help you to understand remaining chapters for sure.
Right from the day one after taking up this course, you have been writing int main or void main... What does this exactly mean? The same is explained here with interesting real life example... Enjoy and Understand
Function prototype, function declaration are important part of any C program. As a programmer one needs not only know these concepts but understand and use them. Here is explanation of the same in exclusively interesting way...
Here is a sample program which is going to cover all concepts learnt so far in this chapter
Brainstorming quiz on functions in C. You may need to recall all concepts from 1st to this chapter to solve this test...! Good Wishes
While you do these exercises, typing each one in, you will be making mistakes. It's inevitable; even seasoned programmers would make a few. Your job is to compare what you have written to what's required, and fix all the differences. By doing so, you will train yourself to notice mistakes, bugs, and other problems.
For a C programmer, life without pointers is life without food. Student always desires to learn and exploite immense power of pointer... Here is why...
Pointers can be made to work if you fiddle with them long enough. If you fiddle with anything long enough you will ultimately mess it...! :)
Writing in C or C++ is like running a chain saw with all the safety guards removed...!
Understanding pointers in C is not a skill, it's an aptitude...
Have a refreshing time... after all quiz rejuvenates your mind for new learning process
A program is like a poem: you cannot write a poem without writing it. Yet people talk about programming as if it were a production process and measure “programmer productivity"in terms of "number of lines of code produced”.In so doing they book that number on the wrong side of the ledger: We should always refer to"the number of lines of code spent".
— E. W. Dijkstra
Here is one program to explain how we can write a single function to perform 4 related tasks. The aim of the sample program is how to access variables in other function remotely and makes changes in them.
Everyday life is like programming, I guess. If you love something you can put beauty into it...
Here is a recap of all topics, we covered so far like data types in C, various control structures available in C, functions in C and introduction to pointers in last chapter.
"Even now, I change my style and cloths from one day to the next, but during high school I blended in. I think a lot of people are that way. I guess that's why I can write about an array of characters"
Cecily von Ziegesar
Here is introduction to an array.
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration...!
Stan Kelly Bottle
This video explains you how actually an array works, i.e. how an array elements are stored in memory, how control structure can be used to access an array elements, how an index of an array is useful for accessing an array element etc...
First interaction with pointers took place in the last chapter. But it was just introduction. Real power of pointers is when you start learning array, string, structure and file handling. Here is our re-visit to pointers.
This video covers which operations could be performed and which are invalid. Some of them have got context of single array or multiple array. This rule is important while performing these operations on pointers. These operations though seem to be very easy to understand, are of immense use when we manipulate the string objects in C and C++.
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.
Pointers play a crucial role in arrays. It is the pointer which helps compiler to access any element of an array very quickly...
Study here carefully how really it works in C
Any fool can write code that a computer can understand. Good programmers write code that humans can understand
This is an extension of function chapter and deliberately is covered in array chapter. Find here how an array element and whole array can be sent to the function. The key here is the term "Base address".... So my dear students don't forget that...!
Whatever you do... there must be some kind of bound checking... Be it love, passion, habits or anything in this world. Otherwise possibility of disaster increases.... Array in C does not follow bound checking... Learn here what I mean...
It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free....!
This video explains internals of an array and how it works. Important to understand the next topic.
The character of a few people is multidimensional...!
Why an array should be spared...?
This video explains to concept of multidimensional array in C
Pointers play crucial role in accessing element of multidimensional array. This video explains you internal working of two dimensional array. I agree that a few assumptions I have to consider to explain you, but assumptions are only for understanding purpose only.
Measuring programming progress by lines of code is like measuring aircraft building progress by weight...!
Here is quick review of the topic learnt so far. Much more interesting concepts will be covered in the next topic i.e. Strings in C language.
Have a break...Have a quiz
Here are a few assignments on basic concepts of an array including loop, pointers and functions in C. Try to write program on your own. Feel free to ask me if you face any difficult beyond your reach. Although it won't happen
In the last chapter, we studied an array, a derived data type. However We deliberately did not declare an array of characters in the last chapter because of its peculiar nature. Here is why...
Here is the video to define the string. I am in the process of creating animation for gcc compiler simultaneously however it takes enormous time and efforts. So I will be uploading a few contents keeping DOS based old TC compiler. As said before if your are using latest compilers or IDEs there would not be much difference in the code. Please cooperate till I create and replace them with IDE based or gcc based explanation. Thanks
Here is the way to take the string input from the keyboard and print it on the screen.
Pointers play crucial role in character arrays. Here is it how...?
Here is the second part of string input and output i.e. unformatted functions available in C
Here is the importance of various operations possible on strings in C
This library function helps you to find number of characters in a string. Just check it out...
Here is the library function to compare two strings....
Here is the functioning of string copy library function
These are the change case functions available in the library.
Reversing the string can be done by using the function strrev. Here it is...
Here is the library function to concatenate two strings
Here is a sample code of user defined function. You can try alternate and/or compact ways of copying one string to another string.
Here is the program to convert lowercase string to uppercase string. We are not calling library function strlwr but have written own function.
You can think about alternate algorithm and try to write different code besides this code.
Here is one more user defined function to count number of characters in a string.
Carefully study the user defined function to compare two strings using character pointers
You must type each of these exercises in, manually. If you copy and paste from Internet resources, you might as well not even do them. The point of these exercises is to train your hands, your brain, and your mind in how to read, write, and see code. If you copy-paste, you are cheating yourself out of the effectiveness of the lessons.
take a break...take a quiz
Assignments on string are tough. It will take time to write and test code. So just aim to write a code without keeping any time limit to complete. Develop logic on your own. You can do that. Writing code on string manipulation is joyful experience.
This topic covers about topics you have learnt so far in this course...
Here is the introduction to the structure and analogy with real life examples.
Let's see here the syntax of structure in C...!
Typedef in C is one more user defined data type in C is mostly ignored during learning C. Special topic is dedicated to this interesting topic.
In this topic you would learn a method to access individual elements of a structure in C
Here is simple program to learn implementation of concepts learnt so far in this chapter. Carefully observe the animation while listening to the trainer.
Array is not just narrow concept limited to integers or real numbers or even strings, but it can be of structures too. Here is extended use of array in case of structures in C
Here is how a structure can be sent to the function. Listen carefully. Each sentence is very important...!
Here is the new topic of creating pointer of type structure. Listen carefully and re-listen.
Further type your own code to understand problems in taking character input using scanf function and possible possible solutions to handle these problems. If you don't understand nature of the problem contact me through forum of message. I will explain you in detail.
Here are topics like nesting of structure and union in C.
Post graduate Engineer... Computer Programming language trainer for last 15 years... Passionate about teaching and have taught personally over 3500 students. Currently my team is developing unique methodology for teaching programming language to the masses at lowest possible price. My team has tried to develop absolutely out of the box e-learning contents similar to Crafting a diamond.... for those who want to understand language concepts...
I studied electronics as an Electronic Engineering Technologist at DeVry University. In working in the Audio Video and consumer electronics field since 1994, I have written and used C and C++ programs for work and to help automate every day computer tasks from stock trading applications to Graphical, Standard Deviation calculators. It is a pleasure to help others in topics that I have already spent so much time learning. For over the last 20 years I have been continually updating and practicing C and C+ programming skills.
I hope you enjoy the course.