Author: Ethan Vosburg
About This Course
This is primarily a course about C programming, but it's placed in the context of a Linux or Unix system, as opposed to a Mac or Windows system. As you go through your college or university years, you'll find that many computer science departments will use C (or perhaps C++) on Linux or Unix systems as one of their primary platforms for programming, exploring computer science concepts, and turning in your work.
We will cover the syntax of the C language, including:
Functions
Loops
Conditionals
Primitive data types
Structs and unions
Source files and header files
No language is complete without a library of useful modules and libraries. We will dip our toes into the standard library, covering topics such as:
Input & output
Files
Memory management
Process management
Math functions
Compiling and linking to the standard libraries
We will also explore a bit of computer networking, including:
Socket libraries
Client-server programming
Finally, I don't think this course is complete without learning about "programming in the large" which is about how to manage and maintain larger projects. We'll learn about the procedures and tools that professional developers use such as:
How to compile multi-file projects
Makefiles
Version control systems
Collaboration with others
I hope you will find this course engaging because we'll cover not only the language itself, which is actually quite small and simple, but also the encompassing ecosystem.