C Programming Language Demystified
What sets us apart from other C language courses? Our novel approach presents the course in real-world illustrations through animation and examples. We explain why you do it, not just how. Have you ever tried to “learn C in an hour”, it sometimes takes a little more time. We know that understanding the “why” is just as important as the “how” in getting your head around the concepts of C programming.
This course is designed to be comprehensive, so we assume that you desire the following:
- Knowledge of computer fundamentals
- Basic programming fundamentals
- Mastery of the C programming language through a self-study program
- Why you should learn the C programming language
- You want to use curiosity and “out-of-the-box” thinking to create excellent computer programs.
Our voice-over artists are selected to complement the animation and unique teaching styles of our instructors. Tests, quizzes and assignments are dispersed throughout the course to help you retain more information. The self-study nature and added new material ensures that the learning never stops. As the student, your effort and participation determines the extent of your mastery. If you write sufficient programs to practice as you come to the end of each chapter, then you will become a master in the C programming language. We are continuously adding course content and revising older courses to benefit our students.
Whether you are an undergraduate in engineering, a polytechnic student, a professional or looking for an engaging career, then this course is for you! Be ready to explore writing programs in the conventional DOS based TC compiler, the latest IDEs as well as the GCC compiler in the Linux environment.
We are excited to get you started in the rewarding process of learning and mastering the C programming language. Start this course now and get ready to have the C language demystified!
ABC of C
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...!
C under Linux
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...!
``C Code. C code run. Run, code, run... PLEASE!!!'' -- Barbara Tongue
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
"C takes the point of view that the programmer is always right." -- Michael DeCorte
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...
Steering the Control
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 explanation
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 fulfill the expectations...
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...!
Merry go Round
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
This is a bit cryptic program which will help you to implement your logic and understanding of loops and decision control structure. Try on your own. Don't google it. It's fun to write these kind of codes in C.
Menu of C
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 in C language
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 exploit 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...
Here is a famous program in the programming world to understand basics of pointers. The video has been added as a complimentary material and has been produced after the full course has been developed after considering need of such a program.
The voice over has been given by Mindy, who is an associate of our production team and the program has been conceptualized by co-instructor, Mr. Daryl Newell.
This program is going to act as a prerequisite for the 1st program in the Miscellaneous section ahead in the course.
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.
Chapter end quiz
Arrays in C Language
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...
Here is a video to explain you about initializing and assigning an array elements. The syntax is not just important to know but philosophy is equally important. So listen carefully about real life examples using analogy. Just give me feedback about examples.
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.