
Begin your journey into C programming, using the Linux command line, exploring logical constructs, and seeing daily developer tools that illuminate how computers work.
Dive into C programming and intro to computer programming, and learn the three core constructs—sequences, selections (if/else), and loops—through pseudocode, variables, and simple output examples.
Set up Windows subsystem for Linux with Debian via the Microsoft Store, enable the feature, reboot, then install Visual Studio Code and the C/C++ extensions, and update packages with apt.
Master linux cli basics and navigate directories with cd, pwd, ls, touch, clear, cat, and man using a Visual Studio Code terminal.
Explore the hello world program in C, using the preprocessor and include directives, defining main, calling printf with a string and newline, and returning 0 after compilation into an executable.
Learn how the GCSE compiler converts a C program through preprocessor, compiler, assembler, and linker into an executable, with hello world examples and output naming using -o.
Learn to debug c programs with gdp, load the binary with debug symbols, set breakpoints, step through code, and inspect variables with print commands.
Discover how the preprocessor performs text replacement with macros and include directives, using define macros and the -E flag to reveal output; explore header inclusion and token replacement in C.
Learn how variables are named memory locations with a type and value, how declarations, assignments, and reassignments work, and how constants enforce compile-time read-only data.
Learn data types in C programming, including char, int, float, double, void, and user-defined types; explore size of, memory, signed vs unsigned, and pointer sizes via printf format specifiers.
Explore arithmetic operators in C, including addition, subtraction, multiplication, division, modulus, and prefix/postfix increment and decrement, plus operator precedence and casting implications.
Bitwise operators such as and, or, xor, and not, along with left and right shifts, are explored using a print binary function, and overflow and compiler specifics are discussed.
Explore how assignment operators in C offer shorthand for arithmetic and bitwise expressions, such as +=, -=, *=, /=, %=, and shifts. See practical examples and printf formatting tips.
Learn how C represents boolean values and uses relational operators to form true or false expressions, including assignment and printing in control structures.
Learn selection logic in C programming through if else statements, boolean expressions, and blocks, with hands-on exercises like fizz buzz to practice even/odd and divisibility checks.
Learn to combine boolean expressions with and, or, and not; understand short-circuit evaluation and write explicit logic for conditions like fizz buzz in C.
Explore global and local variable scope in C, using curly braces and functions to create inner scopes, and observe how redeclaration affects values and memory addresses.
Explore switch statements in C, including cases, defaults, breaks, fall-through, and scope rules with braces, and relate them to jump table concepts.
Explore looping statements in C programming, including while, for, and do while loops, with practical examples, conditions, increments, and handling infinite loop risks.
Explore break and continue statements in C to control loop flow, stopping a loop when a condition is met and skipping iterations for specific cases, with practical examples.
Explore the go to statement and labels as an unconditional jump, creating loops and conditional flows, with examples using variable x and the idea of spaghetti code.
Learn how arrays allocate a contiguous memory block for a type, use zero-based indexing, initialize single- and multi-dimensional arrays in C, and understand out-of-bounds and underflow risks.
Learn how char arrays represent strings in C programming, including the null terminator, using string.h functions and printf with %s to display each string from an array.
Explore typecasting in C, reinterpreting a variable’s value as another type such as int to float or char to int, with ascii examples and pointer considerations.
Explore how pointers store memory addresses and how dereferencing retrieves values with * or ->, including null pointers, void pointers, and the link between arrays and pointers.
Learn how structures group data, access fields with dot and arrow operators, and typedefs for aliases; explore unions, enums, memory layout, padding, and a linked list exercise.
Explore memory allocation in C by examining stack versus heap, dynamic allocation with malloc and free, and the risks of memory leaks, dangling pointers, and segmentation faults.
Define and invoke functions as blocks of code with prototypes and implementations. Learn passing by value versus pointers, function scoping, and printing and scaling a vector example.
Describe recursion as a function calling itself with a base case, such as exponent zero returning one, and show how call stacks cause stack overflow and a recursive summation.
Learn how function pointers let you treat functions as data by pointing to their memory addresses and invoking them. Use typedefs and practical examples for sorting and function passing.
Create and link libraries in C by building object files, using headers and prototypes, and compiling static and dynamic libraries; explore runtime linking and symbol lookup.
Explore the C standard library, its core headers like stdio and string, and how compiler variations affect portability across platforms.
Explore C input and output via standard streams and file input and output, including fopen, fclose, and safe reads that avoid buffer overflow with length-limited functions like fgets.
Explore binary and hexadecimal numeral systems, and how bits represent on/off states, with four bits per hex digit (0–9 and a–f) and examples like 16, 15, and 128.
In this course, students will learn the Linux basic of the command-line interface, basic programming constructs, and the basics of how to program in the C programming language. This introductory course will assist with further learning of the C programming language as well as set a foundation for beginner level concepts.