703.608.0975 rick@warrenworks.com

C Programming

Boot Camp

marrymount-logo-half

College of Business, Innovation, Leadership, and Technology (BILT)
School of Technology & Innovation

C Programming Boot Camp

Spring 2024

SYLLABUS

Instruction Type:

Classroom/Instructor Facilitated

Description:

A breathless introduction and overview of the C programming language. The boot camp consists of three, 3-hour sessions and covers essential topics including development environment setup and configuration, coding, compiling, linking, and running simple C applications, fundamental data types, control flow, functions, arrays, structures, stack vs. heap memory, dynamic memory allocation, and pointers.

Instructor:

Rick Miller, MS Computer Science
California State University Long Beach
Phone: (703) 608-0975
email: richmill@marymount.edu
website: warrenworks.com

Session Dates:

Location Dates & Times
Session 1 — Ballston Center, Room 4064 Saturday, 2 March 2024, 0900 — 1200
Session 2 — Ballston Center, Room  4064 Saturday, 16 March 2024, 0900 — 1200
Session 3 — Ballston Center, Room 4064 Saturday, 23 March 2024, 0900 — 1200

Primary Reference:

Reference Link
C Programming Language, 2nd Edition, Brian W. Kernighan & Dennis M. Ritchie https://warrenworks.com/wp-content/uploads/2024/02/C_Programming_Language_2nd-Edition.pdf

Helpful References:

Reference Link
ISO/IEC 9899:201x Draft Standard https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf
The C Book, 2nd Edition, by Mike Banahan, et. al. https://publications.gbdirect.co.uk//c_book/
C: Elements of Style, by Steve Oualline http://www.r-5.org/files/books/computers/languages/c/style/Steve_Oualline-C_Elements_of_Style-EN.pdf
An Introduction to GCC https://www.linuxlinks.com/wp-content/uploads/2019/07/An_Introduction_to_GCC-Brian_Gough.pdf
The GNU C Programming Tutorial http://www.crasseux.com/books/ctut.pdf
Essential C, by Nick Parlante http://cslibrary.stanford.edu/101/EssentialC.pdf
Modern C, by Jens Gustedt https://gustedt.gitlabpages.inria.fr/modern-c/
GNU Make https://www.gnu.org/software/make/manual/make.pdf
C Programming Language, 2nd Edition, Solutions https://github.com/ohkimur/the-c-programming-language-2nd-edition-solutions
GNU Coding Standards https://www.gnu.org/prep/standards/

Syllabus:

Session | Date Discussion Topics Activities | Assignments
Session 1 | 2 March 2024
  • Hour One
    • Introductions All ‘Round
    • Why C?
    • Development Environment Setup and Configuration
      • MacOS
      • Windows
    • First C Program
      • Compiling
      • Linking
      • Running
    • Purpose of main() Function
  • Hour Two
    • Fundamental Data Types and Their Sizes
      • char
      • short
      • int
      • long
      • float
      • double
    • Variables
      • Naming
    • Constants
      • Numeric
      • Character
      • String
      • Enumerations
    • Common Operators
      • Arithmetic
      • Relational and Logical
      • Increment and Decrement
        • Prefix
        • Postfix
    • Functions
      • Declaration
      • Definition
      • Calling
      • Passing Arguments
      • Returning Values
    • Control Flow
      • if/else
      • while
      • do/while
      • switch
    • Console I/O
      • printf()
      • puts()
      • scanf()
  • Hour Three
    • Multi-File Programs
      • Header Files
      • Compiling
    • Pre-Processor Directives
      • #include
      • #ifndef
      • #define
    • Strings
      • NULL Termination
    • Arrays
      • Declaration
      • Element Access
      • Iterating
      • Array Math

    My YouTube Channel: https://www.youtube.com/pulpfreepress

    Install gcc on MacOS: https://youtu.be/fjJGIP5ic5s?si=pBVjIWiE29EYbBzd

    Install gcc on Windows: https://youtu.be/a37wNPSWklw?si=k0z_t4XwtFziR2HV

    Getting Organized: https://youtu.be/MBFbnNliw-w?si=QxRgrgJxcfi_Xoel

    Hello World!: https://youtu.be/T-xKQgk4Ge8?si=BwgCKYb8A7sIKci9

     

    C Programming Boot Camp Repository:
    https://github.com/pulpfreepress/c_bootcamp

     

     

     

     

    Development Environment Setup and Configuration

    Session 2 | 16 March 2024
    • Hour One
      • Pointers
        • What is a Pointer?
        • Declaration
        • Dereferencing
    • Hour Two
      • Stack vs. Heap Memory
      • Dynamic Memory Allocation
      • Releasing Allocated Memory
    • Hour Three
      • Defining Your Own Types
        • typedef
      • Complex Data Types
        • struct
    Session 3 | 23 March 2024
    • Hour One
      • C Standard Library
    • Hour Two
      • File I/O
    • Hour Three
      • Complex Projects
        • Project Directory Structure
        • Make Utility
    • Course Wrap-Up
      • Where to Go From Here