These modules rely on Nick Parlante's "Essential C" tutorial to provide you with a written reference to the language.
Our videos and exercises are building on this lecture-like exposition to the language to provide you with a complementary
hands-on way to learn it. Make sure you start a module by the readings recommended in this folder.
For this first module, you should read the following sections of this PDF document; Please note that, given our focus in this module,
we'll be listing the sub-sections you should read. For now, you may simply ignore the others;
Section #3 - Complex Data Types
"Multi-Dimensional Arrays" sub-section
Section #4 - Functions
The sub-sections on pointers will be a bit tougher right now until we discuss in details the latter
Section #5 - Odds and Ends
The whole section should be easy
While we provide a PDF version of the above-mentioned tutorial, you might want to follow this link to Nick Parlante's web site and download
the latest version and peruse the excellent material available there.
Let us keep exploring the least surprising aspects of this language hands-on. The videos in this folder will show you how to
write programs using functions. Again, no programming principle here which you have not yet studied in one or more programming
offering using a different language. We simply take a look at how things are done with the programming language we are learning.
Please note we have used a Windows development environment this time, based on the JGrasp Educational IDE as front end and the
MinGW compiler underneath the IDE. Interestingly enough, MinGW is a Windows port of the GCC compiler suite.
Same language, same libraries and compiler, but different platform.
Before to dig deeper into the array notation and how it relates to what we are about to learn about pointers and strings,
let us rely on what you have already learned about arrays in Java or C++. The syntax is similar in our programming language
so you should be able to watch the videos in this folder and follow as we discuss the implementation of a set of functions
we mean to re-use in multiple programs.
This is an opportunity to introduce the first project using several source files to generate a single executable.
Pay particular attention to the way functions' definitions and declarations are organized.
Last but not least, we are using only "good old fashioned" arrays for now, meaning their size must be known at compilation time.
We leave for later variable size arrays which have been introduced in the C99 standard.