Module 1: Introduction to Computers, Programs, and C

This module lays the groundwork, exploring the essential components and concepts.

  1. What is a Computer?
  2. The Central Processing Unit (CPU)
  3. Memory (Random Access Memory or RAM)

And more...

Example C code

Module 2: Understanding Programming Languages

This section explores the different dialects used to communicate our intentions to the machine.

The Spectrum of Languages

Programming languages form a hierarchy, from the raw language of the machine to more human-readable forms.

Module 3: The C Programming Language

We now focus on the venerable C language.

Why Learn C?
  • Foundation for many other languages (C++, Java, C#).
  • Provides low-level memory manipulation capabilities.
  • Used in system programming, embedded systems, game development, and high-performance computing.
  • Offers a good understanding of how computers work at a deeper level.

A simple C program might look like this:

#include <stdio.h>

int main() {
    // This is a comment
    printf("Hello, World of C!\\n");
    return 0;
}
  • #include <stdio.h>: Includes the standard input/output library.
  • int main() { ... }: The main function where execution begins.
  • printf(...): A function to print output to the console.
  • \\n: Represents a newline character.
  • return 0;: Indicates successful program termination.

Module 4: Data Hierarchy

Understanding how data is structured, from the smallest bit to vast databases.

Data Organization Exercise

Consider a student enrollment system. Identify examples of:
1. Bits (conceptual, e.g., a flag for 'is_enrolled')
2. Characters (e.g., a student's initial)
3. Fields (e.g., 'FirstName', 'StudentID', 'GPA')
4. Records (e.g., all information for one student)
5. Files (e.g., a 'students.csv' containing all student records)
6. Databases (e.g., a relational database managing tables of students, courses, and enrollments)
Reflect on how these levels build upon each other.

Module 5: Typical C Development Environment

(The slides mention this but provide no details. We can elaborate based on common practices.)

Setting up Your Workshop

A typical C development environment includes:

  1. Text Editor: To write your C source code (e.g., VS Code, Sublime Text, Vim, Emacs, or a full-fledged IDE).
  2. C Compiler: To translate your source code into an executable program (e.g., GCC (GNU Compiler Collection) on Linux/macOS, MinGW for Windows, or Clang).
  3. Debugger: A tool to help you find and fix errors in your code by stepping through it line by line (e.g., GDB (GNU Debugger)).
  4. Build Tools (Optional for larger projects): Tools like make to automate the compilation process of projects with multiple source files.
  5. Version Control System (Recommended): Tools like Git to track changes to your code and collaborate with others.