This is a course that respects the smartness in you. If you don't like the course, there is always the 30-day money-back guarantee.
Close captioning in English are being added.
This course introduces several components of basic C programming that you will apply in your real-world projects. It focuses purely on traditional C language without any OS specific dependencies. So, this course can be followed by any Windows, Mac OS, or Linux user.
This course is designed to teach C programming through small classroom projects, in an informal way. Both the basic and advanced topics including the difficult ones like string handling, files, structures, pointers, linked lists, and command-line arguments are covered, though you may not find them listed in an organized manner in the titles that you see down here. There are also over a 100 questions grouped into 37 quizzes to reinforce the concepts.
Noteworthy comments by learners:
I really liked the fact that this course is not as slow as most programming courses which get boring after a little while...All in all it was a fun and awesome course, I will for sure be following other courses from the same teacher --Alessandro Bassi
A good Place to learn C basics...course gives huge opportunity to know ones weakness in C programming. A consecutive lecture and quiz series gives one consolidated approach -- Akash Saxena
This is an evolving course. Future additions to the course could be based on the what the students want to learn next, apart from more additions to the fundamental concepts.
Learning C is a life-changing experience. After you learn C thoroughly, you can never ever become a bad or mediocre programmer in your career.
What are include files?
Refer to Page-36 in K&R C book. Section 2.2: Data Types and Sizes.
Understand characters in C
Variations in integer declarations.
Simple exercises to understand pointers.
Basic questions on function declarations and calls.
Basic concepts on scoping
More basics on scoping
C introduced pre-increment/decrement and post-increment/decrement operators like ++a, --a, a++, a--. Though these are convenient shorthands for incrementing and decrementing the value of a variable by 1, these can be used in a wrong way in the code sometimes. For example: b = a++ + ++a; will lead to an undefined behavior.
Though the explanation for this is a little bit at an advanced level of understanding, it might be informative to make a note of it for future reference.
Here are some links that explain why it is not right to code that way:
http://qr.ae/lgIUC (Quora link)
Pre and Post increment operations.
Some exercises on printing integers
Trivia on comments
Error in the slide on "Relational and Logical Operations": Please read the "=" operator mentioned in the slide as "==".
Some basics on for-statement, relational operators, and symbolic constants
Basics on address arithmetic
Some more basics related to character arrays
Some more quizzes on character arrays
Some file basics
Some basics on lists and pointers.
Some basics on relationships between arrays, lists, and structures
More functions for mem alloc apart from malloc
Some basics on structures
Some miscellaneous basics.
Basics on different forms of if-else statement
Some basics on do-while and while statements
Basics of file read
Introducing multidimensional string arrays (Refer Page 217 K&R)
Basics on file writing and how to quit from a program in the middle of execution.
Some review questions on characters and structures.
Fix a problem in the code
review on scoping, function pointer, and sizeof operator
Some basics on NULL, EOF, continue & break statements.
Some basics on linked list
More on basics of linked lists
Some more basics on linked lists
You might encounter an error in compilation at this point, if you are compiling using gcc.
The function prototyping "insertNodeAscending(struct numAndString *newNode)" has to be done after the structure declaration. Somehow Visual Studio on Windows does not report this as a problem, that
is why I missed it while recording the lectures on Windows. Later when I tried to compile the final code using gcc, I found the problem. There is a video in "Section-8: Compiling the code using gcc compiler" that catches the problem. You may watch that video for more clarity.
Some basics on valid memory addresses and pointers
Introduction on conditional compilation
More on linked list basics
Introducing some more new concepts
The author, who is a coder and researcher, has several years of experience in coding in C for a wide range of projects encompassing device drivers, embedded systems, natural language and speech applications, algorithms & data structures, and much more. She comes with a very strong academic and industrial background with international exposure.
She is endowed with a rare ability to make difficult problems look simple and motivate a student to learn by himself. She guides the students towards the right path by providing just the right and adequate amount of inputs. Many a time, when she explains certain complex concepts to her colleagues, she gets a response, "Oh, that was easy."
Her style of motivation is subtle, unique, and assertive, like that of a true guru. With her guidance, one is guaranteed to experience a great sense of achievement gained through one's own efforts.